This section lists all the messages that concern the handling of symbols. This means all things that
have to do with procedure and variable names.
                                                                            
                                                                            
     
- 
Error: Identifier not found ”arg1” 
 -                                                           
The compiler doesn’t know this symbol. Usually happens when you misspell the name
     of a variable or procedure, or when you forget to declare a variable.
      - 
Fatal: Internal Error in SymTableStack() 
 -                                                  
An internal error occurred in the compiler; If you encounter such an error, please
     contact the developers and try to provide an exact description of the circumstances in
     which the error occurs.
      - 
Error: Duplicate identifier ”arg1” 
 -                                                            
The identifier was already declared in the current scope.
      - 
Hint: Identifier already defined in arg1 at line arg2 
 -                                     
The identifier was already declared in a previous scope.
      - 
Error: Unknown identifier ”arg1” 
 -                                                            
The identifier encountered has not been declared, or is used outside the scope where it
     is defined.
      - 
Error: Forward declaration not solved ”arg1” 
 -                                             
This can happen in two cases:
         
         - You declare a function in the interface part, or with a forward directive, but
         do not implement it.
         
 
         - You reference a type which isn’t declared in the current type block.
 
      - 
Error: Error in type definition 
 -                                                                
There is an error in your definition of a new array type. One of the range delimiters in an
     array declaration is erroneous. For example, Array [1..1.25] will trigger this
     error.
      - 
Error: Forward type not resolved ”arg1” 
 -                                                   
A symbol was forward defined, but no declaration was encountered.
      - 
Error: Only static variables can be used in static methods or outside methods 
 - 
     
A static method of an object can only access static variables.
      - 
Error: Record or object or class type expected 
 -                                           
The variable or expression isn’t of the type record or object or class.
      - 
Error: Instances of classes or objects with an abstract method are not allowed 
 - 
     
You are trying to generate an instance of a class which has an abstract method that wasn’t
     overridden.
                                                                            
                                                                            
      - 
Warning: Label not defined ”arg1” 
 -                                                          
A label was declared, but not defined.
      - 
Error: Label used but not defined ”arg1” 
 -                                                  
A label was declared and used, but not defined.
      - 
Error: Illegal label declaration 
 -                                                                
This error should never happen; it occurs if a label is defined outside a procedure or
     function.
      - 
Error: GOTO and LABEL are not supported (use switch -Sg) 
 -                       
You must use the -Sg switch to compile a program which has labels and goto statements.
     By default, label and goto are not supported.
      - 
Error: Label not found 
 -                                                                          
A goto label was encountered, but the label wasn’t declared.
      - 
Error: identifier isn’t a label 
 -                                                                   
The identifier specified after the goto isn’t of type label.
      - 
Error: label already defined 
 -                                                                    
You are defining a label twice. You can define a label only once.
      - 
Error: illegal type declaration of set elements 
 -                                             
The declaration of a set contains an invalid type definition.
      - 
Error: Forward class definition not resolved ”arg1” 
 -                                     
You declared a class, but you did not implement it.
      - 
Hint: Unit ”arg1” not used in arg2 
 -                                                          
The unit referenced in the uses clause is not used.
      - 
Hint: Parameter ”arg1” not used 
 -                                                             
The identifier was declared (locally or globally) but was not used (locally or globally).
      - 
Note: Local variable ”arg1” not used 
 -                                                        
You have declared, but not used, a variable in a procedure or function implementation.
      - 
Hint: Value parameter ”arg1” is assigned but never used 
 -                             
The identifier was declared (locally or globally) and assigned to, but is not used (locally or
     globally) after the assignment.
      - 
Note: Local variable ”arg1” is assigned but never used 
 -                                
The variable in a procedure or function implementation is declared and assigned to, but is
     not used after the assignment.
                                                                            
                                                                            
      - 
Hint: Local arg1 ”arg2” is not used 
 -                                                          
A local symbol is never used.
      - 
Note: Private field ”arg1.arg2” is never used 
 -                                             
The indicated private field is defined, but is never used in the code.
      - 
Note: Private field ”arg1.arg2” is assigned but never used 
 -                            
The indicated private field is declared and assigned to, but never read.
      - 
Note: Private method ”arg1.arg2” never used 
 -                                            
The indicated private method is declared but is never used in the code.
      - 
Error: Set type expected 
 -                                                                       
The variable or expression is not of type set. This happens in an in statement.
      - 
Warning: Function result does not seem to be set 
 -                                       
You can get this warning if the compiler thinks that a function return value is not set. This
     will not be displayed for assembler procedures, or procedures that contain assembler
     blocks.
      - 
Warning: Type ”arg1” is not aligned correctly in current record for C 
 -            
Arrays with sizes not multiples of 4 will be wrongly aligned for C structures.
      - 
Error: Unknown record field identifier ”arg1” 
 -                                            
The field doesn’t exist in the record/object definition.
      - 
Warning: Local variable ”arg1” does not seem to be initialized 
 -                      
This message is displayed if the compiler thinks that a variable will be used (i.e. it appears in
     the right-hand side of an expression) when it was not initialized first (i.e. appeared in the
     left-hand side of an assignment).
      - 
Warning: Variable ”arg1” does not seem to be initialized 
 -                             
This message is displayed if the compiler thinks that a variable will be used (i.e. it appears in
     the right-hand side of an expression) when it was not initialized first (i.e. appeared in the
     left-hand side of an assignment).
      - 
Error: identifier idents no member ”arg1” 
 -                                                 
This error is generated when an identifier of a record, field or method is accessed while it is
     not defined.
      - 
Hint: Found declaration: arg1 
 -                                                                 
You get this when you use the -vh switch.In the case of an overloaded procedure not being
     found. Then all candidate overloaded procedures are listed, with their parameter
     lists.
                                                                            
                                                                            
      - 
Error: Data element too large 
 -                                                                 
You get this when you declare a data element whose size exceeds the prescribed limit (2 Gb
     on 80386+/68020+ processors).
      - 
Error: No matching implementation for interface method ”arg1” found 
 -           
There was no matching method found which could implement the interface method. Check
     argument types and result type of the methods.
      - 
Warning: Symbol ”arg1” is deprecated 
 -                                                     
This means that a symbol (a variable, routine, etc...) which is declared as deprecated is
     used. Deprecated symbols may no longer be available in newer versions of the unit / library.
     Use of this symbol should be avoided as much as possible.
      - 
Warning: Symbol ”arg1” is not portable 
 -                                                   
This means that a symbol (a variable, routine, etc...) which is declared as platform is used.
     This symbol’s value, use and availability is platform specific and should not be used if the
     source code must be portable.
      - 
Warning: Symbol ”arg1” is not implemented 
 -                                             
This means that a symbol (a variable, routine, etc...) which is declared as unimplemented is
     used. This symbol is defined, but is not yet implemented on this specific platform.
      - 
Error: Can’t create unique type from this type 
 -                                           
Only simple types like ordinal, float and string types are supported when redefining a type
     with type newtype = type oldtype;.
      - 
Hint: Local variable ”arg1” does not seem to be initialized 
 -                           
This message is displayed if the compiler thinks that a variable will be used (i.e. it appears in
     the right-hand side of an expression) when it was not initialized first (i.e. it did not appear in
     the left-hand side of an assignment).
      - 
Hint: Variable ”arg1” does not seem to be initialized 
 -                                  
This message is displayed if the compiler thinks that a variable will be used (i.e. it appears in
     the right-hand side of an expression) when it was not initialized first (i.e. t did not appear in
     the left-hand side of an assignment).
      - 
Warning: Function result variable does not seem to be initialized 
 -                   
This message is displayed if the compiler thinks that the function result variable will be used
     (i.e. it appears in the right-hand side of an expression) before it is initialized (i.e. before it
     appeared in the left-hand side of an assignment).
      - 
Hint: Function result variable does not seem to be initialized 
 -                        
This message is displayed if the compiler thinks that the function result variable will be used
     (i.e. it appears in the right-hand side of an expression) before it is initialized (i.e. it appears
     in the left-hand side of an assignment)
                                                                            
                                                                            
      - 
Warning: Variable ”arg1” read but nowhere assigned 
 -                                  
You have read the value of a variable, but nowhere assigned a value to it.
      - 
Hint: Found abstract method: arg1 
 -                                                          
When getting a warning about constructing a class/object with abstract methods you get
     this hint to assist you in finding the affected method.
      - 
Warning: Symbol ”arg1” is experimental 
 -                                                  
This means that a symbol (a variable, routine, etc...) which is declared as experimental is
     used. Experimental symbols might disappear or change semantics in future versions. Usage of
     this symbol should be avoided as much as possible.
      - 
Warning: Forward declaration ”arg1” not resolved, assumed external 
 -             
This happens if you declare a function in the interface of a unit in macpas mode, but do
     not implement it.
      - 
Warning: Symbol ”arg1” is belongs to a library 
 -                                          
This means that a symbol (a variable, routine, etc...) which is declared as library is used.
     Library symbols may not be available in other libraries.
      - 
Warning: Symbol ”arg1” is deprecated: ”arg2” 
 -                                          
This means that a symbol (a variable, routine, etc...) which is declared as deprecated is
     used. Deprecated symbols may no longer be available in newer versions of the unit / library.
     Use of this symbol should be avoided as much as possible.
      - 
Error: Cannot find an enumerator for the type ”arg1” 
 -                                 
This means that compiler cannot find an appropriate enumerator to use in the for-in loop. To
     create an enumerator you need to define an operator enumerator or add a public or published
     GetEnumerator method to the class or object definition.
      - 
Error: Cannot find a ”MoveNext” method in enumerator ”arg1” 
 -                   
This means that compiler cannot find a public MoveNext method with the Boolean return
     type in the enumerator class or object definition.
      - 
Error: Cannot find a ”Current” property in enumerator ”arg1” 
 -                     
This means that compiler cannot find a public Current property in the enumerator class or
     object definition.
      - 
Error: Mismatch between number of declared parameters and number of colons in message string. 
 
In Objective-C, a message name automatically contains as many colons as parameters. In
     order to prevent mistakes when specifying the message name in FPC, the compiler checks
     whether this is also the case here. Note that in case of messages taking a variable number
     of arguments translated to FPC via an array of const parameter, this final
     array of const parameter is not counted. Neither are the hidden self and _cmd
     parameters.
                                                                            
                                                                            
     - 
Note: Private type ”arg1.arg2” never used 
 -                                                
The indicated private type is declared but is never used in the code.
      - 
Note: Private const ”arg1.arg2” never used 
 -                                               
The indicated private const is declared but is never used in the code.
      - 
Note: Private property ”arg1.arg2” never used 
 -                                           
The indicated private property is declared but is never used in the code.
      - 
Warning: Unit ”arg1” is deprecated 
 -                                                         
This means that a unit which is declared as deprecated is used. Deprecated units may no
     longer be available in newer versions of the library. Use of this unit should be avoided as
     much as possible.
      - 
Warning: Unit ”arg1” is deprecated: ”arg2” 
 -                                              
This means that a unit which is declared as deprecated is used. Deprecated units may no
     longer be available in newer versions of the library. Use of this unit should be avoided as
     much as possible.
      - 
Warning: Unit ”arg1” is not portable 
 -                                                       
This means that a unit which is declared as platform is used. This unit use and
     availability is platform specific and should not be used if the source code must be
     portable.
      - 
Warning: Unit ”arg1” is belongs to a library 
 -                                             
This means that a unit which is declared as library is used. Library units may not be
     available in other libraries.
      - 
Warning: Unit ”arg1” is not implemented 
 -                                                 
This means that a unit which is declared as unimplemented is used. This unit is defined, but
     is not yet implemented on this specific platform.
      - 
Warning: Unit ”arg1” is experimental 
 -                                                      
This means that a unit which is declared as experimental is used. Experimental units might
     disappear or change semantics in future versions. Usage of this unit should be avoided as
     much as possible.
      - 
Error: No full definition of the formally declared class ”arg1” is in scope. Add the unit containing its full definition to the uses clause. 
 - 
     
Objecive-C and Java classes can be imported formally, without using the unit in which it is
     fully declared. This enables making forward references to such classes and breaking circular
     dependencies amongst units. However, as soon as you wish to actually do something with an
     entity of this class type (such as access one of its fields, send a message to it, or use
     it to inherit from), the compiler requires the full definition of the class to be in
     scope.
                                                                            
                                                                            
      - 
Error: Gotos into initialization or finalization blocks of units are not allowed 
 - 
     
Gotos into initialization or finalization blockse of units are not allowed.
      - 
Error: Invalid external name ”arg1” for formal class ”arg2” 
 -                          
      - 
Error: Complete class definition with external name ”arg1” here 
 -                   
When a class is declared using a formal external definition, the actual external definition (if
     any) must specify the same external name as the formal definition (since both definitions
     refer to the same actual class type).
      - 
Warning: Possible library conflict: symbol ”arg1” from library ”arg2” also found in library ”arg3” 
 - 
     
Some OS do not have library specific namespaces, for those OS, the function declared as
     ”external ’libname’ name ’funcname’”, the ’libname’ part is only a hint, funcname might also
     be loaded by another library. This warning appears if ’funcname’ is used twice with two
     different library names.
      - 
Error: Cannot add implicit constructor ’Create’ because identifier already used by ”arg1” 
 - 
     
Java does not automatically add inherited constructors to child classes, so that they can be
     hidden. However, if a class does not explicitly declare at least one constructor, the compiler is
     required to add a public, parameterless constructor. In Java, constructors are
     nameless, but in FPC they are all called “Create”. Therefore, if you do not add a
     constructor to a Java class and furthermore use the “Create” identifier for another
     entity (e.g., a field, or a parameterless method), the compiler cannot satisfy this
     requirement.
      - 
Error: Cannot generate default constructor for class, because parent has no parameterless constructor 
 
Java does not automatically add inherited constructors to child classes, so that they can be
     hidden. However, if a class does not explicitly declare at least one constructor, the compiler is
     required to add a public, parameterless constructor. This compiler must then call the
     parameterless constructor from the parent class inside this added constructor. This is
     however impossible if the parent class does not declare such a constructor. In this case you
     must add a valid constructor yourself.
     - 
Adding helper for arg1 
 -                                                                          
A helper for the mentioned type is added to the current scope
      - 
Error: Found declaration: arg1 
 -                                                                
This message shows all overloaded declarations in case of an error.
      - 
Warning: Local variable ”arg1” of a managed type does not seem to be initialized 
 - 
     
This message is displayed if the compiler thinks that a variable will be used (i.e. it appears in
     the right-hand side of an expression) when it was not initialized first (i.e. appeared in the
     left-hand side of an assignment). Since the variable is managed, i. e. implicitly initialized by
                                                                            
                                                                            
     the compiler, this might be intended behaviour and does not necessarily mean that the code
     is wrong.
      - 
Warning: Variable ”arg1” of a managed type does not seem to be initialized 
 - 
     
This message is displayed if the compiler thinks that a variable will be used (i.e. it appears in
     the right-hand side of an expression) when it was not initialized first (i.e. appeared in the
     left-hand side of an assignment). Since the variable is managed, i. e. implicitly initialized by
     the compiler, this might be intended behaviour and does not necessarily mean that the code
     is wrong.
      - 
Hint: Local variable ”arg1” of a managed type does not seem to be initialized 
 - 
     
This message is displayed if the compiler thinks that a variable will be used (i.e. it appears in
     the right-hand side of an expression) when it was not initialized first (i.e. it did not appear in
     the left-hand side of an assignment). Since the variable is managed, i. e. implicitly initialized
     by the compiler, this might be intended behaviour and does not necessarily mean that the
     code is wrong.
      - 
Hint: Variable ”arg1” of a managed type does not seem to be initialized 
 - 
     
This message is displayed if the compiler thinks that a variable will be used (i.e. it appears in
     the right-hand side of an expression) when it was not initialized first (i.e. t did not appear in
     the left-hand side of an assignment). Since the variable is managed, i. e. implicitly initialized
     by the compiler, this might be intended behaviour and does not necessarily mean that the
     code is wrong.
      - 
Warning: function result variable of a managed type does not seem to be initialized 
 - 
     
This message is displayed if the compiler thinks that the function result variable will be used
     (i.e. it appears in the right-hand side of an expression) before it is initialized (i.e. before it
     appeared in the left-hand side of an assignment). Since the variable is managed, i. e.
     implicitly initialized by the compiler, this might be intended behaviour and does not
     necessarily mean that the code is wrong.
      - 
Hint: Function result variable of a managed type does not seem to be initialized 
 - 
     
This message is displayed if the compiler thinks that the function result variable will be used
     (i.e. it appears in the right-hand side of an expression) before it is initialized (i.e. it appears
     in the left-hand side of an assignment). Since the variable is managed, i. e. implicitly
     initialized by the compiler, this might be intended behaviour and does not necessarily mean
     that the code is wrong.
      - 
Warning: Duplicate identifier ”arg1” 
 -                                                        
The identifier was already declared in an Objective-C category that’s in the same scope as
     the current identifier. This is a warning instead of an error, because while this
     hides the identifier from the category, there are often many unused categories in
     scope.
                                                                            
                                                                            
      - 
Error: Generic type parameter ”arg1” does not match with the one in the declaration 
 - 
     
The specified generic type parameter for the generic class, record or routine does
     not match with the one declared in the declaration of the generic class, record or
     routine.
      - 
Error: Generic type parameter declared as ”arg1” 
 -                                      
Shows what the generic type parameter was originally declared as if a mismatch is found
     between a declaration and the definition.
      - 
Error: Record or object type expected 
 -                                                     
The variable or expression isn’t of the type record or object.