Skip to content

Compiler Error Messages

Paul Squires edited this page Nov 8, 2026 · 3 revisions

Home › Compiler Error Messages

Compiler Error Messages

Every diagnostic the compiler can emit: 602 in all, 567 errors, 21 warnings and 14 notes.

Reading a diagnostic

Each one names the file, the line and the column, its severity and its id, then shows the line with a caret under the column:

prog.tiko(1,16): error TKO0653: 'x' and its initializer disagree about being a string
     |
   1 | dim as integer x = "a"
     |                ^

--diagnostics-format gnu writes the same diagnostic as prog.tiko:1:16: error: ... [TKO0653], the form most editors match.

  • An error stops the build: nothing is linked, and the compiler exits with status 1.
  • A warning does not. -Wno-TKOnnnn suppresses one id, and -Werror turns every warning into an error.
  • A note follows an error or a warning and points at something related: where a name was first declared, or which instantiation of a generic produced the error.

tiko check reports every diagnostic a build would, without writing an object or linking. --diagnostics-file <path> also writes each one to a tab-separated file, for editors and scripts.

A diagnostic's number never changes. A retired diagnostic keeps its row rather than giving its number to another, so an id in an old build log still means what it meant then.

In the tables, ‹arg1›, ‹arg2› … mark where the compiler substitutes a name, a type or a path.

The Compiler limits and internal errors range is the compiler reporting on itself. An internal compiler error (TKO0993, TKO0994, TKO0995) is a bug in tiko, not in the program: the build stops rather than leave the construct out.

Failures after code generation -- clang, the archiver, the linker, the resource compiler -- are reported under their own ids in the driver range (TKO0109 to TKO0116 among them).

Source and file handling (TKO0001–TKO0099)

Id Severity Message
TKO0001 error cannot open source file '‹arg1›': ‹arg2›
TKO0002 error source file '‹arg1›' is empty
TKO0003 warning source file '‹arg1›' is not valid UTF-8; bytes preserved verbatim

Driver and command line (TKO0100–TKO0199)

Id Severity Message
TKO0100 error unknown option '‹arg1›'
TKO0101 error option '‹arg1›' requires an argument
TKO0102 error no input files
TKO0103 error unknown target '‹arg1›'
TKO0104 error 32-bit targets are not supported; x86-64 only
TKO0105 warning unknown diagnostic id '‹arg1›'
TKO0106 error '‹arg1›' is not a recognised value for '‹arg2›'
TKO0108 error '‹arg1›' is a Windows resource script; the target is not Windows
TKO0109 error no resource compiler: ‹arg1›
TKO0110 error compiling resource '‹arg1›' failed (exit ‹arg2›)
TKO0111 error no usable toolchain: ‹arg1›
TKO0112 error cannot write intermediate file '‹arg1›'
TKO0113 error clang failed on '‹arg1›' (exit ‹arg2›)
TKO0114 error '‹arg1›' is a ‹arg2› object, which target triple '‹arg3›' does not make
TKO0115 error archiving failed (exit ‹arg1›)
TKO0116 error link failed (exit ‹arg1›)
TKO0117 error cannot write the diagnostics file '‹arg1›'
TKO0118 error -cimport needs -cimport-out <file>: the binding has to go somewhere
TKO0119 error importing a C header needs libclang: ‹arg1›
TKO0120 error unable to import C header ‹arg1›
TKO0121 error cannot write the binding '‹arg1›'
TKO0122 error the binding generated for ‹arg1› does not compile; this is a bug in the C importer
TKO0123 error -pic makes position-independent code for a Unix shared library; target '‹arg1›' is not a Unix
TKO0124 warning LLVM is not installed: no clang was found, so this build cannot produce code -- install LLVM 18 or newer, or set TIKO_CLANG
TKO0140 error cannot find module '‹arg1›' (searched: ‹arg2›)
TKO0141 error import cycle: ‹arg1›
TKO0142 error relative import '‹arg1›' leaves the package root '‹arg2›'
TKO0144 error malformed tiko.toml: ‹arg1›
TKO0145 error '‹arg1›' is in module directory '‹arg2›' but does not begin with '#module'
TKO0146 error dependency '‹arg1›': ‹arg2›
TKO0147 error module directory '‹arg1›' contains no .tiko or .bas files
TKO0148 error package name '‹arg1›' is reserved for the toolchain
TKO0149 error two packages named '‹arg1›': ‹arg2› and ‹arg3›
TKO0150 warning module cache disabled: ‹arg1›
TKO0152 error '--emit-tki' writes a module's interface, and needs one module directory as its input
TKO0153 error '‹arg1›' was compiled against module object '‹arg2›', which is not there; compile it again with -c
TKO0154 error '‹arg1›' cannot be used with '‹arg2›'
TKO0155 error 'link ‹arg1›' on '#import "‹arg2›"': package '‹arg3›' links nothing
TKO0156 error 'link ‹arg1›': package '‹arg2›' ships no ‹arg1› link of module '‹arg3›'
TKO0157 error module '‹arg1›' is imported with 'link ‹arg2›' here and 'link ‹arg3›' elsewhere; a program links it one way
TKO0160 error no target named '‹arg1›' (targets: ‹arg2›)
TKO0161 error target '‹arg1›': '‹arg2›' is a module directory; modules are reached through #import, not listed
TKO0162 error target '‹arg1›': '‹arg2›' not found
TKO0163 error no profile named '‹arg1›' (profiles: ‹arg2›)
TKO0164 error profile '‹arg1›' inherits itself: ‹arg2›
TKO0165 error targets '‹arg1›' and '‹arg2›' write the same output '‹arg3›'
TKO0166 error another build of '‹arg1›' is running (it holds ‹arg2›)
TKO0167 error compiling '‹arg1›' crashed with exit code ‹arg2›
TKO0168 error 'tiko run' needs an exe target; '‹arg1›' is a ‹arg2›
TKO0169 note '‹arg1›' is not cached: ‹arg2›
TKO0170 error 'tiko run' runs one target; name one of: ‹arg1›
TKO0171 error could not copy '‹arg1›' to '‹arg2›'
TKO0172 error cannot make an import library for '‹arg1›': ‹arg2›
TKO0173 error 'tiko c2t' translates one header per run; '‹arg1›' is a second
TKO0174 error cannot read the C header '‹arg1›'
TKO0175 error the translation of ‹arg1› does not compile; this is a bug in tiko c2t
TKO0176 error module '‹arg1›' needs '‹arg2›' at run time, and there is no '‹arg3›'
TKO0177 error cannot write the debug symbols of '‹arg1›': ‹arg2›

Lexer (TKO0200–TKO0299)

Id Severity Message
TKO0201 warning missing closing quote in string literal
TKO0202 error unterminated block comment
TKO0203 error '‹arg1›' is not followed by any digits
TKO0205 warning numeric literal is too large for 64 bits, truncated
TKO0206 warning suffix ignored in '‹arg1›'
TKO0207 error block string has no closing line; one must start with three quotes
TKO0208 error block string line does not start with the closing line's indentation

Preprocessor (TKO0300–TKO0399)

Id Severity Message
TKO0300 error unknown directive '#‹arg1›'
TKO0301 error cannot open include file '‹arg1›'
TKO0302 error '#‹arg1›' without a matching '#if'
TKO0303 error '#if' has no matching '#endif'
TKO0304 error preprocessor nesting exceeded ‹arg1› levels
TKO0305 error macro '‹arg1›' is already defined
TKO0306 error macro '‹arg1›' takes ‹arg2› argument(s)
TKO0307 error unterminated argument list for macro '‹arg1›'
TKO0308 error invalid expression in '#‹arg1›'
TKO0309 error #error: ‹arg1›
TKO0310 error '#‹arg1›' is not implemented in this build
TKO0311 error '#macro' without '#endmacro'
TKO0312 warning unknown '#pragma ‹arg1›'
TKO0314 error builtin macro '‹arg1›' is not implemented in this build
TKO0315 note #print ‹arg1›
TKO0316 error expected an identifier after '#‹arg1›'
TKO0317 error unsupported language mode '‹arg1›'; tiko-lang implements "fb" only
TKO0318 error cannot pop '#pragma ‹arg1›': the stack is empty
TKO0319 error __FB_UNIQUEID_POP__( ‹arg1› ) has no matching push
TKO0320 error '‹arg1›' has no type; tiko-lang implements #lang "fb" only, where default types and suffixes are not valid
TKO0321 error expected a type parameter name
TKO0322 error duplicated type parameter '‹arg1›'
TKO0323 error '‹arg1›' does not name a type here, so it cannot own this constructor or destructor
TKO0324 error argument ‹arg1› of '‹arg2›' must be an integer constant
TKO0325 error argument of '‹arg1›' must be a constant expression
TKO0326 error '#‹arg1›' takes a library name in quotes
TKO0327 error expected a name, STATIC or DYNAMIC, then a quoted spec after #foreignlib
TKO0328 error expected STATIC or DYNAMIC after the #foreignlib name, ‹arg1›
TKO0329 error #foreignlib found no matching library file: ‹arg1›; tried: ‹arg2›
TKO0330 error #foreignlib name already bound to a different library set, ‹arg1›
TKO0331 error #line takes a line number, then an optional quoted file name
TKO0332 error unexpected token after #line
TKO0333 error #cmdline takes one quoted argument string
TKO0334 warning #cmdline is ignored outside the first source file
TKO0335 error #cinclude needs libclang: ‹arg1›
TKO0336 error unable to import C header ‹arg1›
TKO0337 error the binding generated for ‹arg1› does not compile; this is a bug in the C importer
TKO0338 error ‹arg1› defines '‹arg2›', which an earlier #cinclude in this unit left opaque; #cinclude ‹arg1› first
TKO0339 warning #cinclude could not write its cache entry under '‹arg1›'; the binding is used from memory
TKO0340 error 'public #cinclude' needs the binding cache, which -cnocache turns off: ‹arg1› is not a file an importer can include
TKO0341 error cannot open embed file '‹arg1›'
TKO0342 error malformed '#embed': ‹arg1›
TKO0344 error embed file '‹arg1›' is empty; an array cannot have no elements
TKO0345 error embed file '‹arg1›' is ‹arg2› bytes; the limit is 256 MiB
TKO0346 error embed file '‹arg1›' changed during the build: ‹arg2› bytes when read, ‹arg3› when first seen
TKO0360 error '#module' must be the first directive in the file
TKO0361 error '#module "‹arg1›"' does not match its directory '‹arg2›'
TKO0362 error '#import' must come before any code, in the compiled file
TKO0363 error the condition around '#import' uses '‹arg1›', which is not predefined
TKO0364 error malformed '‹arg1›': ‹arg2›
TKO0365 error '#export ‹arg1›': no macro of that name is defined here
TKO0366 error ‹arg1› is not allowed in a module file
TKO0367 error '‹arg1›' is part of module '‹arg2›' and cannot be #included
TKO0369 error ‹arg1› is allowed only in a module file
TKO0370 error ‹arg1› here, but ‹arg2›
TKO0371 error '‹arg1›' cannot be defined as a macro: it is ‹arg2›
TKO0372 error the preprocessed program exceeded ‹arg1› tokens; a macro is expanding without bound

Parser (TKO0400–TKO0599)

Id Severity Message
TKO0400 error expected an expression
TKO0401 error expected '‹arg1›'
TKO0402 error expected a member name after '.' or '->'
TKO0403 error expression nesting exceeded ‹arg1› levels
TKO0404 error unexpected token after expression
TKO0405 error expected 'end ‹arg1›'
TKO0406 error expected an identifier
TKO0407 error inline assembly is not supported; compile that module with fbc
TKO0408 error expected a statement
TKO0409 error '‹arg1›' is not available in the fb dialect
TKO0410 error 'for each' with a name list takes no 'as' clause; each name is typed by its own element
TKO0411 error 'for each byref' cannot take a name list; bind the whole element byref instead
TKO0412 error 'for each' with a name list needs at least two names
TKO0413 error every lambda capture needs an explicit 'byval' or 'byref'
TKO0414 error 'select channel' needs at least one case
TKO0415 error expected receive, send, timeout or else after 'case'
TKO0416 error expected '‹arg1›' in this 'select channel' case
TKO0417 error only one 'case timeout' and one 'case else' are allowed
TKO0418 error 'select case' needs at least one 'case'
TKO0419 error 'is' is not allowed in a 'select case as const'
TKO0420 error expected the end of the statement
TKO0421 error 'next' without a 'for': no loop is open for '‹arg1›'
TKO0422 error a module constructor or destructor priority must be from 101 to 65535
TKO0423 error '‹arg1›' needs '#import "std/tasks"' in this file (and -mt)
TKO0424 error a typed variadic parameter is an array parameter: write '‹arg1›( ) as T ...'
TKO0425 error '‹arg1›' cannot be written on the array parameter '‹arg2›': an array is always passed by descriptor
TKO0426 error a destructor takes no parameters
TKO0427 error a type extends one base type
TKO0428 error an interface holds only 'inherits' lines and member declarations; '‹arg1›' cannot appear in one
TKO0429 error '‹arg1›' cannot be written on an interface member: every member is public and abstract
TKO0430 error 'implements' names an interface member, as 'IName.Member'
TKO0432 error a ‹arg1› names its base with an 'inherits' line in its body, not 'extends'
TKO0433 error a type names its base with 'extends' on its header; 'inherits' lines are for classes and interfaces
TKO0434 error an interface member has no body; write the body in a type that implements it
TKO0435 error '‹arg1›' lines come first in the body, before any member
TKO0436 error write 'implements' on its own line in the body of '‹arg1›', not on its header
TKO0437 error a class cannot be '‹arg1›'
TKO0438 error 'implements' is written on the method's declaration inside its type
TKO0590 error static property '‹arg1›' is init-only: only its initialiser sets it
TKO0591 error field '‹arg1›' cannot be read in another field's initialiser: only static members can
TKO0592 error a property block's getter returns 'value', a local: it cannot return byref
TKO0593 error in a get/set block 'property' names a backing field, and this property has none: use 'value' or 'return'
TKO0594 error '‹arg1›' is an auto-property: its accessors are synthesised and cannot be written by hand
TKO0595 error auto-property '‹arg1›': ‹arg2›
TKO0596 error property '‹arg1›' is init-only: only a constructor of '‹arg2›' may assign it
TKO0597 error 'swap' over the ‹arg1› property '‹arg2›' is not supported; swap through a temporary
TKO0598 error a sub has no result type; declare it as a function to return a value
TKO0599 error property '‹arg1›' has no address: its getter returns a value, not a reference

Semantic analysis (TKO0600–TKO0899)

Id Severity Message
TKO0600 error '‹arg1›' is already declared in this scope
TKO0601 error '‹arg1›' is a ‹arg2›, not a property: call it as '‹arg1›( ... )' instead of assigning to it
TKO0602 error '‹arg1›' is a ‹arg2›, not a procedure
TKO0603 error calling convention does not match the declaration of '‹arg1›'
TKO0604 error #assert condition failed
TKO0605 error expected a constant expression
TKO0606 error '‹arg1›' cannot be walked by 'for each': it has no GetIterator( )
TKO0607 error '‹arg1›' is not an iterator: it has no '‹arg2›'
TKO0608 error 'for each' over a multi-dimensional array has no defined order
TKO0609 error 'for each' cannot walk a fixed-length string: it carries no length
TKO0610 error 'for each' with a name list needs a tuple element; '‹arg1›' is not one
TKO0611 error 'for each' binds ‹arg1› names but the element has ‹arg2›
TKO0612 error var-len array '‹arg1›' cannot be initialized
TKO0613 error array '‹arg1›' is too big
TKO0614 error 'select case as const' needs a constant case value
TKO0615 error invalid 'case' range: the start value is greater than the end value
TKO0616 error 'select case as const' spans more than ‹arg1› values
TKO0617 error cannot modify '‹arg1›': it is a constant
TKO0618 error too many expressions in the initializer for '‹arg1›'
TKO0619 error '‹arg1›' is declared inside a procedure and cannot have methods
TKO0620 error '‹arg1›' has an abstract type, which cannot be instantiated
TKO0621 error '‹arg1›' is marked 'override' but overrides no virtual method
TKO0622 error '‹arg1›' overrides a virtual method with a different return type
TKO0623 error '‹arg1›' and the virtual method it overrides disagree about 'const'
TKO0624 error '‹arg1›' overrides a virtual method with a different parameter mode
TKO0625 error '‹arg1›' is not accessible here
TKO0626 error '‹arg1›' takes a string
TKO0627 error a pointer to a derived type casts only along its own chain
TKO0628 error var-len string '‹arg1›' has static storage and cannot be initialized
TKO0629 error 'delete' takes a pointer
TKO0630 error '.' reaches a member of a value; this is a pointer, so use '->'
TKO0631 error '->' reaches a member through a pointer to a type; this is not one
TKO0632 error no overload of '‹arg1›' matches these arguments
TKO0633 error '‹arg1›' needs a constructor or destructor that is not accessible here
TKO0634 error a procedure pointer cannot be dereferenced or used in arithmetic
TKO0635 error '&=' concatenates, so its target must be a string
TKO0636 error parameter '‹arg1›' cannot be a fixed-length string
TKO0637 error an array is not a subscript
TKO0638 error static member '‹arg1›' is only allowed in a top-level type
TKO0639 error 'byref' belongs before 'as', not after the return type
TKO0640 error a parameter default cannot name '‹arg1›', which has automatic storage
TKO0641 error this parameter takes a whole array, not an element
TKO0642 error 'swap' needs two variables, not a literal or a constant
TKO0643 error '‹arg1›' is byref, so its initializer needs an address
TKO0644 error '‹arg1›' is byref and must be bound where it is declared
TKO0645 error '‹arg1›' is virtual, but its type does not extend 'object'
TKO0646 error '‹arg1›' is abstract and cannot have a body
TKO0647 error 'operator new' and 'operator delete' are implicitly static and cannot be virtual
TKO0648 error a 'put' blend mode is a word, not a string
TKO0649 error an array name without a subscript is not a value
TKO0650 error a byref result cannot return a local
TKO0651 error the definition of '‹arg1›' disagrees with its declaration about 'byref'
TKO0652 error a literal cannot be assigned to
TKO0653 error '‹arg1›' and its initializer disagree about being a string
TKO0654 error the base of '‹arg1›' has no constructor that takes no argument
TKO0655 error the two arms of 'iif' have incompatible types
TKO0656 error '‹arg1›' is extern or common and cannot be initialized
TKO0657 error the type of '‹arg1›' has no constructor that takes no argument
TKO0658 error '‹arg1›' is indexed with the wrong number of subscripts
TKO0659 error dynamic array '‹arg1›' cannot be a member of a union
TKO0660 error the call to '‹arg1›' matches more than one overload
TKO0661 error '‹arg1›' was not declared as a static member variable
TKO0662 error '‹arg1›' cannot reach its base type's private default constructor
TKO0663 error '‹arg1›' cannot reach its base type's private destructor
TKO0664 error '‹arg1›' cannot be written from a const method
TKO0665 error a const method cannot call the non-const method '‹arg1›'
TKO0666 error the type declares no '‹arg1›' to call
TKO0667 error a byref result must be assigned something of exactly its type
TKO0668 error a shared initialiser cannot reference '‹arg1›', which is not shared
TKO0669 error '‹arg1›' adds a new name to a namespace from outside it
TKO0670 error a pointer and a floating-point value do not convert into each other
TKO0671 error division by a constant zero
TKO0672 error the ALIAS name string is empty
TKO0673 error the LIB name string is empty
TKO0674 error this array bound is not known at compile time
TKO0675 error a parameter default names '‹arg1›', which is not declared
TKO0676 error '‹arg1›' mixes RETURN with 'FUNCTION =' over a result type that has constructors
TKO0677 error '‹arg1›' is already declared with these parameter types
TKO0678 error nothing may follow VIRTUAL or ABSTRACT but the procedure keyword
TKO0679 error VIRTUAL and ABSTRACT belong to a member of a type
TKO0680 error property '‹arg1›' has no setter taking ‹arg2›, so it cannot be assigned this way
TKO0681 error a structor cannot be declared this way
TKO0682 error CONST is for a member procedure, which has a THIS to be const
TKO0683 error STATIC is for a member procedure
TKO0684 error this operator is implicitly STATIC and cannot be CONST
TKO0685 error the bitfield '‹arg1›' is wider than its type
TKO0686 error these pointer types do not convert into each other
TKO0687 error a bydesc parameter takes an array of exactly its element type
TKO0688 error 'for each' cannot walk a ustring; index it with 'for' and 'mid' instead
TKO0689 error a string does not convert to a pointer
TKO0690 error the dynamic array field '‹arg1›' cannot have a const element type
TKO0691 error the array field '‹arg1›' cannot take an ellipsis bound
TKO0692 error the array '‹arg1›' cannot have a const element type
TKO0693 error base( ) is given more values than the base type has fields
TKO0694 error '‹arg1›' names neither a namespace nor a type
TKO0695 error '‹arg1›' is not an array and cannot be redimensioned
TKO0696 error ‹arg1› is written on this definition but not on its declaration
TKO0697 error operator '‹arg1›' must be a member of a type
TKO0698 error this argument does not convert to the parameter's type
TKO0699 error a const value cannot be passed to a non-const byref parameter
TKO0700 error '[ ]' indexes a pointer, and this is not one
TKO0701 error only a module-level definition or a static member can be a module constructor
TKO0702 error a string and a number do not convert into each other
TKO0703 error operator [] cannot be STATIC
TKO0704 error operator [] needs an explicit result type
TKO0705 error 'new' of a bare zstring or wstring allocates nothing
TKO0706 error 'new' cannot allocate a fixed-length string
TKO0707 error 'not' over a pointer; compare it with 0 instead
TKO0708 error the image target of a graphics statement must be a pointer
TKO0709 error this type has no conversion to a pointer for a graphics statement to draw into
TKO0710 error the byref function '‹arg1›' never sets its result
TKO0711 error a byref result must be assigned something with an address
TKO0712 error the alias on the definition of '‹arg1›' does not match its declaration
TKO0713 error '‹arg1›' is a type, not a member with a value
TKO0714 error this case value is not the kind the select subject is
TKO0715 error 'with' takes a UDT value, not a number or a pointer
TKO0716 error '->' through a value of a type that has no operator ->
TKO0717 error 'base.‹arg1›( )' calls an abstract method, which has no body
TKO0718 error a union cannot be unpacked by let( )
TKO0719 error 'erase' over this array needs a plain parameterless cdecl constructor and destructor
TKO0720 error no operator ‹arg1› compares this type
TKO0721 error the dynamic array field '‹arg1›' must write its rank: '(any)'
TKO0722 error the type '‹arg1›' never declared this constructor, destructor or property
TKO0723 error only a var-len array can be redimensioned
TKO0724 error a union is initialised with one value, not a group
TKO0725 error '‹arg1›' has static storage and must be initialised from a constant, not a variable
TKO0726 error '‹arg1›' is shared, which belongs at module level, not inside a block or procedure
TKO0727 error the bounds of '‹arg1›' disagree with its EXTERN declaration
TKO0728 error '‹arg1›' is declared EXTERN with a different number of dimensions
TKO0729 error '‹arg1›' is byref and its initializer must have exactly its type
TKO0730 error '‹arg1›' is a static reference and cannot be bound to a local
TKO0731 error a byref procedure type must be a 'function' with an explicit result type
TKO0732 error '‹arg1›' returns 'any', which is not a value
TKO0733 error every parameter of a definition needs a name
TKO0734 error CONST is not needed on a constructor or destructor
TKO0735 error 'base' must be followed by '.' or an argument list
TKO0736 error the result type of '‹arg1›' has no default constructor
TKO0737 error 'erase' over this array needs a default constructor
TKO0738 error no conversion between these two types
TKO0739 error '‹arg1›' has no member named '‹arg2›'
TKO0740 error '‹arg1›' overrides a virtual method with an array parameter of a different rank
TKO0741 error a field name cannot carry a type suffix
TKO0742 error 'on ... goto' needs a numeric selector, not a string
TKO0743 error '‹arg1›' is not declared
TKO0744 error '‹arg1›' cannot be sized by 'ubound' inside its own initializer
TKO0745 error the namespace '‹arg1›' has no member named '‹arg2›'
TKO0746 error the ‹arg1› of '‹arg2›' is private or protected and cannot be reached from here
TKO0747 error this drops a pointee's 'const'
TKO0748 error a constant cannot have the type of '‹arg1›'
TKO0749 error 'threadcall' runs a SUB; '‹arg1›' is not one
TKO0750 error 'threadcall' cannot run '‹arg1›': ‹arg2›
TKO0751 error a REDIM that declares '‹arg1›' must write its type
TKO0752 error REDIM needs the array's bounds: '‹arg1›( ... )'
TKO0753 error '‹arg1›' is a bitfield and has no address to bind byref
TKO0754 error the type '‹arg1›' is too big
TKO0755 error '‹arg1›' is byref with a default, which needs a complete type
TKO0756 error a cast needs a SIZED string type, as in 'zstring * n'
TKO0757 error '‹arg1›' holds a var-len string, which an initializer list cannot fill
TKO0758 error '‹arg1›' has static storage and holds a bitfield, which its initializer cannot fill
TKO0759 error 'swap' needs two operands of the same kind
TKO0760 error too many levels of pointer indirection (the limit is 8)
TKO0761 error '‹arg1›' is declared SHARED from outside its namespace
TKO0762 error '‹arg1›' is already defined from outside
TKO0763 error '#pragma reserve' takes 'asm' or 'extern', not '‹arg1›'
TKO0764 error '‹arg1›' is already reserved for that use
TKO0765 error '‹arg1›' mixes 'any' with written bounds; use one or the other
TKO0766 error a type's array field is declared with 'dim', not 'redim'
TKO0767 error '‹arg1›' overrides a virtual method with a different calling convention
TKO0768 error '‹arg1›' inherits a virtual destructor whose calling convention an implicit one cannot match
TKO0769 error '‹arg1›' is reserved by '#pragma reserve' and cannot be declared
TKO0770 error '‹arg1›' is reserved by '#pragma reserve' and cannot be used
TKO0771 error '‹arg1›' is a var-len string, which cannot be declared '= any'
TKO0772 error this expression is not a procedure pointer and cannot be called
TKO0773 error this call passes ‹arg1› argument(s), but the procedure pointer takes ‹arg2›
TKO0774 error argument ‹arg1› is left out, and the procedure pointer's declaration gives it no default
TKO0775 error this call passes ‹arg1› argument(s), but '‹arg2›' takes ‹arg3›
TKO0776 error argument ‹arg1› of '‹arg2›' is left out, and it has no default
TKO0777 error '‹arg1›' is already the name of a type with members, which no value may share
TKO0778 error '‹arg1›' has static storage and must be initialised from a constant expression
TKO0779 error '‹arg1›' is declared in a namespace and cannot be removed with #undef
TKO0780 error '‹arg1›' takes '...' and cannot be overloaded
TKO0781 error '...' needs a 'cdecl' procedure, and this one is '‹arg1›'
TKO0782 error '...' cannot be the first parameter
TKO0783 error '‹arg1›' is not declared, so 'procptr' has no procedure to take
TKO0784 error the type '‹arg1›' is used above its declaration
TKO0785 error '‹arg1›' is not a procedure, so 'procptr' cannot take it
TKO0786 error a property getter takes no parameter, or one index
TKO0787 error a property setter takes its value, after any indices
TKO0788 error a property cannot be static
TKO0789 error operator '‹arg1›' takes ‹arg2› parameter(s) here
TKO0790 error operator '‹arg1›' cannot be a member of a type
TKO0791 error 'procptr' takes the name of a procedure
TKO0792 error '‹arg1›' cannot be overloaded
TKO0793 error the result of '‹arg1›' does not match its declaration
TKO0794 error '‹arg1›' was declared with ‹arg2› parameter(s)
TKO0795 error parameter ‹arg1› of '‹arg2›' does not match its declaration
TKO0796 error no declaration of '‹arg1›' matches this definition
TKO0797 warning 'threadcall' is not supported: '‹arg1›' will not run, and the thread handle is 0
TKO0798 error 'is ‹arg1›' needs a type derived from '‹arg2›', and '‹arg1›' is not one
TKO0799 error 'is' needs run-time type information, and '‹arg1›' has none: it does not extend 'object'
TKO0800 error 'is' needs an object and a type that extends 'object', not '‹arg1›'
TKO0801 error '‹arg1›' does not take these arguments
TKO0802 error '‹arg1›( string, ... )' cannot take a wide string; 'str( ... )' converts one
TKO0803 error '‹arg1›( string, ... )' needs a var-len STRING, and this is ‹arg2›
TKO0804 error '‹arg1›' to a pointer needs a pointer or a pointer-sized integer, and this is ‹arg2›
TKO0805 error '‹arg1›' of a pointer needs a pointer or a pointer-sized integer type, and this names ‹arg2›
TKO0806 error '‹arg1›' cannot be initialized from a ustring: no constructor of '‹arg2›' takes one, and a ustring does not convert to 'zstring ptr' here
TKO0807 error '‹arg1›' is a keyword and cannot name ‹arg2›
TKO0808 error the type '‹arg1›' is not declared
TKO0809 error cannot infer the type arguments of '‹arg1›'; write them, as '‹arg1›( of ... )( ... )'
TKO0810 error '‹arg1›' is an incomplete type: nothing declares it, so only a pointer to it may be used here
TKO0811 error '‹arg1›' is still incomplete here: it is declared below this use, and only a pointer to it may be used above that
TKO0812 error 'spawn ‹arg1›' cannot pass its byref parameter '‹arg2›'; a string or UDT parameter is byref unless it is written 'byval'
TKO0813 error '‹arg1›' is already declared by the runtime library
TKO0814 error 'defer' is not allowed at module level; put it in a procedure or a block
TKO0815 error '‹arg1›' is generic; write its type arguments, as '‹arg1›( of ... )'
TKO0816 error '‹arg1›' takes ‹arg2› type argument(s), and ‹arg3› are written here
TKO0817 error the type parameters written for '‹arg1›' do not match its declaration, 'of ‹arg2›'
TKO0818 error 'for each byref' needs a byref Value( ), and '‹arg1›.Value( )' returns by value
TKO0819 error 'next' cannot name a FOR EACH variable: it is scoped to the loop body
TKO0820 error no operator '‹arg1›' takes these operand types
TKO0821 error a tuple needs at least two elements
TKO0822 error the tuple element name '‹arg1›' is used twice
TKO0823 error a tuple element cannot be 'any' or a fixed-length string
TKO0824 error a tuple cannot be a base type; name a type after 'extends'
TKO0825 error the tuple has ‹arg1› elements, and ‹arg2› are written
TKO0826 error a tuple is expected here, and '‹arg1›' is not one
TKO0827 error the jump to '‹arg1›' crosses a 'defer', which would still run when its scope ends
TKO0828 error 'defer' needs a statement on the same line
TKO0829 error generic instantiation of '‹arg1›' is too deep (the limit is ‹arg2›; -maxinstdepth raises it)
TKO0830 warning suspicious pointer assignment: a '‹arg1›' from a '‹arg2›'
TKO0831 error a '‹arg1›' does not convert to the tuple element '‹arg2›'
TKO0832 error '‹arg1›( n, x )' takes a character code or a ‹arg2› string as x, not ‹arg3›
TKO0833 warning passing different pointer types: a '‹arg2›' for a '‹arg1›' parameter
TKO0834 error '‹arg1›' is already the name of an enum, which no variable may share
TKO0835 error '‹arg1›' is a value of an enum type, not the enum, so it has no members
TKO0836 error an array result is written 'as T( )', with nothing between the parentheses
TKO0837 error a procedure type cannot return an array; return it from a named procedure
TKO0838 error this function returns an array: 'return' takes a brace list, a local array, or a call that returns an array of the same element type
TKO0839 error a nested brace list cannot be returned as an array result; write a flat list
TKO0840 error '‹arg1›' is not a local array of this procedure, so returning it would need a copy, which is not supported yet; return a local array or a brace list
TKO0841 error '‹arg1›' returns an array, so it must be called with parentheses: '‹arg1›( )'
TKO0842 error this call returns an array, which cannot be converted to another type
TKO0843 error '‹arg1›' cannot take an initializer list: its type has no Add, PushBack or Push method
TKO0844 error an initializer list on the static member '‹arg1›' is not supported yet; fill it with calls after its definition
TKO0845 error '‹arg1›' is not an array, so it cannot take a '{ ... }' initializer
TKO0846 error a '{ ... }' list can only initialize an array, and nothing here is one
TKO0847 error format string: ‹arg1›
TKO0848 error format string: ‹arg1›
TKO0849 error format string: ‹arg1›
TKO0850 error format string: ‹arg1›
TKO0851 error format string: ‹arg1›
TKO0852 error format string: ‹arg1›
TKO0853 error format string: ‹arg1›
TKO0854 error format string: ‹arg1›
TKO0855 error format string: ‹arg1›
TKO0856 error format string: ‹arg1›
TKO0857 error format string: ‹arg1›
TKO0858 error format string: ‹arg1›
TKO0859 error property '‹arg1›' is read without parentheses: '()' would be an index
TKO0860 error '‹arg1›' is not public in module '‹arg2›'
TKO0862 error alias '‹arg1›' is already bound in this file (by '#import "‹arg2›"')
TKO0863 error alias '‹arg1›' conflicts with a declaration of the same name
TKO0864 error '‹arg1›' belongs to imported module '‹arg2›'; only that module can define it
TKO0865 note '‹arg1›' here is the procedure '‹arg2›', which hides ‹arg3›
TKO0866 note '‹arg1›' is also declared here, in a header an '#import' reads
TKO0867 error constant definitions form a cycle: ‹arg1›
TKO0868 error '‹arg1›' is module-private but appears in the public declaration of '‹arg2›'
TKO0869 error '‹arg1›' is initialised from '‹arg2›', which is declared later
TKO0870 error public '‹arg1›' has the same name as its module '‹arg2›'
TKO0871 error a '‹arg1›' has no printable form; '‹arg2›' cannot take it
TKO0872 error '‹arg1›' needs an argument list
TKO0873 error '‹arg1›' is a sub and has no value
TKO0874 error a value alone is not a statement; expected '='
TKO0875 error property '‹arg1›' opens a statement with empty parentheses; expected an argument
TKO0876 error this ‹arg1› cannot be empty
TKO0877 error an anonymous ‹arg1› cannot sit directly inside a ‹arg1›; they must alternate
TKO0878 error '‹arg1›' cannot hold itself: it is still being declared, and only a pointer to it may be a field
TKO0879 error '‹arg1›' cannot be a module ‹arg2›: it is ‹arg3›, and only a public static member may be one
TKO0880 error the jump to '‹arg1›' crosses the definition of '‹arg2›', which needs constructing
TKO0881 error the jump to '‹arg1›' crosses the temporary holding ‹arg2›, which needs constructing
TKO0882 error iif cannot build a '‹arg1›': it has constructors, but neither a default nor a copy one
TKO0883 error GET cannot fill an array element reached through a function call; expected a pointer
TKO0884 error a static member cannot be declared in an anonymous ‹arg1›
TKO0885 error 'any' cannot leave a new STRING uninitialized
TKO0886 error '‹arg1›' cannot be declared here: only a namespace nested inside this one may be named
TKO0887 error invalid array subscript in '‹arg1›': a lower bound is above its upper bound
TKO0888 error '‹arg1›' is a shared or static reference: it must be bound to a variable, or to a constant element of a fixed array
TKO0889 error the definition of '‹arg1›' does not match its declaration in the type
TKO0890 error '‹arg1›' cannot convert a '‹arg2›'
TKO0891 error no constructor of the base takes ‹arg1› argument(s)
TKO0892 error base( ) needs a value: the base type has no constructor
TKO0893 error '‹arg1›' is a keyword and cannot name a type
TKO0894 error '‹arg1›' is a COMMON array, which is dynamic and cannot be given bounds
TKO0895 error '‹arg1›' has an ellipsis bound, which needs an initializer to count
TKO0896 error '‹arg1›' is dynamic: a REDIM cannot take an ellipsis bound
TKO0897 error '‹arg1›' is const, so it needs a value: '= any' leaves it unset
TKO0898 error '‹arg1›' cannot be of type ANY: only a pointer to it can
TKO0899 error '‹arg1›' is a typedef defined in terms of itself

Semantic analysis, continued, and notes (TKO0900–TKO0989)

Id Severity Message
TKO0900 note ‹arg1›
TKO0901 note declared here
TKO0902 note '‹arg1›' is required by interface '‹arg2›', declared here
TKO0903 note in instantiation of '‹arg1›'
TKO0905 note unclosed '‹arg1›' opened here
TKO0906 note imported here
TKO0907 note did you mean '‹arg1›'? '#import "‹arg2›"' binds the name '‹arg1›'
TKO0908 error a constructor( ) chain call must be the first statement of the constructor
TKO0909 error operator -> must return a UDT, by value or byref
TKO0910 error a pointer does not fit in a '‹arg1›'; only a pointer-sized integer takes one
TKO0911 error type<‹arg1›>( ) needs values: the type has no constructor to call
TKO0912 error no constructor of '‹arg1›' takes these values: a type that extends OBJECT is not filled field by field
TKO0913 error '‹arg1›' is an array of '‹arg2›', whose destructor is not cdecl; an array can only destroy through a cdecl one
TKO0914 error '‹arg1›' is an array: GET # and PUT # take an element, or the whole array written '‹arg1›( )'
TKO0915 error '‹arg1›' takes no name: the next thing is FOR or AS
TKO0916 error this type has more than one conversion to a pointer, so the graphics statement cannot choose one
TKO0917 error '‹arg1›' has no constructor, so '‹arg1›( ... )' is no call
TKO0918 error a store through the address of a temporary: the value is gone at the end of the statement
TKO0919 error '‹arg1›' is ambiguous: more than one USING in effect declares it; qualify it
TKO0920 error '#pragma reserve (asm)' belongs at module level, not inside a block
TKO0921 error the capturing lambda's parameter '‹arg1›' cannot be of the generic's type parameter '‹arg2›'
TKO0922 error '‹arg1›' is not visible here: it is declared inside a namespace; qualify it
TKO0923 error '‹arg1›' is no namespace declared before this USING
TKO0924 error recursive #define: '‹arg1›' names itself in its own body
TKO0925 error type( ... ) has no type to build here: write type<T>( ... )
TKO0926 error '‹arg1›' needs a copy constructor: its base has no constructor that takes no argument, so none can be made for it
TKO0927 error this constructor of '‹arg1›' must call base( ... ): its base has no constructor that takes no argument
TKO0928 error '‹arg1›' takes a number, not a '‹arg2›'
TKO0929 error type( ... ) cannot build a '‹arg1›': its field '‹arg2›' is a var-len string, which only a constructor can fill
TKO0930 error a whole array cannot be assigned or swapped: index it, as in 'a( i )'
TKO0931 warning '=' is read as a comparison inside the argument of '‹arg1›', not as an assignment to its byref result; to assign, write '( ‹arg1›( ... ) ) = value'
TKO0932 error '‹arg1›' returns its result by value, so a call to it cannot be assigned to
TKO0933 error an 'any ptr' points at nothing with a type; cast it to a typed pointer before dereferencing it
TKO0934 error '‹arg1›' is a property with only a setter: it can be assigned, not read
TKO0935 error '‹arg1›' is not a const method, so a const object cannot call it
TKO0936 error '‹arg1›' is not a procedure modifier; 'declare' takes const, static, virtual or abstract before the procedure keyword
TKO0937 error '‹arg1›' needs an object, and '‹arg2›' has none: it is a static member
TKO0938 error '‹arg1›' cannot take a '‹arg2›': convert it explicitly first
TKO0939 error '‹arg1›' is a function: its result can be assigned only inside it
TKO0940 note '‹arg1›' is imported by another file of this module; an import belongs to the file that writes it
TKO0941 error 'for each byref' cannot walk a string: a character has no stable address; walk it by value, or index it with 'for'
TKO0942 error 'case timeout' and 'case else' cannot both appear in one 'select channel': 'else' fires first, so the timeout is never reached
TKO0943 error 'spawn' needs a sub or function declared at module level, and '‹arg1›' is not one
TKO0944 error a line number is not available in the fb dialect; name the line with a label
TKO0945 error '‹arg1›' is already a constant or procedure of the enclosing scope, which no local may share
TKO0946 error iif cannot choose between a ‹arg1› and a ‹arg2›: both results must be the same kind of string
TKO0947 error '‹arg1›' is not inside ‹arg2›
TKO0948 error there is no outer ‹arg2› for '‹arg1›' to leave
TKO0949 error there is no label '‹arg1›' in this procedure
TKO0950 error '*' dereferences a pointer, and this is not one
TKO0951 error '@' takes the address of a variable, and a literal is not one
TKO0952 error this procedure has no result, so its 'return' takes no value
TKO0953 error a FOR counter must be a scalar variable, not a field, element, dereference or byref parameter
TKO0954 error the diagnostics file '‹arg1›' is one of the inputs, and writing it would destroy it
TKO0955 error 'end ‹arg1›' closes no '‹arg1›' block
TKO0956 error a second 'case else' -- a select has one, and it comes last
TKO0957 error 'as any' declares a parameter of any type; a definition must name the type
TKO0958 error an 'operator cast' cannot convert to the type it is a member of
TKO0959 error GET # and PUT # take no amount for a string or a whole array: its length is its own
TKO0960 error the subscript ‹arg1› is outside the array's bounds, ‹arg2› to ‹arg3›
TKO0961 error '‹arg1›' is already a namespace of the enclosing scope, which no local may share
TKO0962 error clang reported success but wrote no object '‹arg1›'
TKO0963 error a bare zstring or wstring is not passed or returned by value; use a pointer or byref
TKO0964 error 'select case' cannot take a '‹arg1›'; select on a field or a conversion of it
TKO0965 error '‹arg1›' has a field with a constructor, which an initializer list cannot fill
TKO0966 error a condition needs a number or a pointer, and this is a '‹arg1›'
TKO0967 error 'line input' reads into a string, and this is a '‹arg1›'
TKO0968 warning implicit conversion: a '‹arg1›' from a '‹arg2›'; cast( ) it if that is meant
TKO0969 note 'nullptr' converts to every pointer type equally; name the one meant, as 'cptr( T ptr, nullptr )'
TKO0970 warning passing a '‹arg2›' for a '‹arg1›' parameter; cast( ) it if that is meant
TKO0971 error '‹arg1›' is a type, not a value
TKO0972 error '‹arg1›' has no member named '‹arg2›': a '‹arg3›' has no members
TKO0973 error a typed variadic parameter ('...') must be the last parameter
TKO0974 error a typed variadic parameter ('...') takes no default value
TKO0975 error '‹arg1›' is declared with a typed variadic last parameter ('...') in one place and without it in another
TKO0976 error a TYPE's 'extern' clause takes "c", not "‹arg1›"
TKO0977 error 'select case as const' already has a case for the value ‹arg1›
TKO0978 error 'select case as const' needs an integer subject, and this is a '‹arg1›'
TKO0979 warning overflow in constant conversion: the case value ‹arg1› does not fit in a '‹arg2›'
TKO0980 error '‹arg1›' cannot take a ustring source; convert it with str( ) first
TKO0981 error '‹arg1›' is not supported on this target; read a variadic argument list with 'cva_list', 'cva_start' and 'cva_arg'
TKO0982 error 'base( )' must be the first statement of the constructor
TKO0983 error '‹arg1›' is ambiguous: more than one enum declares it; qualify it
TKO0984 warning overflow in constant conversion: ‹arg1› does not fit in a '‹arg2›'
TKO0985 error '‹arg1›' has a field with a default value, which an initializer list cannot fill
TKO0986 note in expansion of '‹arg1›' here

Compiler limits and internal errors (TKO0990–TKO0999)

Id Severity Message
TKO0990 error too many errors; stopping
TKO0991 error input exceeds a compiler limit: ‹arg1›
TKO0992 error not implemented in this build: ‹arg1›
TKO0993 error internal compiler error in emission: ‹arg1›
TKO0994 error internal compiler error: this ‹arg2› was not compiled (‹arg1› in this module); the build stops rather than leave it out
TKO0995 warning internal compiler error: this ‹arg2› was not compiled (‹arg1› in this module) and is left out of the build
TKO0996 error '‹arg1›' is a bare ‹arg2›, which has no length; write '‹arg2› * N' or '‹arg2› ptr'
TKO0997 error '‹arg1›' is a procedure, not a type
TKO0998 error '‹arg1›' cannot be a member of a union: ‹arg2›
TKO0999 error '‹arg1›' is not a static member; call it through an object of its type

Interfaces (TKO1000–TKO1049)

Id Severity Message
TKO1000 error '‹arg1›' does not implement '‹arg2›.‹arg3›'; add 'implements ‹arg2›.‹arg3›' to one of its methods
TKO1001 error '‹arg1›' cannot implement '‹arg2›': ‹arg3› differ
TKO1002 error '‹arg1›' is not an interface
TKO1003 error interface '‹arg1›' has no member named '‹arg2›'
TKO1004 error '‹arg1›' implements '‹arg2›.‹arg3›', but does not list '‹arg2›' after 'implements'
TKO1005 error '‹arg2›.‹arg3›' is implemented twice in '‹arg1›'
TKO1006 error interface '‹arg1›' is listed more than once
TKO1007 error interface '‹arg1›' cannot be created; create a type that implements it
TKO1008 error interface '‹arg1›' inherits itself
TKO1009 error '‹arg1›' does not convert to '‹arg2›'‹arg3›
TKO1010 error '‹arg1›' is ambiguous: both '‹arg2›' and '‹arg3›' declare it; cast to one of them
TKO1011 error '‹arg2›.‹arg3›' is already implemented by base type '‹arg1›'; override that method instead
TKO1012 error an interface reference cannot refer to a temporary; store the object in a variable first
TKO1013 error 'delete' cannot destroy through interface '‹arg1›'; cast to the object's type first
TKO1014 error a static method cannot implement an interface member
TKO1015 error interface type '‹arg1›' cannot appear in a foreign declaration
TKO1016 warning '‹arg1›' is decided at compile time: it is always ‹arg2›
TKO1018 warning '‹arg1›' implements '‹arg2›.‹arg3›' with different default arguments; calls through '‹arg2›' use the interface's
TKO1021 error 'trycast' converts to an interface or to a pointer to a type, not to '‹arg1›'
TKO1022 error type argument '‹arg1›' does not implement '‹arg2›', which '‹arg3›' requires
TKO1023 error the argument of '‹arg1›' must be an array, not '‹arg2›'

String slices (TKO1050–TKO1099)

Id Severity Message
TKO1050 error '‹arg1›' cannot be sliced: it is not a string, a string slice or a zstring/wstring pointer
TKO1051 error slice ‹arg1› is outside '‹arg2›' (0 to ‹arg3›)
TKO1052 error a const ‹arg1› cannot convert to a mutable ‹arg1›
TKO1053 error a mutable ‹arg1› parameter needs a ‹arg2› variable, not '‹arg3›'
TKO1054 error a ‹arg1› cannot be ‹arg2›
TKO1055 error type '‹arg1›' holds slice field '‹arg2›' and must be declared 'as view'
TKO1056 error cannot take the address of slice '‹arg1›' except to pass it
TKO1057 error '‹arg1›' outlives '‹arg2›', which this slice borrows from
TKO1058 error this slice borrows from a temporary that ends with the statement
TKO1059 error cannot return a slice of ‹arg1›
TKO1060 error ‹arg1› cannot capture slice '‹arg2›'
TKO1061 error a slice stored through byref parameter '‹arg1›' must outlive the call
TKO1062 error '‹arg1›' cannot be changed while slice '‹arg2›' borrows from it (last used at line ‹arg3›)

See also

Clone this wiki locally