#[non_exhaustive]pub enum AnalysisError {
UnknownVariableOrFunction,
BreakOutOfLoop,
ContinueOutOfLoop,
VariableNameUnavailable,
IncludeOnlyInMainBlock,
FunctionOnlyInMainBlock,
GlobalOnlyInMainBlock,
DuplicateClassName,
DuplicateFunctionName,
OptionalParamsOnlyInStandardFunctionsOrMethods,
WrongArity,
TypeMismatch,
}Expand description
Error codes for semantic validation (mirroring leekscript-java Error enum).
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
UnknownVariableOrFunction
Unknown variable or function name (Java: UNKNOWN_VARIABLE_OR_FUNCTION, 33).
BreakOutOfLoop
Break outside of loop (Java: BREAK_OUT_OF_LOOP, 12).
ContinueOutOfLoop
Continue outside of loop (Java: CONTINUE_OUT_OF_LOOP, 13).
Variable/name already declared in this scope (Java: VARIABLE_NAME_UNAVAILABLE, 21).
IncludeOnlyInMainBlock
Include only allowed in main block (Java: INCLUDE_ONLY_IN_MAIN_BLOCK, 14).
FunctionOnlyInMainBlock
Function only in main block (Java: FUNCTION_ONLY_IN_MAIN_BLOCK, 19).
GlobalOnlyInMainBlock
Global only in main block (Java: GLOBAL_ONLY_IN_MAIN_BLOCK, 27).
DuplicateClassName
Duplicate class name in main scope (Java: duplicate class).
DuplicateFunctionName
Duplicate function name in main scope (Java: duplicate function).
OptionalParamsOnlyInStandardFunctionsOrMethods
Optional/default parameters only allowed in standard functions or methods, not in user-defined top-level functions.
WrongArity
Function call argument count does not match declaration (arity).
TypeMismatch
Type mismatch (e.g. assignment or argument).
Implementations§
Source§impl AnalysisError
impl AnalysisError
Sourcepub fn at(self, span: Span) -> SemanticDiagnostic
pub fn at(self, span: Span) -> SemanticDiagnostic
Build a semantic diagnostic for this error at the given span.
Build a semantic diagnostic with related locations (e.g. “first declared here”).
Trait Implementations§
Source§impl Clone for AnalysisError
impl Clone for AnalysisError
Source§fn clone(&self) -> AnalysisError
fn clone(&self) -> AnalysisError
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more