Enum sway_error::error::CompileError
source · pub enum CompileError {
Show 167 variants
UnknownVariable {
var_name: Ident,
},
UnknownVariablePath {
var_name: Ident,
span: Span,
},
UnknownFunction {
name: Ident,
span: Span,
},
NotAVariable {
name: Ident,
what_it_is: &'static str,
},
NotAFunction {
name: String,
span: Span,
what_it_is: &'static str,
},
Unimplemented(&'static str, Span),
UnimplementedWithHelp(&'static str, &'static str, Span),
TypeError(TypeError),
ParseError {
span: Span,
err: String,
},
Internal(&'static str, Span),
InternalOwned(String, Span),
InvalidByteLiteralLength {
byte_length: usize,
span: Span,
},
ExpectedExprAfterOp {
op: String,
span: Span,
},
ExpectedOp {
op: String,
span: Span,
},
MultipleContracts(Span),
MultipleScripts(Span),
MultiplePredicates(Span),
NoPredicateMainFunction(Span),
PredicateMainDoesNotReturnBool(Span),
NoScriptMainFunction(Span),
MultipleDefinitionsOfFunction {
name: Ident,
},
ReassignmentToNonVariable {
name: Ident,
kind: &'static str,
span: Span,
},
AssignmentToNonMutable {
name: Ident,
},
MethodRequiresMutableSelf {
method_name: Ident,
variable_name: Ident,
span: Span,
},
MutableParameterNotSupported {
param_name: Ident,
},
ImmutableArgumentToMutableParameter {
span: Span,
},
RefMutableNotAllowedInContractAbi {
param_name: Ident,
},
AssociatedFunctionCalledAsMethod {
fn_name: Ident,
span: Span,
},
TypeParameterNotInTypeScope {
name: Ident,
span: Span,
comma_separated_generic_params: String,
fn_name: Ident,
args: String,
},
MultipleImmediates(Span),
MismatchedTypeInInterfaceSurface {
interface_name: InterfaceName,
span: Span,
given: String,
expected: String,
},
NotATrait {
span: Span,
name: Ident,
},
UnknownTrait {
span: Span,
name: Ident,
},
FunctionNotAPartOfInterfaceSurface {
name: Ident,
interface_name: InterfaceName,
span: Span,
},
MissingInterfaceSurfaceMethods {
missing_functions: String,
span: Span,
},
IncorrectNumberOfTypeArguments {
given: usize,
expected: usize,
span: Span,
},
DoesNotTakeTypeArguments {
name: Ident,
span: Span,
},
TypeArgumentsNotAllowed {
span: Span,
},
NeedsTypeArguments {
name: Ident,
span: Span,
},
StructNotFound {
name: Ident,
span: Span,
},
EnumNotFound {
name: Ident,
span: Span,
},
DeclaredNonStructAsStruct {
name: Ident,
span: Span,
},
AccessedFieldOfNonStruct {
field_name: Ident,
name: Ident,
span: Span,
},
MethodOnNonValue {
name: Ident,
thing: 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,
},
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,
},
FieldNotFound {
field_name: Ident,
available_fields: String,
struct_name: Ident,
},
SymbolNotFound {
name: Ident,
},
ImportPrivateSymbol {
name: Ident,
},
NoElseBranch {
span: Span,
type: String,
},
UnqualifiedSelfType {
span: Span,
},
NotAType {
span: Span,
name: String,
actually_is: &'static str,
},
MissingEnumInstantiator {
span: Span,
},
PathDoesNotReturn {
span: Span,
ty: String,
function_name: Ident,
},
ExpectedImplicitReturnFromBlockWithType {
span: Span,
ty: String,
},
ExpectedImplicitReturnFromBlock {
span: Span,
},
UnknownRegister {
span: Span,
initialized_registers: String,
},
MissingImmediate {
span: Span,
},
InvalidImmediateValue {
span: Span,
},
InvalidAssemblyMismatchedReturn {
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,
},
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,
},
InvalidStrType {
raw: String,
span: Span,
},
UnknownType {
span: Span,
},
UnknownTypeName {
name: String,
span: Span,
},
TooManyInstructions {
span: Span,
},
FileNotFound {
span: Span,
file_path: String,
},
FileCouldNotBeRead {
span: Span,
file_path: String,
stringified_error: String,
},
ImportMustBeLibrary {
span: Span,
},
MoreThanOneEnumInstantiator {
span: Span,
ty: String,
},
UnnecessaryEnumInstantiator {
span: Span,
},
TraitNotFound {
name: String,
span: Span,
},
InvalidExpressionOnLhs {
span: Span,
},
TooManyArgumentsForFunction {
span: Span,
method_name: Ident,
expected: usize,
received: usize,
},
TooFewArgumentsForFunction {
span: Span,
method_name: Ident,
expected: usize,
received: usize,
},
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,
},
DuplicateMethodsDefinedForType {
func_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,
},
TypeWithUnknownSize {
span: Span,
},
InfiniteDependencies {
file_path: String,
span: Span,
},
GMFromExternalContract {
span: Span,
},
MintFromExternalContext {
span: Span,
},
BurnFromExternalContext {
span: Span,
},
ContractStorageFromExternalContext {
span: Span,
},
ArrayOutOfBounds {
index: u64,
count: u64,
span: Span,
},
TupleIndexOutOfBounds {
index: usize,
count: usize,
span: Span,
},
ShadowsOtherSymbol {
name: Ident,
},
GenericShadowsGeneric {
name: Ident,
},
MatchWrongType {
expected: String,
span: Span,
},
MatchExpressionNonExhaustive {
missing_patterns: String,
span: Span,
},
MatchStructPatternMissingFields {
missing_fields: Vec<String>,
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,
},
ParameterMutabilityMismatch {
span: Span,
},
RefMutParameterInContract {
span: Span,
},
IntegerTooLarge {
span: Span,
ty: String,
},
IntegerTooSmall {
span: Span,
ty: String,
},
IntegerContainsInvalidDigit {
span: Span,
ty: String,
},
AsteriskWithAlias {
span: Span,
},
AbiAsSupertrait {
span: Span,
},
SupertraitImplRequired {
supertrait_name: String,
trait_name: Ident,
span: Span,
},
IfLetNonEnum {
span: Span,
},
ContractCallParamRepeated {
param_name: String,
span: Span,
},
UnrecognizedContractParam {
param_name: String,
span: Span,
},
CallParamForNonContractCallMethod {
span: Span,
},
StorageFieldDoesNotExist {
name: Ident,
},
NoDeclaredStorage {
span: Span,
},
MultipleStorageDeclarations {
span: Span,
},
InvalidStorageOnlyTypeDecl {
ty: String,
span: Span,
},
InvalidVariableName {
name: Ident,
},
UnexpectedDeclaration {
decl_type: &'static str,
span: Span,
},
ContractAddressMustBeKnown {
span: Span,
},
ConvertParseTree {
error: ConvertParseTreeError,
},
Lex {
error: LexError,
},
Parse {
error: ParseError,
},
WhereClauseNotYetSupported {
span: Span,
},
NonConstantDeclValue {
span: Span,
},
StorageDeclarationInNonContract {
program_kind: String,
span: Span,
},
IntrinsicUnsupportedArgType {
name: String,
span: Span,
hint: Hint,
},
IntrinsicIncorrectNumArgs {
name: String,
expected: u64,
span: Span,
},
IntrinsicIncorrectNumTArgs {
name: String,
expected: u64,
span: Span,
},
BreakOutsideLoop {
span: Span,
},
ContinueOutsideLoop {
span: Span,
},
ConfigTimeConstantNotAConstDecl {
span: Span,
},
ConfigTimeConstantNotALiteral {
span: Span,
},
RefMutableNotAllowedInMain {
param_name: Ident,
},
PointerReturnNotAllowedInMain {
span: Span,
},
NestedSliceReturnNotAllowedInMain {
span: Span,
},
InitializedRegisterReassignment {
name: String,
span: Span,
},
DisallowedControlFlowInstruction {
name: String,
span: Span,
},
}Variants
UnknownVariable
Fields
var_name: IdentUnknownVariablePath
UnknownFunction
NotAVariable
NotAFunction
Unimplemented(&'static str, Span)
UnimplementedWithHelp(&'static str, &'static str, Span)
TypeError(TypeError)
ParseError
Internal(&'static str, Span)
InternalOwned(String, Span)
InvalidByteLiteralLength
ExpectedExprAfterOp
ExpectedOp
MultipleContracts(Span)
MultipleScripts(Span)
MultiplePredicates(Span)
NoPredicateMainFunction(Span)
PredicateMainDoesNotReturnBool(Span)
NoScriptMainFunction(Span)
MultipleDefinitionsOfFunction
Fields
name: IdentReassignmentToNonVariable
AssignmentToNonMutable
Fields
name: IdentMethodRequiresMutableSelf
MutableParameterNotSupported
Fields
param_name: IdentImmutableArgumentToMutableParameter
Fields
span: SpanRefMutableNotAllowedInContractAbi
Fields
param_name: IdentAssociatedFunctionCalledAsMethod
TypeParameterNotInTypeScope
MultipleImmediates(Span)
MismatchedTypeInInterfaceSurface
NotATrait
UnknownTrait
FunctionNotAPartOfInterfaceSurface
MissingInterfaceSurfaceMethods
IncorrectNumberOfTypeArguments
DoesNotTakeTypeArguments
TypeArgumentsNotAllowed
Fields
span: SpanNeedsTypeArguments
StructNotFound
EnumNotFound
DeclaredNonStructAsStruct
AccessedFieldOfNonStruct
MethodOnNonValue
StructMissingField
StructDoesNotHaveField
MethodNotFound
ModuleNotFound
FieldAccessOnNonStruct
NotATuple
NotAnEnum
NotAStruct
DeclIsNotAnEnum
DeclIsNotAStruct
DeclIsNotAFunction
DeclIsNotAVariable
DeclIsNotAnAbi
DeclIsNotATrait
DeclIsNotAnImplTrait
DeclIsNotATraitFn
DeclIsNotStorage
DeclIsNotAConstant
FieldNotFound
SymbolNotFound
Fields
name: IdentImportPrivateSymbol
Fields
name: IdentNoElseBranch
UnqualifiedSelfType
Fields
span: SpanNotAType
MissingEnumInstantiator
Fields
span: SpanPathDoesNotReturn
ExpectedImplicitReturnFromBlockWithType
ExpectedImplicitReturnFromBlock
Fields
span: SpanUnknownRegister
MissingImmediate
Fields
span: SpanInvalidImmediateValue
Fields
span: SpanInvalidAssemblyMismatchedReturn
Fields
span: SpanUnknownEnumVariant
UnrecognizedOp
UnableToInferGeneric
UnconstrainedGenericParameter
TraitConstraintNotSatisfied
Immediate06TooLarge
Immediate12TooLarge
Immediate18TooLarge
Immediate24TooLarge
IncorrectNumberOfAsmRegisters
UnnecessaryImmediate
Fields
span: SpanAmbiguousPath
Fields
span: SpanInvalidStrType
UnknownType
Fields
span: SpanUnknownTypeName
TooManyInstructions
Fields
span: SpanFileNotFound
FileCouldNotBeRead
ImportMustBeLibrary
Fields
span: SpanMoreThanOneEnumInstantiator
UnnecessaryEnumInstantiator
Fields
span: SpanTraitNotFound
InvalidExpressionOnLhs
Fields
span: SpanTooManyArgumentsForFunction
TooFewArgumentsForFunction
InvalidAbiType
Fields
span: SpanNotAnAbi
ImplAbiForNonContract
ConflictingImplsForTraitAndType
DuplicateMethodsDefinedForType
IncorrectNumberOfInterfaceSurfaceFunctionParameters
Fields
fn_name: Identinterface_name: InterfaceNamenum_parameters: usizeprovided_parameters: usizespan: SpanArgumentParameterTypeMismatch
RecursiveCall
RecursiveCallChain
RecursiveType
RecursiveTypeChain
TypeWithUnknownSize
Fields
span: SpanInfiniteDependencies
GMFromExternalContract
Fields
span: SpanMintFromExternalContext
Fields
span: SpanBurnFromExternalContext
Fields
span: SpanContractStorageFromExternalContext
Fields
span: SpanArrayOutOfBounds
TupleIndexOutOfBounds
ShadowsOtherSymbol
Fields
name: IdentGenericShadowsGeneric
Fields
name: IdentMatchWrongType
MatchExpressionNonExhaustive
MatchStructPatternMissingFields
StorageAccessMismatch
TraitDeclPureImplImpure
TraitImplPurityMismatch
ImpureInNonContract
Fields
span: SpanImpureInPureContext
ParameterMutabilityMismatch
Fields
span: SpanRefMutParameterInContract
Fields
span: SpanIntegerTooLarge
IntegerTooSmall
IntegerContainsInvalidDigit
AsteriskWithAlias
Fields
span: SpanAbiAsSupertrait
Fields
span: SpanSupertraitImplRequired
IfLetNonEnum
Fields
span: SpanContractCallParamRepeated
UnrecognizedContractParam
CallParamForNonContractCallMethod
Fields
span: SpanStorageFieldDoesNotExist
Fields
name: IdentNoDeclaredStorage
Fields
span: SpanMultipleStorageDeclarations
Fields
span: SpanInvalidStorageOnlyTypeDecl
InvalidVariableName
Fields
name: IdentUnexpectedDeclaration
ContractAddressMustBeKnown
Fields
span: SpanConvertParseTree
Fields
error: ConvertParseTreeErrorLex
Fields
error: LexErrorParse
Fields
error: ParseErrorWhereClauseNotYetSupported
Fields
span: SpanNonConstantDeclValue
Fields
span: SpanStorageDeclarationInNonContract
IntrinsicUnsupportedArgType
IntrinsicIncorrectNumArgs
IntrinsicIncorrectNumTArgs
BreakOutsideLoop
Fields
span: SpanContinueOutsideLoop
Fields
span: SpanConfigTimeConstantNotAConstDecl
Fields
span: SpanConfigTimeConstantNotALiteral
Fields
span: SpanRefMutableNotAllowedInMain
Fields
param_name: IdentPointerReturnNotAllowedInMain
Fields
span: SpanNestedSliceReturnNotAllowedInMain
Fields
span: SpanInitializedRegisterReassignment
DisallowedControlFlowInstruction
Implementations
Trait Implementations
sourceimpl Clone for CompileError
impl Clone for CompileError
sourcefn clone(&self) -> CompileError
fn clone(&self) -> CompileError
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moresourceimpl Debug for CompileError
impl Debug for CompileError
sourceimpl Display for CompileError
impl Display for CompileError
sourceimpl Error for CompileError
impl Error for CompileError
sourcefn 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 · sourcefn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()
sourceimpl From<ConvertParseTreeError> for CompileError
impl From<ConvertParseTreeError> for CompileError
sourcefn from(source: ConvertParseTreeError) -> Self
fn from(source: ConvertParseTreeError) -> Self
Converts to this type from the input type.
sourceimpl From<TypeError> for CompileError
impl From<TypeError> for CompileError
sourcefn from(other: TypeError) -> CompileError
fn from(other: TypeError) -> CompileError
Converts to this type from the input type.
sourceimpl Hash for CompileError
impl Hash for CompileError
sourceimpl PartialEq<CompileError> for CompileError
impl PartialEq<CompileError> for CompileError
sourcefn eq(&self, other: &CompileError) -> bool
fn eq(&self, other: &CompileError) -> bool
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
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more