There is no spoon

Difference between revisions of "Compiler errors overview"

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search
m (Testing out the Compiler error template)
m (Horizontalized topics)
Line 2: Line 2:
  
 
__NOTOC__
 
__NOTOC__
 +
{|style="width:100%;"
 +
|-valign="top"
 +
|
 
==Preprocessor errors==
 
==Preprocessor errors==
 
{{main|preprocessor errors}}
 
{{main|preprocessor errors}}
 
A description and solution to [[preprocessor]] errors.
 
A description and solution to [[preprocessor]] errors.
 
+
|
 
==Subobjects errors==
 
==Subobjects errors==
 
{{main|subobject errors}}
 
{{main|subobject errors}}
 
A description and solution to [[subobjects]] errors.
 
A description and solution to [[subobjects]] errors.
 
+
|
 
==Interface errors==
 
==Interface errors==
 
{{main|interface errors}}
 
{{main|interface errors}}
 
A description and solution to [[interface]] errors.
 
A description and solution to [[interface]] errors.
 +
|}
  
 
==Other errors==
 
==Other errors==

Revision as of 07:39, 6 April 2011


Preprocessor errors

Main article: preprocessor errors

A description and solution to preprocessor errors.

Subobjects errors

Main article: subobject errors

A description and solution to subobjects errors.

Interface errors

Main article: interface errors

A description and solution to interface errors.

Other errors

Message: #0001 Could not load existing package file 'package path'
Message: #0002 'ForEach': An iterator expression is required
After the ForEach keyword a standard function call to an iterator function is required. That iterator function could be called in the context of the current code (e.g. "foreach AllActors(...)") or within the context of some other object (e.g. "foreach WorldInfo.AllPawns(...)" calls the AllPawns iterator of the WorldInfo)
Message: #0003 Operator '!=': Comparison will always succeed
You probably already ensured that the values you are trying to compare are really different. In that case it would be pointless to perform exactly the same comparison again
Message: #0004 NameOf argument is not an identifier
Message: #0005 Illegal character in name
Message: #0006 Left type is incompatible with 'OPERATERNAME'

Classes

Error, 'class': Limitor 'class name' is not a class name 
Error, Classes with config/globalconfig member variables need to specify config file. 
You used a config modifier on a variable but forgot to add the class modifier config (resulting in the default INI file for your application) or config(*name of the INI*).
Error, Class 'localized' keyword is no longer required 
Self explanatory. The localized modifier was only necessary in early Unreal Engine 1 games, in newer generations this is automatic implied.
Error, failed to find DependsOn/Implements class 'Class' while parsing 'Class
Self explanatory. However it could be that you have made a typo or that you are referencing a struct rather than a class.
Error, Script vs. class name mismatch (ClassName/FileName) 
The name in the header of your class doesn't match the name of the UC file.

Variables

Error, Instance variables are only allowed at class scope (use 'local'?) 
Variables are declared using the keyword local inside functions. Variables cannot be declared at state scope.
Error, Not allowed to use 'config' with object variables 
Object variables cannot be made configurable. If you want to store a configurable class, material, sound, etc., consider storing it in a configurable string variable instead and using DynamicLoadObject() at runtime to load the configured object.
Error, Can't assign Const variables 
Error, Variable declaration: 'idx' already defined 
trying to declare a local variable when one is defined as a function parameter. (Parameters are also local variables!)
Error, 'RepRetry' is only allowed on struct properties 

States

Error, 'state': expecting State, got Function 
This was caused by calling a state sleep where sleep is a function of state. Im guessing any function previously defined can conflict with a state.
Error, 'Ignores': 'Function Name' is not a function 
The Ignores statement only accepts existing functions. In other words, if you created the function within the state (instead of ignoring it), you would be able to call Super.FunctionName(...) in it.

Functions

Error, Calling a singular function within a singular function on the same object will always fail 
A function with the singular modifier will only execute if the same object is not already executing another singular function, thus the compiler rejects direct calls to other singular functions.
Error, Bad function definition 
This happens when you define a function with an object as the return but that object does not exist.

Arrays

Error, Static arrays of dynamic arrays are not allowed 
A variable has been declared with array<type> AND variablename[n] at the same time.
Error, Invalid property or function call on a dynamic array 
You might have omitted an array index expression in square brackets after the array reference. If not, see dynamic arrays for a list of (pseudo) functions and properties you can use on dynamic arrays themselves.

Typecasting

Error, Cast from 'object name' to 'object name' is unnecessary 
Error, Cast from 'class' to 'class' will always fail 
Typecasting from one class to another is only allowed to narrow a reference of one type to a subclass of that type. Casting to a class that is not a subclass of the current type would always return None and thus is rejected by the compiler.

Unrecognized

Error, Unrecognized type 'class name' 
Error, Unrecognized member 'variable name' in class 'class name' 
The variable does not exist in this class.

Unknown

Error, Unknown member 'variable' in struct 'struct
The variable is not declared. Check if you have forgot to declare it or if you have made a typo.
Error, Unknown Function 'function name' in 'Class package.class' 

Unexpected

Error, Unexpected 'defaultproperties
This seems to occur when you have an end of multi-comment preceded by a line comment on the same line. See Compiler issues. Keep in mind that you can not specify default properties in code while using the UnrealEd internal script editor. Doing so will give you this error as well. To change the default properties of a class in UnrealEd, you need to type editdefault class=classname in the command line of the editor.
Correct and Wrong example
Error, Unexpected end of file at end of Class 
Usually caused by an unmatched pair of braces, missing "}"
Error, Unexpected '.' following 'variable name' 
accessor usage on a class scope variable that doesnt exist.

Replication

Error, Unrecognized variable 'variable name' name in replication definition 
A name in a replication condition does not correspond to any existing variable or (prior to Unreal Engine 3) function within the same class.

Conflicts

Error, 'Function Name' conflicts with 'Function Package.Class:FunctionName' 
Error, Redefinition of 'function FUNCNAME' differs from original in CLASSNAME 
You either want to override a function but the number or type of parameters in the definition of the parent class differs from your redefinition, or you accidentally chose a name for your function that is already used by a super class, so you will wish to choose another unambiguous name.

Bad or missing expression

Error, Bad or missing expression in parenthesis for '='
Error, Bad or missing expression in parenthesis for Following '&&'
Error, Bad or missing expression in 'If
a function in an if statement does not return a type.
Error, Bad or missing expression in Call to 'Function', parameter number 
Error, Bad or missing expression for token: 'Function', in 'Return
Error, Bad or missing expression for token: 'Variable', in 'If
To note in this case the variable was an actor reference.
Error, Bad or missing expression for token: 'Variable', in Call to 'Function', parameter X 
Error, Bad or missing expression after 'OPERATORNAME'
Error, Bad or missing expression after 'OPERATORNAME': 'VARIABLENAME
+ being an incorrect operator usage? '&&'
Error, 'type' conversion: Bad or missing expression
Error, Bad or missing expression in 'NameOf'
Error, 'class name': Bad command or expression 

Missing

Error, Missing 'function' 
Declared a function modifier without a function, defined a function type before function.
Correct and Wrong example
Error, Missing ')' in 'foreach array' 
The variable inside the brackets of a foreach loop is not defined.
Error, Missing ';' before 'variable name' 
The variable you are trying to access through a typecast is not defined.
Error, Missing ';' before ')' 
End of line expected before the character.
Correct and Wrong example
Error, ImportText (struct): Missing closing parenthesis:(member1='value',member2='value'))
Error, Missing variable name 
Pretty sure this is caused by using a class limitor on an interface like so, var interface<goo> foo;

Static Functions

Error, Can't call instance functions from within static functions 
Static functions can only call other static functions directly. Additionally this can happen if you are trying to call a non-static function via the "Class.static.FunctionName" call modifier.
Error, You can only access default values of variables here 
Tried to assign a non default variable a value, using a non default variable in a statement, assigning a variable a value from another that is not a default variable. There are instances where you can access non default variables in Static functions, if the variable is part of the function definition, a local variable.

Mismatch

Error, Call to 'FUNCTIONNAME': type mismatch in parameter NUMBER
Error, Type mismatch in Call to 'FUNCTIONNAME', parameter number 
the type of variable being passed to the function

parameter number specified is incorrect.

Error, Type mismatch in '=' 
you probably wanted to make a boolean compare "==" but ended up assigning something to a variable.
Error, Const mismatch with '+' 
Error, Type mismatch in array index 

Warnings

Warning, Unresolved reference to Class 'class name' 
Warning, Unresolved reference to object
Warning, Function parameter: 'function name' conflicts with previously defined field in 'class name' 
Warning, function: Missing return value 
a function with a return type has no 'return' that could be reached, for example if the only return is in an if-block and thus can't be accessed in all cases.
Warning, Using a non-qualified name (would have) found: object package.group.group.name
Warning, friendly operator name_TypeNameTypeName: Missing return value 
This is similar to function not having a return value but is the operator version, UScript supports operator overloading so the 'friendly operator name will be a reference to a table within the engine $ being Concat as an example.
Warning, Class ClassName can't bind to DLL DLLPath 
The DLL that should be bound to either doesn't exist in the Win32\UserCode directory or was compiled wrong, for example on another system with debug settings (they only work on the system they were compiled on).
Warning, Variable declaration: 'VARIABLENAME' conflicts with previously defined field in 'CLASSNAME' 
You should not redefine existing variables in subclasses using the var or local declaration since the variable is already available from the parent class.
Warning, 'identifier' obscures 'identifier' in base class 'OBJECTNAME' 
Warning, Variable is declared with 'SerializeText' but this keyword only has meaning for Native variables 

Local Variables

Warning, 'variable name' : unreferenced local variable 
A variable is declared within a function and never assigned a value.
Warning, 'variable name': unused local variable 
A local variable was declared and maybe the function even assigns a value to it, but the value is never accessed elsewhere in the function. (Functions returning a value need not assign that value to a variable, in case you were wondering.)
Warning, 'variable name' : local variable used before assigned a value 
A variable is referenced before it is assigned a value, which means it'll return the default value for that type, whether that is what you are looking for or not. This could be conditionally incorrect, the compiler doesn't check to see in which order things are carried out so it could in fact be wrong, hence only a warning.

Replication

Warning, Reliabe/Unreliable keywords are no longer used in 'replication {}'
Those keywords only apply to function replication and are function modifiers in Unreal Engine 3.

Default Properties

Warning, Import failed for 'variable name': property is config (Check to see if the property is listed in the DefaultProperties. It should only be listed in the specific .ini/.int file) 
It was tried to assign a default value to a variable that was declared config. Such a variable is supposed to read it's value always from the associated INI file, so it doesn't make sense to assign it in code and not there.
Warning, Unknown property in defaults: 'line from defaultproperties block' 
A property in the defaults is not a defined variable.
Warning, Invalid property value in defaults: property=value 
A property in the defaults is not a defined variable.
Warning, redundant data: 'line from defaultproperties block' 
There can only be one assignment for a property per class definition, so you probably have a duplicate in the DefaultProperties.
Warning, ObjectProperty package.class.property: unresolved reference to object'package.group.object' 
The specified object could not be found in the package.
Warning, Unable to parse parameter value in defaultproperties array operation: array<struct>.add((member1='value',member2='value'))

Failure

Failed to load 'object package.group.name': Failed to find object 'object package.group.name'