EK9 Compiler Error Index

This is the index of all 453 EK9 compiler error codes. Every code opens its own page: what went wrong, how to fix it, compiled examples of the failure and the fix, and the Q&A entries that teach it.

Understanding EK9 Error Codes

EK9 error codes use the format E[PP][NNN] where:

Examples

A real compile of a source with a typo (coutn for count, from the command line page): the line above the error names the phase that found it, and E50001 is a common error - 50 - that several phases can report.

$ ek9 -E0 -c commandline_errorformat.ek9
ek9: compilation failed (exit 8)
EK9     : FULL_RESOLUTION: Errors in ./commandline_errorformat.ek9
EK9     : Error   : E50001: 'coutn' on line 8 position 28: 'coutn': not resolved
             See: ek9 -h E50001
EK9     : Compilation failed

Tip: Phase-specific errors (E01xxx-E20xxx) tell you exactly which compilation phase detected the issue. Use -Cp [PHASE_NAME] to compile only up to that phase while debugging.

Error Verbosity Levels

EK9 provides six cumulative error verbosity levels (-E0 to -E5). Each level includes all features from lower levels. See command line options for full details and examples.

FlagNameFeatures
-E0MinimalCompact single-line messages (default)
-E1VisualRust-style source display with carets
-E2Suggestions+ "Did you mean?" fuzzy matching
-E3Rich+ Full explanations with diagnosis, rationale, and examples
-E4Paradigm+ Concise paradigm summary (key design decisions and built-in capabilities)
-E5Bootstrap+ Complete forAI.json reference dump for AI bootstrapping

Rich Mode (-E3)

For AI-assisted development or learning, use -E3 to get detailed explanations:

ek9 -E3 -C myfile.ek9

Rich mode includes structured guidance with icons for quick scanning:

Note: Rich mode is automatically enabled for EK9 unit tests to help developers and AI assistants understand test failures more quickly.

Common Errors (E50xxx)

Some errors can occur in multiple compilation phases because they represent fundamental issues that are checked throughout the compilation process. These errors use the special prefix E50.

Example: E50001: NOT_RESOLVED can occur when:

When you see an E50xxx error, check the full error message for context about which phase detected it and what type of symbol was being resolved.

Compiler-development codes (E50200-E50390)

The codes E50200 to E50390 are reported for the directives used to develop the EK9 compiler itself. Other than @Test, the directives are compiler-development tooling and not designed for mainstream programs: an EK9 program needs none of them. These codes keep their pages, so ek9 -h E50200 still explains them, but they have no example and the index lists them last. Compiler developers: docs/testing/EK9_DIRECTIVE_TEST_FILE_PROCESS.md in the compiler repository describes every directive.

All error codes

453 error codes

Jump to: E01xxx Parsing and excluded constructs | E02xxx Symbol definition | E03xxx Duplication checks | E04xxx Reference checks | E05xxx Explicit type symbol definition | E06xxx Type hierarchy checks | E07xxx Full resolution | E08xxx Pre-IR checks (flow analysis) | E09xxx Plugin resolution | E10xxx IR generation | E11xxx Code quality and IR analysis | E12xxx Security constraints | E50xxx Common errors | E81xxx-E83xxx Test configuration, execution and coverage | Compiler development: the directive codes (E50200-E50390)

CodeMeaningCategoryPhase
E01010invalid reference naming; module scope name missingE01xxx Parsing and excluded constructsREFERENCE_CHECKS
E01020invalid module nameE01xxx Parsing and excluded constructsSYMBOL_DEFINITION
E01030Variable/Function/Type duplicated, likely to lead to confusionE01xxx Parsing and excluded constructsEXPLICIT_TYPE_SYMBOL_DEFINITION
E01040Type/Function name duplicatedE01xxx Parsing and excluded constructsSYMBOL_DEFINITION
E01050are duplicated values (or are too similar, likely to be confusing)E01xxx Parsing and excluded constructsSYMBOL_DEFINITION
E01060is a reserved keyword and cannot be used as an identifierE01xxx Parsing and excluded constructsSYMBOL_DEFINITION
E01070'break' does not exist in EK9 - use stream pipelines with 'head' or guardsE01xxx Parsing and excluded constructsSYMBOL_DEFINITION
E01071'continue' does not exist in EK9 - use stream pipelines with 'filter' or 'skip'E01xxx Parsing and excluded constructsSYMBOL_DEFINITION
E01072'return' does not exist in EK9 - declare return values with '<-' and compiler ensures all paths initializeE01xxx Parsing and excluded constructsSYMBOL_DEFINITION
E01073'null' does not exist in EK9 - use tri-state semantics (unset/set) with '?' operatorE01xxx Parsing and excluded constructsSYMBOL_DEFINITION
E01074semicolons are not needed in EK9 - uses indentation-based syntax like PythonE01xxx Parsing and excluded constructsSYMBOL_DEFINITION
E01075'new' does not exist in EK9 - instantiate types with TypeName() directlyE01xxx Parsing and excluded constructsSYMBOL_DEFINITION
E01076'goto' does not exist in EK9 - use structured control flowE01xxx Parsing and excluded constructsSYMBOL_DEFINITION
E01077'def' does not exist in EK9 - define functions by name directlyE01xxx Parsing and excluded constructsSYMBOL_DEFINITION
E01078'elif' does not exist in EK9 - use 'else if' (two words)E01xxx Parsing and excluded constructsSYMBOL_DEFINITION
E01079'None' does not exist in EK9 - use tri-state semantics with '?' operatorE01xxx Parsing and excluded constructsSYMBOL_DEFINITION
E01080'self' does not exist in EK9 - use 'this' keywordE01xxx Parsing and excluded constructsSYMBOL_DEFINITION
E01081Python list comprehensions do not exist in EK9 - use stream pipelinesE01xxx Parsing and excluded constructsSYMBOL_DEFINITION
E01082multiple '->' arrows not supported - use indented block for multiple parametersE01xxx Parsing and excluded constructsSYMBOL_DEFINITION
E01083multiple '<-' arrows not supported - only one return declaration allowedE01xxx Parsing and excluded constructsSYMBOL_DEFINITION
E01084prefix operator used in suffix position - place BEFORE expressionE01xxx Parsing and excluded constructsPARSING
E01085suffix operator used in prefix position - place AFTER expressionE01xxx Parsing and excluded constructsPARSING
E01086aggregate member out of order - EK9 requires: properties first, then methods, then operators (a bare 'default operator' last)E01xxx Parsing and excluded constructsSYMBOL_DEFINITION
E01087empty defines block - add at least one type, function, or program definitionE01xxx Parsing and excluded constructsSYMBOL_DEFINITION
E01088only one 'defines package' block is permitted per moduleE01xxx Parsing and excluded constructsSYMBOL_DEFINITION
E01089differs only by case from an existing construct (too similar, likely to be confusing)E01xxx Parsing and excluded constructsSYMBOL_DEFINITION
E01090is the name of a built-in construct; a second meaning for that name is not allowedE01xxx Parsing and excluded constructsSYMBOL_DEFINITION
E01091a type parameter name must not resolve to anything; use a conceptual name such as 'T'E01xxx Parsing and excluded constructsEXPLICIT_TYPE_SYMBOL_DEFINITION
E01092'?' tests whether a value is set - an assignment target cannot carry itE01xxx Parsing and excluded constructsPARSING
E01093a backtick String is never closed - it runs to the end of the fileE01xxx Parsing and excluded constructsPARSING
E01094'close' is not a statement in EK9 - closing is generated: declare 'default operator close' (or write 'operator close' for extra work); a local closes through try or its statementE01xxx Parsing and excluded constructsSYMBOL_DEFINITION
E01095'<=?' and '>=?' were removed - on equal values '<?' and '>?' now give the LEFT operand, so write '<?' for '<=?' and '>?' for '>=?'E01xxx Parsing and excluded constructsSYMBOL_DEFINITION
E01096'??' and '??=' are not EK9 operators - EK9 is designed so that a value is never absent (it may be unset), so there is nothing for them to test; write 'x ?: y' to use 'y' when 'x' is unset, and 'x :=? y' to assign 'y' only when 'x' is unsetE01xxx Parsing and excluded constructsSYMBOL_DEFINITION
E02010Property/Field duplicatedE02xxx Symbol definitionFULL_RESOLUTION
E02030duplicate/ambiguous methods/operationsE02xxx Symbol definitionEXPLICIT_TYPE_SYMBOL_DEFINITION
E02040variable name duplicated, resulting in multiple fields of same nameE02xxx Symbol definitionSYMBOL_DEFINITION
E02050same trait referenced multiple timesE02xxx Symbol definitionTYPE_HIERARCHY_CHECKS
E02060duplicated enumerated value in switch 'case'E02xxx Symbol definitionFULL_RESOLUTION
E02070PATH is duplicated in terms of structure/namingE02xxx Symbol definitionEXPLICIT_TYPE_SYMBOL_DEFINITION
E02080use of a delegate and methods of same nameE02xxx Symbol definitionFULL_RESOLUTION
E02090a listed trait is already a trait of another listed trait or of the super class - it is inherited through that oneE02xxx Symbol definitionTYPE_HIERARCHY_CHECKS
E03010conflicts with a referenceE03xxx Duplication checksREFERENCE_CHECKS
E03020conflicting referencesE03xxx Duplication checksREFERENCE_CHECKS
E03030reference does not resolveE03xxx Duplication checksREFERENCE_CHECKS
E04010is not a candidate to be constrainedE04xxx Reference checksTYPE_HIERARCHY_CHECKS
E04020result must be String, have the $ operator or can be promoted to StringE04xxx Reference checksFULL_RESOLUTION
E04030type must be of Exception typeE04xxx Reference checksFULL_RESOLUTION
E04040type must be a function or delegateE04xxx Reference checksFULL_RESOLUTION
E04050type must be a simple aggregate/list/dictE04xxx Reference checksEXPLICIT_TYPE_SYMBOL_DEFINITION
E04060not an aggregate typeE04xxx Reference checksFULL_RESOLUTION
E04070as it is not 'template/generic' in natureE04xxx Reference checksEXPLICIT_TYPE_SYMBOL_DEFINITION
E04080Template/Generic requires parameterizationE04xxx Reference checksEXPLICIT_TYPE_SYMBOL_DEFINITION
E05020a circular type/function hierarchy has been usedE05xxx Explicit type symbol definitionTYPE_HIERARCHY_CHECKS
E05030not open to be extendedE05xxx Explicit type symbol definitionEXPLICIT_TYPE_SYMBOL_DEFINITION
E05040'super' for implicit 'Any' base class is not requiredE05xxx Explicit type symbol definitionFULL_RESOLUTION
E05050'this()' and 'super()' must be the first statement in a constructorE05xxx Explicit type symbol definitionFULL_RESOLUTION
E05060'this()' and 'super()' can only be used in constructors, did you mean 'this.' or 'super.'E05xxx Explicit type symbol definitionFULL_RESOLUTION
E05070inappropriate use of 'this'E05xxx Explicit type symbol definitionFULL_RESOLUTION
E05080inappropriate use of 'super'E05xxx Explicit type symbol definitionFULL_RESOLUTION
E05090can be used with :=:, :~:, +=, -=, /= and *=. But not direct assignmentE05xxx Explicit type symbol definitionSYMBOL_DEFINITION
E05100cannot override anythingE05xxx Explicit type symbol definitionSYMBOL_DEFINITION
E05110does not 'override' any method/operatorE05xxx Explicit type symbol definitionFULL_RESOLUTION
E05120as it overrides method of same name/signature in hierarchyE05xxx Explicit type symbol definitionFULL_RESOLUTION
E05130methods with same signature have different access modifiersE05xxx Explicit type symbol definitionFULL_RESOLUTION
E05140function signature does not match 'super' functionE05xxx Explicit type symbol definitionFULL_RESOLUTION
E05150'pure' in super requires 'pure' for this definitionE05xxx Explicit type symbol definitionFULL_RESOLUTION
E05160'super is not 'pure', requires this definition not to be marked as 'pure'E05xxx Explicit type symbol definitionFULL_RESOLUTION
E05170dispatcher handler must match the purity of the dispatcher entry point ('pure' on both or on neither)E05xxx Explicit type symbol definitionFULL_RESOLUTION
E05180same method name as dispatcher, but marked private in super - won't be calledE05xxx Explicit type symbol definitionFULL_RESOLUTION
E05190if any constructor is marked pure, all constructors must be pureE05xxx Explicit type symbol definitionFULL_RESOLUTION
E05200incompatible genus with local constructor useE05xxx Explicit type symbol definitionFULL_RESOLUTION
E05210dispatcher handler type is unreachable from base dispatch type's hierarchyE05xxx Explicit type symbol definitionPRE_IR_CHECKS
E05220dispatcher handler return type is not covariant with dispatcher entry point return typeE05xxx Explicit type symbol definitionFULL_RESOLUTION
E05230dispatcher has ambiguous handler resolution for reachable typeE05xxx Explicit type symbol definitionPRE_IR_CHECKS
E05240type is not permitted to extend/implement this sealed typeE05xxx Explicit type symbol definitionPRE_IR_CHECKS
E05250abstract type cannot be in 'allow only' list — only concrete classes are permittedE05xxx Explicit type symbol definitionEXPLICIT_TYPE_SYMBOL_DEFINITION
E05260dispatcher on sealed type must have handlers for all permitted typesE05xxx Explicit type symbol definitionPRE_IR_CHECKS
E05270a class with 'allow only' must be declared 'as open'E05xxx Explicit type symbol definitionEXPLICIT_TYPE_SYMBOL_DEFINITION
E05280dispatcher handler can never be reached - no concrete type in the program routes to itE05xxx Explicit type symbol definitionPRE_IR_CHECKS
E05290parents disagree on 'pure' - one method cannot honour both a pure and a non-pure contractE05xxx Explicit type symbol definitionFULL_RESOLUTION
E06010type/function is generic but no parameters were suppliedE06xxx Type hierarchy checksFULL_RESOLUTION
E06020type/function is generic, but incorrect number of parameters suppliedE06xxx Type hierarchy checksEXPLICIT_TYPE_SYMBOL_DEFINITION
E06021a generic function infers its type arguments only when its parameters are exactly its type parameters, in order; parameterise it explicitlyE06xxx Type hierarchy checksFULL_RESOLUTION
E06030type is generic, but for type inference to work; the number of generic and constructor parameters must be the sameE06xxx Type hierarchy checksSYMBOL_DEFINITION
E06040a generic type requires 2 constructors, default and inferred typeE06xxx Type hierarchy checksSYMBOL_DEFINITION
E06050a generic type requires correct constructor argument to match parametric types (and order)E06xxx Type hierarchy checksEXPLICIT_TYPE_SYMBOL_DEFINITION
E06060a generic type does not support private or protected constructorsE06xxx Type hierarchy checksSYMBOL_DEFINITION
E06070type inference is not supported within generic/template type/functionsE06xxx Type hierarchy checksSYMBOL_DEFINITION
E06080the constraining type with a generic/template cannot be a functionE06xxx Type hierarchy checksEXPLICIT_TYPE_SYMBOL_DEFINITION
E06090a named dynamic class cannot be used within a generic type/functionE06xxx Type hierarchy checksSYMBOL_DEFINITION
E06100implementation must be provided for generic functionE06xxx Type hierarchy checksFULL_RESOLUTION
E06110use of a constructor in a generic/template that uses a function is not supportedE06xxx Type hierarchy checksPOST_RESOLUTION_CHECKS
E06120functions can be used in generics/templates but only '?' is supportedE06xxx Type hierarchy checksPOST_RESOLUTION_CHECKS
E06130constraining type constructors must exist on parameterizing typeE06xxx Type hierarchy checksPOST_RESOLUTION_CHECKS
E06131an alias or constrained type is made from a copy of its base value, so the base needs a public copy constructor - one parameter of exactly its own typeE06xxx Type hierarchy checksTYPE_HIERARCHY_CHECKS
E06132a collection cannot carry a type invariant: its only usable constraints are whole-container predicates ('contains'), which are 'require' preconditions, and a mutating operator would re-validate on every '+=' - so a mutation could break it; constrain the ELEMENT type instead ('List of MyConstrainedElement'), which holds for every element however the collection is assembledE06xxx Type hierarchy checksTYPE_HIERARCHY_CHECKS
E06140ambiguous matchE06xxx Type hierarchy checksFULL_RESOLUTION
E06150conflicting methods to be resolvedE06xxx Type hierarchy checksFULL_RESOLUTION
E06160not an immediate trait of this contextE06xxx Type hierarchy checksFULL_RESOLUTION
E06170trait method access not supported hereE06xxx Type hierarchy checksFULL_RESOLUTION
E06180not accessible from this contextE06xxx Type hierarchy checksFULL_RESOLUTION
E06190EK9 Result must be used with two different typesE06xxx Type hierarchy checksEXPLICIT_TYPE_SYMBOL_DEFINITION
E06200use of parenthesis '( )' not allowed in this contextE06xxx Type hierarchy checksSYMBOL_DEFINITION
E06210parenthesis '( )' required in this contextE06xxx Type hierarchy checksSYMBOL_DEFINITION
E06220choose either empty parenthesis '( )' with values or a type definitionE06xxx Type hierarchy checksSYMBOL_DEFINITION
E06230variables being captured must be named when not just using identifiersE06xxx Type hierarchy checksSYMBOL_DEFINITION
E06240either all variable must be named or none, when passing parametersE06xxx Type hierarchy checksSYMBOL_DEFINITION
E06250the order and naming of arguments must match parametersE06xxx Type hierarchy checksFULL_RESOLUTION
E06260invalid package propertyE06xxx Type hierarchy checksSYMBOL_DEFINITION
E06261a package must have a 'description'E06xxx Type hierarchy checksSYMBOL_DEFINITION
E06262a package must have a 'version'E06xxx Type hierarchy checksSYMBOL_DEFINITION
E06270parameter mismatchE06xxx Type hierarchy checksFULL_RESOLUTION
E06280operator declared with too many parametersE06xxx Type hierarchy checksEXPLICIT_TYPE_SYMBOL_DEFINITION
E06290operator declared with too few parametersE06xxx Type hierarchy checksEXPLICIT_TYPE_SYMBOL_DEFINITION
E06300require one argument onlyE06xxx Type hierarchy checksFULL_RESOLUTION
E06310function must have no argumentsE06xxx Type hierarchy checksFULL_RESOLUTION
E06320invalid number of parametersE06xxx Type hierarchy checksFULL_RESOLUTION
E06330argument types are not compatible with each otherE06xxx Type hierarchy checksFULL_RESOLUTION
E07010remove 'override' with use of 'private' access modifierE07xxx Full resolutionSYMBOL_DEFINITION
E07020'override' of a method/operator and 'abstract' (no implementation) is not logicalE07xxx Full resolutionSYMBOL_DEFINITION
E07030'default' of operators on a trait is not supportedE07xxx Full resolutionSYMBOL_DEFINITION
E07040'by' variable is not supported on a trait only on a classE07xxx Full resolutionFULL_RESOLUTION
E07050'abstract' modifier on a constructor is not logicalE07xxx Full resolutionSYMBOL_DEFINITION
E07060'override' is not required on a constructorE07xxx Full resolutionSYMBOL_DEFINITION
E07070traits do not support constructor methodsE07xxx Full resolutionSYMBOL_DEFINITION
E07075traits do not support properties/fieldsE07xxx Full resolutionSYMBOL_DEFINITION
E07080'default' constructor with parameters is not supportedE07xxx Full resolutionSYMBOL_DEFINITION
E07090'default' modifier is only valid for constructors, not regular methodsE07xxx Full resolutionSYMBOL_DEFINITION
E07100defined as default/abstract but an implementation has been providedE07xxx Full resolutionSYMBOL_DEFINITION
E07110implementation not provided so must be declared as abstractE07xxx Full resolutionSYMBOL_DEFINITION
E07120base level implementation must be provided for dispatcher methodE07xxx Full resolutionSYMBOL_DEFINITION
E07130not declared abstract but still has abstract methods/operatorsE07xxx Full resolutionFULL_RESOLUTION
E07140all abstract methods/operators must be implementedE07xxx Full resolutionFULL_RESOLUTION
E07150text method missing for language variantE07xxx Full resolutionFULL_RESOLUTION
E07155text type already defined for this localeE07xxx Full resolutionSYMBOL_DEFINITION
E07156'locale' is reserved in a text construct - it names the auto-provided Locale fieldE07xxx Full resolutionSYMBOL_DEFINITION
E07160implementation must be providedE07xxx Full resolutionSYMBOL_DEFINITION
E07170a developer coded constructor(s) are required where uninitialised properties are usedE07xxx Full resolutionPRE_IR_CHECKS
E07175default constructor must be 'private' when uninitialised properties existE07xxx Full resolutionPRE_IR_CHECKS
E07176a constructor cannot rely on the implicit super() - the super has no accessible no-argument constructor (it is 'private', or there is none) - call or provide an accessible initialising super constructorE07xxx Full resolutionFULL_RESOLUTION
E07177the super type has no accessible no-argument constructor (it is 'private', or there is none), so a default constructor cannot be generated here - you must define a constructor for this sub-type that calls an accessible super(...)E07xxx Full resolutionFULL_RESOLUTION
E07180'default' of operators requires this type to have appropriate operatorE07xxx Full resolutionFULL_RESOLUTION
E07181comparisons with the type itself are generated from its sameness ('<=>' or '=='), never written or requestedE07xxx Full resolutionFULL_RESOLUTION
E07182sameness ('<=>' or '==') written by hand on an abstract base or a trait is hierarchy-wide sameness; a subtype inherits it and cannot redefine itE07xxx Full resolutionFULL_RESOLUTION
E07183sameness ('<=>' or '==') must have a body where it is declared; it cannot be abstractE07xxx Full resolutionFULL_RESOLUTION
E07184'#?' goes with the type's sameness: defaulted with a defaulted one, hand-written with a hand-written oneE07xxx Full resolutionFULL_RESOLUTION
E07185an abstract '$', '$$' or '#?' is only for a type with no fields (counting inherited ones): a sub-type's generated operator covers only its own fields, so these fields would be left out - give the operator a body, or use 'default operator' for itE07xxx Full resolutionFULL_RESOLUTION
E07186a subtype of an ordered type (its super has '<=>') must stay ordered: it declares '<=>' (by hand or 'default operator <=>'), not '==' alone, and a bare 'default operator' needs every one of its fields to have a '<=>'E07xxx Full resolutionFULL_RESOLUTION
E07187'<?' and '>?' select by '<=>', which is unset for two values of different run-time types: they cannot be used on an open or abstract class, record or component, or a trait, unless its sameness is hierarchy-wide - make the type closed, write '<=>' by hand on its abstract base or trait, or compare with '<=>' and handle unset yourselfE07xxx Full resolutionFULL_RESOLUTION
E07188a '<=>' must order every two set values of its type: it cannot return an unset Integer, nor build its result on a '<=>' (a field's, a super's, a function's) that answers unset for two set valuesE07xxx Full resolutionPRE_IR_CHECKS
E07190'default' of operators requires super to have appropriate operatorE07xxx Full resolutionFULL_RESOLUTION
E07200'default' of operators requires property/field to have appropriate operatorE07xxx Full resolutionFULL_RESOLUTION
E07210'default' of operators can only support '?' operator with function delegate fieldsE07xxx Full resolutionFULL_RESOLUTION
E07220'default' is not supported on this operatorE07xxx Full resolutionSYMBOL_DEFINITION
E07230'default' with an operator must not have signature or bodyE07xxx Full resolutionSYMBOL_DEFINITION
E07235aggregate with properties/fields requires 'override operator ?' (custom) or 'default operator ?' (auto-generated) to define set/unset semanticsE07xxx Full resolutionFULL_RESOLUTION
E07236dynamic class with captured variables requires 'default operator ?' to define set/unset semantics for captured fieldsE07xxx Full resolutionFULL_RESOLUTION
E07237a record exists only to carry data, but this concrete record has no fields (counting inherited ones) - give it a field, make it a class or component if it carries behaviour, or mark it 'as abstract' if it is the root of a record hierarchyE07xxx Full resolutionFULL_RESOLUTION
E07238a type that adds fields, concrete or abstract, must declare its own '$', '$$' and ':=:', and its own sameness ('<=>' or '==', with '#?'), where it would inherit one: the inherited operator was written for the super's fields and cannot know these - use 'default operator' for each (or the bare 'default operator') or write oneE07xxx Full resolutionFULL_RESOLUTION
E07240non web service methods cannot be marked with the 'protected' access modifierE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07250component methods cannot be marked with the 'protected' access modifierE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07260class methods can only be marked with the 'protected' access modifier in classes that are 'open'E07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07270trait methods cannot be marked with an access modifier, they are always publicE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07280access modifier is not needed here - methods are 'public' by defaultE07xxx Full resolutionSYMBOL_DEFINITION
E07290only constructors and operators methods are supported on recordsE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07300declaration supporting 'uninitialised' is not neededE07xxx Full resolutionSYMBOL_DEFINITION
E07310'cases' should cover all enumerated values in 'switch'E07xxx Full resolutionFULL_RESOLUTION
E07320'default' is required in this 'switch' statementE07xxx Full resolutionFULL_RESOLUTION
E07330'default' is required in this 'switch' expressionE07xxx Full resolutionFULL_RESOLUTION
E07340without a control, failed to find subject of flowE07xxx Full resolutionFULL_RESOLUTION
E07360application selection not allowed in this contextE07xxx Full resolutionSYMBOL_DEFINITION
E07370all paths lead to an ExceptionE07xxx Full resolutionSYMBOL_DEFINITION
E07380return not possible, as instructions only result in an ExceptionE07xxx Full resolutionFULL_RESOLUTION
E07390constant Boolean literal in expression is pointlessE07xxx Full resolutionSYMBOL_DEFINITION
E07395'Void' has no accessible methods or operatorsE07xxx Full resolutionFULL_RESOLUTION
E07400returning variable and type missingE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07405returning block required for assignment to 'lhs' when used in expressionE07xxx Full resolutionFULL_RESOLUTION
E07406returning block is not required as there is no 'lhs' variable to assign it toE07xxx Full resolutionFULL_RESOLUTION
E07410returning type must be same as the construct typeE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07420returning type must not be same for promotionE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07430return not required/supported in this contextE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07440return types are incompatible (covariance required)E07xxx Full resolutionFULL_RESOLUTION
E07450function must have no parametersE07xxx Full resolutionFULL_RESOLUTION
E07460function must have a single parameterE07xxx Full resolutionFULL_RESOLUTION
E07470function must have a two parametersE07xxx Full resolutionFULL_RESOLUTION
E07480is not a function delegateE07xxx Full resolutionFULL_RESOLUTION
E07490function must return a valueE07xxx Full resolutionFULL_RESOLUTION
E07500operator must be declared pureE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07510operator must not be declared pureE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07520must return a BooleanE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07530only compatible with Boolean typeE07xxx Full resolutionFULL_RESOLUTION
E07540is not compatible with a Boolean typeE07xxx Full resolutionFULL_RESOLUTION
E07550must return an IntegerE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07560must be an Integer with a value greater than zeroE07xxx Full resolutionFULL_RESOLUTION
E07570must return a StringE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07580must return a JSONE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07590if a program returns a value it can only be an IntegerE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07600program arguments are limited to a finite range of EK9 built in typesE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07610inappropriate combination of program argumentsE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07620operator not definedE07xxx Full resolutionFULL_RESOLUTION
E07621the type argument's operator does not return the type the generic uses it asE07xxx Full resolutionPOST_RESOLUTION_CHECKS
E07630operator cannot be used on an Enumeration in this wayE07xxx Full resolutionFULL_RESOLUTION
E07640use <> for the not equal operatorE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07650use ~ for the not operatorE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07660operator name cannot be used as a methodE07xxx Full resolutionSYMBOL_DEFINITION
E07670operator not supported, only +=, -=, :^:, :~: and ? are supportedE07xxx Full resolutionSYMBOL_DEFINITION
E07671a service URI needs 'for' before it and an HTTP verb needs 'as' before itE07xxx Full resolutionSYMBOL_DEFINITION
E07680URI with place holder variable not supported in this contextE07xxx Full resolutionSYMBOL_DEFINITION
E07690HTTP access verb not supported in this contextE07xxx Full resolutionSYMBOL_DEFINITION
E07700HTTP PATH parameter is invalidE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07710additional name needed for QUERY, HEADER or PATH parametersE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07720additional name only required for QUERY, HEADER or PATH parametersE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07730HTTP PATH variable count and PATH parameter count mismatchE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07731each HTTP PATH variable must be bound by exactly one PATH parameterE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07740implementation not provided, but services cannot be abstractE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07750Web Service return type must be compatible with HTTPResponseE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07760only Integer, String, Date, Time, DateTime, Milliseconds, Duration, HTTPRequest and HTTPContext supportedE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07770Web Service parameter type must be HTTPRequest for REQUESTE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07780Web Service type HTTPRequest can only be used by itselfE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07790Web Service parameter type cannot be HTTPRequestE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07791Web Service parameter type must be HTTPContext for CONTEXTE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07792Web Service type HTTPContext can only be used by itselfE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07793Web Service parameter type cannot be HTTPContextE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07800Web Service must have return value and it must be compatible with HTTPResponseE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07810Dispatch only supported in classesE07xxx Full resolutionSYMBOL_DEFINITION
E07820only one method can be marked as a dispatcher entry pointE07xxx Full resolutionFULL_RESOLUTION
E07825a trait cannot supply a dispatcher handler - move the handler into the classE07xxx Full resolutionFULL_RESOLUTION
E07830unable to find a '|' pipe operator for typeE07xxx Full resolutionFULL_RESOLUTION
E07835'collect as T' needs T to have a no-argument constructor that can be called where the pipeline is writtenE07xxx Full resolutionFULL_RESOLUTION
E07840it does not have compatible iterator() - hasNext()/next() methodsE07xxx Full resolutionFULL_RESOLUTION
E07845a for-range needs an ordered, steppable type - this type has no ordering and no stepE07xxx Full resolutionFULL_RESOLUTION
E07850only a single Exception is supportedE07xxx Full resolutionFULL_RESOLUTION
E07860require a function or function delegateE07xxx Full resolutionFULL_RESOLUTION
E07870require an Integer value or function/function delegateE07xxx Full resolutionFULL_RESOLUTION
E07880a function or function delegate is not required hereE07xxx Full resolutionFULL_RESOLUTION
E07890not mutableE07xxx Full resolutionFULL_RESOLUTION
E07895cannot assign to a method-call result - not an assignable target; only mutating operators (+=, -=, :~:, :^:, :=:) apply to a call resultE07xxx Full resolutionFULL_RESOLUTION
E07900Invalid valueE07xxx Full resolutionSYMBOL_DEFINITION
E07901a double-quoted String is never interpolated - '${' needs a backtick StringE07xxx Full resolutionSYMBOL_DEFINITION
E07902a plain "..." String literal is required here - a backtick String is not a compile-time literalE07xxx Full resolutionSYMBOL_DEFINITION
E07903a unicode escape needs exactly four hex digits (0-9, a-f, A-F) - write \\u for a backslash and a 'u'E07xxx Full resolutionSYMBOL_DEFINITION
E07910sanitized parameters must be String typeE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07920sanitized modifier only valid on incoming function/method parametersE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07930cannot assign from sanitized parameter - creates hidden copy semanticsE07xxx Full resolutionFULL_RESOLUTION
E07940'sanitized' cannot be dropped - the declaration this one stands in for (an overridden method or function, a dispatcher entry point, or another locale of the text) marks this parameter 'sanitized'; it may be added, never removedE07xxx Full resolutionFULL_RESOLUTION
E07941'sanitized' cannot be used on captured variables - sanitize at the original entry pointE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07942'sanitized' is specified in the function/method definition, not at call sitesE07xxx Full resolutionFULL_RESOLUTION
E07943'sanitized' cannot be used on variable declarations - sanitize at the function/method entry pointE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07944'sanitized' cannot be used on an extern parameter - the compiler does not generate an extern body, so nothing would clean it; the external implementation must clean its input itselfE07xxx Full resolutionEXPLICIT_TYPE_SYMBOL_DEFINITION
E07950'++' and '--' are statement-only operators in EK9 - they cannot be used in expressionsE07xxx Full resolutionFULL_RESOLUTION
E08010used before definitionE08xxx Pre-IR checks (flow analysis)FULL_RESOLUTION
E08020might be used before being initialisedE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08030has not been checked before accessE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08040Reassignment/mutation within possible 'safe method access' scope is not allowedE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08050return value is not always initialisedE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08055return value is initialised before a 'require' precondition; declare it 'as Type?' and assign it after the require(s)E08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08056a guard can skip the stream, but a stream expression has no way to declare the value produced on the skip path; use the statement form with your own accumulatorE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08060is/may not be initialised before useE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08061the object is used before it is fully constructed - set every property before calling its methodsE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08070never initialisedE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08080self assignmentE08xxx Pre-IR checks (flow analysis)FULL_RESOLUTION
E08081comparing a value to itself is always constant and indicates a logic errorE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08082comparison between literal values has a predetermined resultE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08083arithmetic expression always produces a constant resultE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08084comparing a Boolean with true/false is redundantE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08085logical expression is always true or always falseE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08086condition is always true based on data flow analysisE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08087condition is always false based on data flow analysisE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08088isSet check is always true based on data flow analysisE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08089isSet check is always false based on data flow analysisE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08090is not referenced anywhere, or not referenced after assignmentE08xxx Pre-IR checks (flow analysis)FULL_RESOLUTION
E08091parameter is declared but never used in the function/method bodyE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08092empty check is always true based on data flow analysisE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08093empty check is always false based on data flow analysisE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08094coalescing expression has a predetermined result - both operands are literals, or a literal on the left of '?:' is always set and so always chosenE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08095assign-if-unset ':=?' can never apply because the target is always set - the right side is never evaluatedE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08096an operator that keeps an unset value unset can never give it a valueE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08097assign-if-unset ':=?' always applies because the target is always unset here - it is a plain assignment; use ':=' (or declare the variable with the value)E08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08100reassignment not allowed when scope is marked as 'pure' (':=?' is supported)E08xxx Pre-IR checks (flow analysis)FULL_RESOLUTION
E08110reassignment not allowed of an incoming argument/parameterE08xxx Pre-IR checks (flow analysis)FULL_RESOLUTION
E08120mutating variables is not allowed when scope is marked as 'pure'E08xxx Pre-IR checks (flow analysis)FULL_RESOLUTION
E08130is not marked 'pure', but call is made in a scope that is marked as 'pure'E08xxx Pre-IR checks (flow analysis)FULL_RESOLUTION
E08140component injection not allowed when scope is marked as 'pure'E08xxx Pre-IR checks (flow analysis)FULL_RESOLUTION
E08150dependency injection of a non-abstract component is not allowed, use an abstract base componentE08xxx Pre-IR checks (flow analysis)FULL_RESOLUTION
E08160dependency injection is not allowedE08xxx Pre-IR checks (flow analysis)FULL_RESOLUTION
E08170an injected component is never assigned, not even with ':=?' - for a fallback, assign to a new variable ('chosen <- supplied' then 'chosen :=? injected')E08xxx Pre-IR checks (flow analysis)FULL_RESOLUTION
E08180not marked for injection nor initialisedE08xxx Pre-IR checks (flow analysis)SYMBOL_DEFINITION
E08190circular dependency detected in component injection chainE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08200component used before registration in application blockE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08210program uses injection but application has no registration for the required component typeE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08220program uses injection but has no linked applicationE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08230duplicate registration of the same abstract component type in applicationE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08240mutation operators are not applicable to function types, only '?' operator is supportedE08xxx Pre-IR checks (flow analysis)FULL_RESOLUTION
E08250'this' cannot be passed as an argument to, or stored into, another object inside a constructor bodyE08xxx Pre-IR checks (flow analysis)FULL_RESOLUTION
E08251mutation of shared state must happen inside MutexLock.enter(...) — wrap the write in a MutexKey bodyE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08252nested enter() on a different lock identity — potential deadlock from lock-order cycleE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08253same lock acquired across a thread boundary — inner acquire blocks waiting for outer holder; MutexLock reentrancy does not cross threadsE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08254MutexLock cannot appear in a generic type parameter — move the lock to a class or component fieldE08xxx Pre-IR checks (flow analysis)SYMBOL_DEFINITION
E08255two locks of the same type are nested but no consistent acquisition order can be statically proven — under some interleaving this will deadlock; protect the state under ONE lock over an owning record (and if the state is durable or shared across instances, a mutex cannot protect it — that is a transaction concern)E08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08256MutexLock construction is only allowed as a field initialiser on a class or componentE08xxx Pre-IR checks (flow analysis)FULL_RESOLUTION
E08257MutexLock(...) argument must be a fresh value — a literal or a constructor call (MutexLock(List() of Item) builds an empty payload; MutexLock(String(existing)) copies, but only for a type with a copy constructor - List and Dict have none); not a reference to existing stateE08xxx Pre-IR checks (flow analysis)FULL_RESOLUTION
E08258data inside a MutexLock must be purely contained — assigning 'lockedItem' creates an external reference; use ':=:' (copy), ':~:' (merge), or ':^:' (replace) insteadE08xxx Pre-IR checks (flow analysis)FULL_RESOLUTION
E08260compile-time constant value violates the type's constraint — this would Panic at runtimeE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08261no value of the base type can satisfy this constraint — every construction would PanicE08xxx Pre-IR checks (flow analysis)FULL_RESOLUTION
E08262every suffixed value in a constraint must carry the SAME suffix — comparing across currencies or units is never satisfiedE08xxx Pre-IR checks (flow analysis)FULL_RESOLUTION
E08263construction can never complete - every path through it constructs the same type again, so it overflows the stack at run time; construct the recursive part only under a condition, or hold it in an 'Optional of Type' or a 'List of Type', which start emptyE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08264this constructor leaves properties without a value - it can only be used through this() from a constructor that sets them; construct through a constructor that sets every propertyE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08265a constraint's literal must match the operator's parameter type exactly — a constraint is never converted, so write the literal in that type or add the operator taking this oneE08xxx Pre-IR checks (flow analysis)FULL_RESOLUTION
E08266an injected component is always set, so checking that it is set is always true - use the injected value directly; for a fallback, use a new variable ('chosen <- supplied' then 'chosen :=? injected')E08xxx Pre-IR checks (flow analysis)FULL_RESOLUTION
E08269a coalescing operator ('?:', '<?', '>?') mixed with a different binary operator must be parenthesised - it binds tighter than arithmetic, comparison and logic, so write '(a + b) ?: c' or 'a + (b ?: c)' to say which is meantE08xxx Pre-IR checks (flow analysis)SYMBOL_DEFINITION
E08270a '<-' guard's variable is always unset in the later 'else if' and 'else' blocks of its 'if' - they run because it was unset - so this read finds nothing; use it inside the guarded block, or assign it a new value firstE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08271a 'register' statement constructs what it registers - call a constructor of the component or service (and of each aspect), not a function, method or delegateE08xxx Pre-IR checks (flow analysis)FULL_RESOLUTION
E08272a for-range creates new values of its declared type - its counter as T(start) and each loop variable as T(counter) - so the range type must be concrete and have a public copy constructor T(T) that produces an independent valueE08xxx Pre-IR checks (flow analysis)FULL_RESOLUTION
E08273word 'not' is never an operand of another operator unless parenthesised, except 'and', 'xor' and 'or' - it binds below the comparisons, so write 'a == (not b)' or '$ (not b)', or 'not (a == b)' if that is meant; 'a and not b' needs noneE08xxx Pre-IR checks (flow analysis)SYMBOL_DEFINITION
E08274a negation applied to a negation - word 'not', '~' or unary '-' in any mix, parenthesised or not ('not not b', 'not (not b)', '~~b', '- -x', '-(-x)') - cancels out: write the operand, or a single negation if one was meantE08xxx Pre-IR checks (flow analysis)SYMBOL_DEFINITION
E08275the text given to 'Networking().urlOf()' is known when the program is compiled - an endpoint in the source is configuration hard-coded: read it with 'Networking().urlFromEnv(name)', and derive other URLs from it with 'withPath', 'withPathSegment', 'withQueryParam' or 'resolve'; 'urlOf' is for URL text that arrives while the program runsE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08276a for-range whose start, end and step are known when the program is compiled can never step from its start to its end - its step is zero, moves away from the end, or takes a Time range across midnight; give 'by' a step that moves from the start toward the end (negative to count down), or leave 'by' outE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08277the same variable is read by 'cat' and appended to ('>>' or 'tee') in one stream statement, so the read never reaches the end - input is output; read a copy instead, use '>' to replace it, or collect into a new variableE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E08278cannot be the target of '>' because '>' replaces the target with a fresh value and this type cannot make one (it must be concrete, have an accessible constructor with no arguments and have a ':=:' operator); use '>>' to add to it instead, or give the type thoseE08xxx Pre-IR checks (flow analysis)PRE_IR_CHECKS
E09010inappropriate use in this contextE09xxx Plugin resolutionFULL_RESOLUTION
E10010'void' return type cannot be used with an assignmentE10xxx IR generationFULL_RESOLUTION
E10011'Void' is the absence of a value - it cannot be the type of a variable, property, parameter or type argumentE10xxx IR generationEXPLICIT_TYPE_SYMBOL_DEFINITION
E10020Void cannot be used in stream pipelinesE10xxx IR generationFULL_RESOLUTION
E10030use of a constructor directly on an abstract type is not permitted.E10xxx IR generationPOST_RESOLUTION_CHECKS
E10031'T()' in the generic type needs a public no-argument constructor on the type used to parameterise itE10xxx IR generationPOST_RESOLUTION_CHECKS
E10032a constructor the generic uses on T from a pure scope ('T()', or the copy constructor 'T(T)' a for-range uses) must be pure on the type used to parameterise itE10xxx IR generationPOST_RESOLUTION_CHECKS
E10040'group' requires a preceding 'sort' with no type-changing operations between themE10xxx IR generationFULL_RESOLUTION
E10050this operation needs a bounded source; an unbounded source (Stdin, UDP, TCPConnection) or an infinite one (an iterator whose hasNext() always returns true) must be bounded first with 'head N'E10xxx IR generationFULL_RESOLUTION
E11010excessive complexity - refactorE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11011excessive nesting - extract functionE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11012too many statements - extract functionsE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11013excessive expression complexity - extract intermediate variablesE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11014low cohesion - class has disconnected method groups, consider splittingE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11015excessive efferent coupling - depends on too many typesE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11016excessive module coupling - references too many external modulesE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11017low module cohesion - constructs share little commonalityE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11018unused captured variable in dynamic function or classE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11019excessive inheritance depth - consider delegation with 'by'E11xxx Code quality and IR analysisPRE_IR_CHECKS
E11020combined complexity and size exceeds maintainability thresholdE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11021cognitive complexity exceeds limit - extract functionsE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11022class has component characteristics - use 'defines component'E11xxx Code quality and IR analysisPRE_IR_CHECKS
E11023manual delegation detected - use 'by' keywordE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11024class mixes data and service coordination - split into class + componentE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11025class has too many service and data fields - split into component + data classE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11026references not in alphabetical order - reorder for consistencyE11xxx Code quality and IR analysisREFERENCE_CHECKS
E11027too many constructs in module - split into focused modulesE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11030confusingly similar variable names - rename for clarityE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11031non-descriptive variable name - use meaningful identifierE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11032variable name shadows operator keyword - use a more specific nameE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11040too many injected fields - use a facade component to group dependenciesE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11041multiple methods use the same injected type - promote to a facade componentE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11042application has too many registrations - split into focused applicationsE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11043method uses too many distinct injected types - extract to a dedicated componentE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11044override method body is identical to super - remove the overrideE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11050operator returns a value but result is discarded - assign to variable or use in expressionE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11051pure method/function returns a value but result is discarded - a pure call with no side effects achieves nothingE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11052method returns Result or Optional but result is discarded - must always be checkedE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11053data clump detected - extract a record to group repeated parametersE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11054method chain traverses too many types - extract a function or use a pipelineE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11055constructor result is discarded - assign to a variable; if you need side effects, use a functionE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11061call passes 2+ Boolean literals positionally - use named arguments for clarityE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11062call has 4+ positional arguments - use named arguments for clarityE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11064literal in comparison/range - give it a meaningful nameE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11065literal appears multiple times - extract to a named constantE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11066constants should be consolidated into a single fileE11xxx Code quality and IR analysisDUPLICATION_CHECK
E11067module has many constants - consider a dedicated constants fileE11xxx Code quality and IR analysisDUPLICATION_CHECK
E11068string concatenation with 3+ parts - use string interpolation insteadE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11069nested call chain exceeds one level - extract intermediate variable for readabilityE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11070nested call in throw - extract intermediate variable for the exceptionE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11080hardcoded cloud provider credential detectedE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11081hardcoded platform token detectedE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11082hardcoded private key material detectedE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11083hardcoded database credential detectedE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11084hardcoded JWT token detectedE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11086hardcoded API key detectedE11xxx Code quality and IR analysisPRE_IR_CHECKS
E11090reveal() on Sensitive is only permitted in a method of a class or trait that is Privileged: it has the Privileged trait, a trait that has it, or a super class that has itE11xxx Code quality and IR analysisPRE_IR_CHECKS
E12010type requires declared package capabilityE12xxx Security constraintsPRE_IR_CHECKS
E12020application registers services but program has no HTTP serverE12xxx Security constraintsPRE_IR_CHECKS
E12021program creates HTTP but application has no service registrationsE12xxx Security constraintsPRE_IR_CHECKS
E12022program creates HTTP without 'with application of' linkageE12xxx Security constraintsPRE_IR_CHECKS
E12023program creates more than one HTTP instanceE12xxx Security constraintsPRE_IR_CHECKS
E12050service requires 'open' or 'constrain by' security posture declarationE12xxx Security constraintsSYMBOL_DEFINITION
E12060constraint reference could not be resolved to a typeE12xxx Security constraintsPRE_IR_CHECKS
E12062constraint reference must extend SecurityGate or CORSPolicyE12xxx Security constraintsPRE_IR_CHECKS
E12064both constraint references extend the same base typeE12xxx Security constraintsPRE_IR_CHECKS
E50001not resolvedE50xxx Common errorsFULL_RESOLUTION
E50010type not resolvedE50xxx Common errorsEXPLICIT_TYPE_SYMBOL_DEFINITION
E50020incompatible genusE50xxx Common errorsEXPLICIT_TYPE_SYMBOL_DEFINITION
E50030types are not compatible with each otherE50xxx Common errorsFULL_RESOLUTION
E50040cannot be abstractE50xxx Common errorsSYMBOL_DEFINITION
E50050Variable/Constant duplicatedE50xxx Common errorsSYMBOL_DEFINITION
E50060method/function not resolvedE50xxx Common errorsFULL_RESOLUTION
E50070cannot use an abstract function in this mannerE50xxx Common errorsFULL_RESOLUTION
E50080cannot make a call on an abstract function/type directlyE50xxx Common errorsFULL_RESOLUTION
E50090incompatible genus in parameter(s)E50xxx Common errorsFULL_RESOLUTION
E50100incompatible categoryE50xxx Common errorsEXPLICIT_TYPE_SYMBOL_DEFINITION
E81001missing expected output file for test caseE81xxx-E83xxx Test configuration, execution and coverage
E81002orphan expected output file (no matching commandline args)E81xxx-E83xxx Test configuration, execution and coverage
E81003argument count mismatch between program and fileE81xxx-E83xxx Test configuration, execution and coverage
E81004arguments provided for no-parameter programE81xxx-E83xxx Test configuration, execution and coverage
E81005program requires arguments but no commandline files foundE81xxx-E83xxx Test configuration, execution and coverage
E81006cannot convert argument to required parameter typeE81xxx-E83xxx Test configuration, execution and coverage
E81007@Test program has no assertions and no expected output filesE81xxx-E83xxx Test configuration, execution and coverage
E81008duplicate test case IDs in same directoryE81xxx-E83xxx Test configuration, execution and coverage
E81009invalid file name pattern (typo detected)E81xxx-E83xxx Test configuration, execution and coverage
E81010invalid placeholder syntax in expected outputE81xxx-E83xxx Test configuration, execution and coverage
E81011assertion is not reachable from any @Test programE81xxx-E83xxx Test configuration, execution and coveragePRE_IR_CHECKS
E81012assertion is reachable from non-test programE81xxx-E83xxx Test configuration, execution and coveragePRE_IR_CHECKS
E81013malformed line in envvars file (no '=' separator)E81xxx-E83xxx Test configuration, execution and coverage
E81014orphan envvars file (no matching commandline args)E81xxx-E83xxx Test configuration, execution and coverage
E81015test construct only allowed in dev source filesE81xxx-E83xxx Test configuration, execution and coverageFULL_RESOLUTION
E81016orphan stdin file (no matching commandline args)E81xxx-E83xxx Test configuration, execution and coverage
E81056a closeable value held in a named local must be a try-with-resources resourceE81xxx-E83xxx Test configuration, execution and coveragePRE_IR_CHECKS
E81057a callable whose return type is closeable must return a NEW instance; to lend a held resource, return a non-closeable view type (e.g. StringInput)E81xxx-E83xxx Test configuration, execution and coveragePRE_IR_CHECKS
E81059a closeable value may only be stored where the declared type is closeableE81xxx-E83xxx Test configuration, execution and coveragePRE_IR_CHECKS
E81060the close operator is never called as a method, 'super.close()' included - make the value a try-with-resources resource; a type's own properties and its super class are closed by its generated closeE81xxx-E83xxx Test configuration, execution and coverageFULL_RESOLUTION
E81061a closeable type is never a type argument - hold it as a property of a type you own (closed in its 'operator close'), acquire it in a try, or lend it as a parameterE81xxx-E83xxx Test configuration, execution and coverageEXPLICIT_TYPE_SYMBOL_DEFINITION
E81062a closeable value enters a property or a try resource only when it is NEW (a constructor call, or a call that returns a new closeable) - anything else already has an owner that closes itE81xxx-E83xxx Test configuration, execution and coveragePRE_IR_CHECKS
E81063a closeable slot is assigned once - a property in its own constructor or initialiser, a returning variable once on each path (declared unset), a try resource only by its try; re-pointing it drops the resource it heldE81xxx-E83xxx Test configuration, execution and coveragePRE_IR_CHECKS
E81064closeable properties are closed in reverse declaration order, so a constructor must acquire them in declaration orderE81xxx-E83xxx Test configuration, execution and coveragePRE_IR_CHECKS
E81065'default operator :=:' cannot copy a closeable property - the copy would share the resource and both objects would close itE81xxx-E83xxx Test configuration, execution and coveragePRE_IR_CHECKS
E81066a trait's 'operator close' is abstract (no body) - a trait holds no properties, so it has nothing to close; the class that holds the resource closes it in its own 'operator close'E81xxx-E83xxx Test configuration, execution and coverageEXPLICIT_TYPE_SYMBOL_DEFINITION
E81067if you hold it, you close it - a type with a closeable property must declare its own 'operator close' ('default operator close' or one you write); an inherited close cannot see this type's propertyE81xxx-E83xxx Test configuration, execution and coveragePRE_IR_CHECKS
E81068the 'operator close' of an open or abstract type can never call a method a subtype may override, nor hand out 'this' - a subtype's own properties are closed before this body runsE81xxx-E83xxx Test configuration, execution and coveragePRE_IR_CHECKS
E81069a dynamic function has no 'operator close', so it can never close a NEW closeable it captures - capture one the enclosing scope owns (a try resource), or capture it in a dynamic class that closes itE81xxx-E83xxx Test configuration, execution and coveragePRE_IR_CHECKS
E81070'default operator close' with nothing to close - no closeable property and no super class close - would only make the type closeable, forcing every caller into a 'try'; remove itE81xxx-E83xxx Test configuration, execution and coveragePRE_IR_CHECKS
E81071a closeable made but never named in the arguments of 'super(...)' or 'this(...)' can never be closed - nothing can surround a construction call; make the value in a function and pass the result ('super(freshDescription())'), or take the closeable as a constructor parameterE81xxx-E83xxx Test configuration, execution and coveragePRE_IR_CHECKS
E81072a closeable made but never named is kept by what it is given to, so the statement cannot close it and nothing else would - if the callee only uses it, name it as a try resource ('try -> res <- Res()') and pass 'res'; if it keeps it, keep it inside the try, pass a value taken from it, or make the holder a closeable that owns itE81xxx-E83xxx Test configuration, execution and coveragePRE_IR_CHECKS
E81073a stream's element type is never closeable - the stages would make resources nothing can close; name each one as a try resource in a 'for' loop ('try -> res <- makeRes(label)') and use it thereE81xxx-E83xxx Test configuration, execution and coverageFULL_RESOLUTION
E81074an Exception is a value carried to a handler, not a resource - it has no 'operator close', declared, defaulted or inherited; put the resource in a type of its own and close it thereE81xxx-E83xxx Test configuration, execution and coveragePRE_IR_CHECKS
E81075a try resource is closed when its try ends, so it must not be given to a call that keeps it - keep the resource inside the try, pass a value taken from it, or make the holder a closeable that owns itE81xxx-E83xxx Test configuration, execution and coveragePRE_IR_CHECKS
E82001test execution timeoutE81xxx-E83xxx Test configuration, execution and coverage
E83001code coverage below thresholdE81xxx-E83xxx Test configuration, execution and coverage
E50200invalid directiveCompiler development: the directive codes (E50200-E50390)
E50210but the directive is missingCompiler development: the directive codes (E50200-E50390)
E50220directive error classification incorrectCompiler development: the directive codes (E50200-E50390)
E50230but the error is missingCompiler development: the directive codes (E50200-E50390)
E50240complexity mismatchCompiler development: the directive codes (E50200-E50390)
E50250symbol not resolvedCompiler development: the directive codes (E50200-E50390)
E50260symbol hierarchy not in placeCompiler development: the directive codes (E50200-E50390)
E50270symbol category mismatchedCompiler development: the directive codes (E50200-E50390)
E50280symbol genus mismatchedCompiler development: the directive codes (E50200-E50390)
E50290genus does not existCompiler development: the directive codes (E50200-E50390)
E50300unexpected symbol resolvedCompiler development: the directive codes (E50200-E50390)
E50310count does not matchCompiler development: the directive codes (E50200-E50390)
E50320probe output mismatchCompiler development: the directive codes (E50200-E50390)
E50330expected squirrelled data key not set on symbolCompiler development: the directive codes (E50200-E50390)
E50340unknown squirrelled data key (must be a CommonValues enum entry)Compiler development: the directive codes (E50200-E50390)
E50350input-variety mismatchCompiler development: the directive codes (E50200-E50390)
E50360obligations mismatchCompiler development: the directive codes (E50200-E50390)
E50370verification mismatchCompiler development: the directive codes (E50200-E50390)
E50380counterexample mismatchCompiler development: the directive codes (E50200-E50390)
E50390data-touch verdict mismatchCompiler development: the directive codes (E50200-E50390)