Enum sway_error::error::CompileError
source · pub enum CompileError {
Show 163 variants
UnknownVariable {
var_name: Ident,
span: Span,
},
NotAVariable {
name: Ident,
what_it_is: &'static str,
span: Span,
},
Unimplemented(&'static str, Span),
UnimplementedWithHelp(&'static str, &'static str, Span),
TypeError(TypeError),
ParseError {
span: Span,
err: String,
},
Internal(&'static str, Span),
InternalOwned(String, Span),
NoPredicateMainFunction(Span),
PredicateMainDoesNotReturnBool(Span),
NoScriptMainFunction(Span),
MultipleDefinitionsOfFunction {
name: Ident,
span: Span,
},
MultipleDefinitionsOfName {
name: Ident,
span: Span,
},
MultipleDefinitionsOfConstant {
name: Ident,
span: Span,
},
AssignmentToNonMutable {
name: Ident,
span: Span,
},
MethodRequiresMutableSelf {
method_name: Ident,
variable_name: Ident,
span: Span,
},
MutableParameterNotSupported {
param_name: Ident,
span: Span,
},
ImmutableArgumentToMutableParameter {
span: Span,
},
RefMutableNotAllowedInContractAbi {
param_name: Ident,
span: Span,
},
AssociatedFunctionCalledAsMethod {
fn_name: Ident,
span: Span,
},
TypeParameterNotInTypeScope {
name: Ident,
span: Span,
comma_separated_generic_params: String,
fn_name: Ident,
args: String,
},
MismatchedTypeInInterfaceSurface {
interface_name: InterfaceName,
span: Span,
decl_type: String,
given: String,
expected: String,
},
UnknownTrait {
span: Span,
name: Ident,
},
FunctionNotAPartOfInterfaceSurface {
name: Ident,
interface_name: InterfaceName,
span: Span,
},
ConstantNotAPartOfInterfaceSurface {
name: Ident,
interface_name: InterfaceName,
span: Span,
},
MissingInterfaceSurfaceConstants {
missing_constants: String,
span: Span,
},
MissingInterfaceSurfaceMethods {
missing_functions: String,
span: Span,
},
IncorrectNumberOfTypeArguments {
given: usize,
expected: usize,
span: Span,
},
DoesNotTakeTypeArguments {
name: Ident,
span: Span,
},
DoesNotTakeTypeArgumentsAsPrefix {
name: Ident,
span: Span,
},
TypeArgumentsNotAllowed {
span: Span,
},
NeedsTypeArguments {
name: Ident,
span: Span,
},
EnumNotFound {
name: Ident,
span: Span,
},
StructMissingField {
field_name: Ident,
struct_name: Ident,
span: Span,
},
StructDoesNotHaveField {
field_name: Ident,
struct_name: Ident,
span: Span,
},
MethodNotFound {
method_name: Ident,
type_name: String,
span: Span,
},
ModuleNotFound {
span: Span,
name: String,
},
FieldAccessOnNonStruct {
actually: String,
span: Span,
},
NotATuple {
name: String,
span: Span,
actually: String,
},
NotIndexable {
name: String,
span: Span,
actually: String,
},
NotAnEnum {
name: String,
span: Span,
actually: String,
},
NotAStruct {
span: Span,
actually: String,
},
DeclIsNotAnEnum {
actually: String,
span: Span,
},
DeclIsNotAStruct {
actually: String,
span: Span,
},
DeclIsNotAFunction {
actually: String,
span: Span,
},
DeclIsNotAVariable {
actually: String,
span: Span,
},
DeclIsNotAnAbi {
actually: String,
span: Span,
},
DeclIsNotATrait {
actually: String,
span: Span,
},
DeclIsNotAnImplTrait {
actually: String,
span: Span,
},
DeclIsNotATraitFn {
actually: String,
span: Span,
},
DeclIsNotStorage {
actually: String,
span: Span,
},
DeclIsNotAConstant {
actually: String,
span: Span,
},
DeclIsNotATypeAlias {
actually: String,
span: Span,
},
FieldNotFound {
field_name: Ident,
available_fields: String,
struct_name: Ident,
span: Span,
},
SymbolNotFound {
name: Ident,
span: Span,
},
ImportPrivateSymbol {
name: Ident,
span: Span,
},
ImportPrivateModule {
name: Ident,
span: Span,
},
NoElseBranch {
span: Span,
type: String,
},
NotAType {
span: Span,
name: String,
actually_is: &'static str,
},
MissingEnumInstantiator {
span: Span,
},
PathDoesNotReturn {
span: Span,
ty: String,
function_name: Ident,
},
ExpectedModuleDocComment {
span: Span,
},
UnknownRegister {
span: Span,
initialized_registers: String,
},
MissingImmediate {
span: Span,
},
InvalidImmediateValue {
span: Span,
},
UnknownEnumVariant {
enum_name: Ident,
variant_name: Ident,
span: Span,
},
UnrecognizedOp {
op_name: Ident,
span: Span,
},
UnableToInferGeneric {
ty: String,
span: Span,
},
UnconstrainedGenericParameter {
ty: String,
span: Span,
},
TraitConstraintNotSatisfied {
ty: String,
trait_name: String,
span: Span,
},
TraitConstraintMissing {
param: String,
trait_name: String,
span: Span,
},
Immediate06TooLarge {
val: u64,
span: Span,
},
Immediate12TooLarge {
val: u64,
span: Span,
},
Immediate18TooLarge {
val: u64,
span: Span,
},
Immediate24TooLarge {
val: u64,
span: Span,
},
IncorrectNumberOfAsmRegisters {
span: Span,
expected: usize,
received: usize,
},
UnnecessaryImmediate {
span: Span,
},
AmbiguousPath {
span: Span,
},
UnknownType {
span: Span,
},
UnknownTypeName {
name: String,
span: Span,
},
FileCouldNotBeRead {
span: Span,
file_path: String,
stringified_error: String,
},
ImportMustBeLibrary {
span: Span,
},
MoreThanOneEnumInstantiator {
span: Span,
ty: String,
},
UnnecessaryEnumInstantiator {
span: Span,
},
UnitVariantWithParenthesesEnumInstantiator {
span: Span,
ty: String,
},
TraitNotFound {
name: String,
span: Span,
},
InvalidExpressionOnLhs {
span: Span,
},
CannotBeEvaluatedToConst {
span: Span,
},
TooManyArgumentsForFunction {
span: Span,
method_name: Ident,
dot_syntax_used: bool,
expected: usize,
received: usize,
},
TooFewArgumentsForFunction {
span: Span,
method_name: Ident,
dot_syntax_used: bool,
expected: usize,
received: usize,
},
MissingParenthesesForFunction {
span: Span,
method_name: Ident,
},
InvalidAbiType {
span: Span,
},
NotAnAbi {
span: Span,
actually_is: &'static str,
},
ImplAbiForNonContract {
span: Span,
ty: String,
},
ConflictingImplsForTraitAndType {
trait_name: String,
type_implementing_for: String,
second_impl_span: Span,
},
DuplicateDeclDefinedForType {
decl_kind: String,
decl_name: String,
type_implementing_for: String,
span: Span,
},
IncorrectNumberOfInterfaceSurfaceFunctionParameters {
fn_name: Ident,
interface_name: InterfaceName,
num_parameters: usize,
provided_parameters: usize,
span: Span,
},
ArgumentParameterTypeMismatch {
span: Span,
should_be: String,
provided: String,
},
RecursiveCall {
fn_name: Ident,
span: Span,
},
RecursiveCallChain {
fn_name: Ident,
call_chain: String,
span: Span,
},
RecursiveType {
name: Ident,
span: Span,
},
RecursiveTypeChain {
name: Ident,
type_chain: String,
span: Span,
},
GMFromExternalContext {
span: Span,
},
MintFromExternalContext {
span: Span,
},
BurnFromExternalContext {
span: Span,
},
ContractStorageFromExternalContext {
span: Span,
},
InvalidOpcodeFromPredicate {
opcode: String,
span: Span,
},
ArrayOutOfBounds {
index: u64,
count: u64,
span: Span,
},
TupleIndexOutOfBounds {
index: usize,
count: usize,
span: Span,
},
ConstantsCannotBeShadowed {
variable_or_constant: String,
name: Ident,
constant_span: Span,
constant_decl: Span,
is_alias: bool,
},
ConstantShadowsVariable {
name: Ident,
variable_span: Span,
},
ShadowsOtherSymbol {
name: Ident,
},
GenericShadowsGeneric {
name: Ident,
},
MatchExpressionNonExhaustive {
missing_patterns: String,
span: Span,
},
MatchStructPatternMissingFields {
missing_fields: Vec<String>,
span: Span,
},
MatchVariableNotBoundInAllPatterns {
var: Ident,
span: Span,
},
StorageAccessMismatch {
attrs: String,
span: Span,
},
TraitDeclPureImplImpure {
fn_name: Ident,
interface_name: InterfaceName,
attrs: String,
span: Span,
},
TraitImplPurityMismatch {
fn_name: Ident,
interface_name: InterfaceName,
attrs: String,
span: Span,
},
ImpureInNonContract {
span: Span,
},
ImpureInPureContext {
storage_op: &'static str,
attrs: String,
span: Span,
},
ParameterRefMutabilityMismatch {
span: Span,
},
IntegerTooLarge {
span: Span,
ty: String,
},
IntegerTooSmall {
span: Span,
ty: String,
},
IntegerContainsInvalidDigit {
span: Span,
ty: String,
},
AbiAsSupertrait {
span: Span,
},
SupertraitImplRequired {
supertrait_name: String,
trait_name: Ident,
span: Span,
},
ContractCallParamRepeated {
param_name: String,
span: Span,
},
UnrecognizedContractParam {
param_name: String,
span: Span,
},
CallParamForNonContractCallMethod {
span: Span,
},
StorageFieldDoesNotExist {
name: Ident,
span: Span,
},
NoDeclaredStorage {
span: Span,
},
MultipleStorageDeclarations {
span: Span,
},
InvalidStorageOnlyTypeDecl {
ty: String,
span: Span,
},
UnexpectedDeclaration {
decl_type: &'static str,
span: Span,
},
ContractAddressMustBeKnown {
span: Span,
},
ConvertParseTree {
error: ConvertParseTreeError,
},
Lex {
error: LexError,
},
Parse {
error: ParseError,
},
NonConstantDeclValue {
span: Span,
},
StorageDeclarationInNonContract {
program_kind: String,
span: Span,
},
IntrinsicUnsupportedArgType {
name: String,
span: Span,
hint: String,
},
IntrinsicIncorrectNumArgs {
name: String,
expected: u64,
span: Span,
},
IntrinsicIncorrectNumTArgs {
name: String,
expected: u64,
span: Span,
},
BreakOutsideLoop {
span: Span,
},
ContinueOutsideLoop {
span: Span,
},
ContractIdConstantNotAConstDecl {
span: Span,
},
ContractIdValueNotALiteral {
span: Span,
},
TypeNotAllowedInContractStorage {
ty: String,
span: Span,
},
RefMutableNotAllowedInMain {
param_name: Ident,
span: Span,
},
NestedSliceReturnNotAllowedInMain {
span: Span,
},
InitializedRegisterReassignment {
name: String,
span: Span,
},
DisallowedControlFlowInstruction {
name: String,
span: Span,
},
CallingPrivateLibraryMethod {
name: String,
span: Span,
},
DisallowedIntrinsicInPredicate {
intrinsic: String,
span: Span,
},
CoinsPassedToNonPayableMethod {
fn_name: Ident,
span: Span,
},
TraitImplPayabilityMismatch {
fn_name: Ident,
interface_name: InterfaceName,
missing_impl_attribute: bool,
span: Span,
},
ConfigurableInLibrary {
span: Span,
},
MultipleApplicableItemsInScope {
span: Span,
type_name: String,
method_name: String,
as_traits: Vec<String>,
},
ContractCallsItsOwnMethod {
span: Span,
},
AbiShadowsSuperAbiMethod {
span: Span,
superabi: Ident,
},
ConflictingSuperAbiMethods {
span: Span,
method_name: String,
superabi1: String,
superabi2: String,
},
AbiSupertraitMethodCallAsContractCall {
fn_name: Ident,
span: Span,
},
}
Variants§
UnknownVariable
NotAVariable
Unimplemented(&'static str, Span)
UnimplementedWithHelp(&'static str, &'static str, Span)
TypeError(TypeError)
ParseError
Internal(&'static str, Span)
InternalOwned(String, Span)
NoPredicateMainFunction(Span)
PredicateMainDoesNotReturnBool(Span)
NoScriptMainFunction(Span)
MultipleDefinitionsOfFunction
MultipleDefinitionsOfName
MultipleDefinitionsOfConstant
AssignmentToNonMutable
MethodRequiresMutableSelf
MutableParameterNotSupported
ImmutableArgumentToMutableParameter
RefMutableNotAllowedInContractAbi
AssociatedFunctionCalledAsMethod
TypeParameterNotInTypeScope
MismatchedTypeInInterfaceSurface
UnknownTrait
FunctionNotAPartOfInterfaceSurface
ConstantNotAPartOfInterfaceSurface
MissingInterfaceSurfaceConstants
MissingInterfaceSurfaceMethods
IncorrectNumberOfTypeArguments
DoesNotTakeTypeArguments
DoesNotTakeTypeArgumentsAsPrefix
TypeArgumentsNotAllowed
NeedsTypeArguments
EnumNotFound
StructMissingField
StructDoesNotHaveField
MethodNotFound
ModuleNotFound
FieldAccessOnNonStruct
NotATuple
NotIndexable
NotAnEnum
NotAStruct
DeclIsNotAnEnum
DeclIsNotAStruct
DeclIsNotAFunction
DeclIsNotAVariable
DeclIsNotAnAbi
DeclIsNotATrait
DeclIsNotAnImplTrait
DeclIsNotATraitFn
DeclIsNotStorage
DeclIsNotAConstant
DeclIsNotATypeAlias
FieldNotFound
SymbolNotFound
ImportPrivateSymbol
ImportPrivateModule
NoElseBranch
NotAType
MissingEnumInstantiator
PathDoesNotReturn
ExpectedModuleDocComment
UnknownRegister
MissingImmediate
InvalidImmediateValue
UnknownEnumVariant
UnrecognizedOp
UnableToInferGeneric
UnconstrainedGenericParameter
TraitConstraintNotSatisfied
TraitConstraintMissing
Immediate06TooLarge
Immediate12TooLarge
Immediate18TooLarge
Immediate24TooLarge
IncorrectNumberOfAsmRegisters
UnnecessaryImmediate
AmbiguousPath
UnknownType
UnknownTypeName
FileCouldNotBeRead
ImportMustBeLibrary
MoreThanOneEnumInstantiator
UnnecessaryEnumInstantiator
UnitVariantWithParenthesesEnumInstantiator
TraitNotFound
InvalidExpressionOnLhs
CannotBeEvaluatedToConst
TooManyArgumentsForFunction
TooFewArgumentsForFunction
MissingParenthesesForFunction
InvalidAbiType
NotAnAbi
ImplAbiForNonContract
ConflictingImplsForTraitAndType
DuplicateDeclDefinedForType
IncorrectNumberOfInterfaceSurfaceFunctionParameters
Fields
§
interface_name: InterfaceName
ArgumentParameterTypeMismatch
RecursiveCall
RecursiveCallChain
RecursiveType
RecursiveTypeChain
GMFromExternalContext
MintFromExternalContext
BurnFromExternalContext
ContractStorageFromExternalContext
InvalidOpcodeFromPredicate
ArrayOutOfBounds
TupleIndexOutOfBounds
ConstantsCannotBeShadowed
Fields
ConstantShadowsVariable
ShadowsOtherSymbol
GenericShadowsGeneric
MatchExpressionNonExhaustive
MatchStructPatternMissingFields
MatchVariableNotBoundInAllPatterns
StorageAccessMismatch
TraitDeclPureImplImpure
TraitImplPurityMismatch
ImpureInNonContract
ImpureInPureContext
ParameterRefMutabilityMismatch
IntegerTooLarge
IntegerTooSmall
IntegerContainsInvalidDigit
AbiAsSupertrait
SupertraitImplRequired
ContractCallParamRepeated
UnrecognizedContractParam
CallParamForNonContractCallMethod
StorageFieldDoesNotExist
NoDeclaredStorage
MultipleStorageDeclarations
InvalidStorageOnlyTypeDecl
UnexpectedDeclaration
ContractAddressMustBeKnown
ConvertParseTree
Fields
§
error: ConvertParseTreeError
Lex
Parse
Fields
§
error: ParseError
NonConstantDeclValue
StorageDeclarationInNonContract
IntrinsicUnsupportedArgType
IntrinsicIncorrectNumArgs
IntrinsicIncorrectNumTArgs
BreakOutsideLoop
ContinueOutsideLoop
ContractIdConstantNotAConstDecl
This will be removed once loading contract IDs in a dependency namespace is refactored and no longer manual: https://github.com/FuelLabs/sway/issues/3077
ContractIdValueNotALiteral
This will be removed once loading contract IDs in a dependency namespace is refactored and no longer manual: https://github.com/FuelLabs/sway/issues/3077
TypeNotAllowedInContractStorage
RefMutableNotAllowedInMain
NestedSliceReturnNotAllowedInMain
InitializedRegisterReassignment
DisallowedControlFlowInstruction
CallingPrivateLibraryMethod
DisallowedIntrinsicInPredicate
CoinsPassedToNonPayableMethod
TraitImplPayabilityMismatch
ConfigurableInLibrary
MultipleApplicableItemsInScope
ContractCallsItsOwnMethod
AbiShadowsSuperAbiMethod
ConflictingSuperAbiMethods
AbiSupertraitMethodCallAsContractCall
Trait Implementations§
source§impl Clone for CompileError
impl Clone for CompileError
source§fn clone(&self) -> CompileError
fn clone(&self) -> CompileError
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for CompileError
impl Debug for CompileError
source§impl Display for CompileError
impl Display for CompileError
source§impl Error for CompileError
impl Error for CompileError
source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
The lower-level source of this error, if any. Read more
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()
source§impl From<ConvertParseTreeError> for CompileError
impl From<ConvertParseTreeError> for CompileError
source§fn from(source: ConvertParseTreeError) -> Self
fn from(source: ConvertParseTreeError) -> Self
Converts to this type from the input type.
source§impl From<TypeError> for CompileError
impl From<TypeError> for CompileError
source§fn from(other: TypeError) -> CompileError
fn from(other: TypeError) -> CompileError
Converts to this type from the input type.
source§impl Hash for CompileError
impl Hash for CompileError
source§impl PartialEq<CompileError> for CompileError
impl PartialEq<CompileError> for CompileError
source§fn eq(&self, other: &CompileError) -> bool
fn eq(&self, other: &CompileError) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl ToDiagnostic for CompileError
impl ToDiagnostic for CompileError
fn to_diagnostic(&self, source_engine: &SourceEngine) -> Diagnostic
impl Eq for CompileError
impl StructuralEq for CompileError
impl StructuralPartialEq for CompileError
Auto Trait Implementations§
impl RefUnwindSafe for CompileError
impl Send for CompileError
impl Sync for CompileError
impl Unpin for CompileError
impl UnwindSafe for CompileError
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more