pub enum ElabError {
Show 25 variants
UnknownTypeConstructor {
name: String,
},
MissingTypeArgs {
name: String,
},
TypeArgCountMismatch {
name: String,
expected: usize,
actual: usize,
},
DuplicateStructDecl {
name: String,
},
DuplicateStructTypeParam {
name: String,
param: String,
},
DuplicateStructField {
name: String,
field: String,
},
UnknownIdentifier {
name: String,
},
UnknownFunction {
name: String,
},
InvalidCallTarget,
ArityMismatch {
function: String,
expected: usize,
actual: usize,
},
MissingStructField {
name: String,
field: String,
},
DuplicateStructLiteralField {
name: String,
field: String,
},
UnknownStructField {
name: String,
field: String,
},
StructTypeArgsNotInferred {
name: String,
},
TypeMismatch {
expected: Ty,
actual: Ty,
},
FieldAccessNotStruct {
actual: Ty,
},
UnsupportedTypeExpr,
UnsupportedMetaParamType {
name: String,
param: String,
},
UnsupportedMetaArg {
name: String,
param: String,
},
InvalidVariadicParam {
name: String,
},
MultipleVariadicParams {
name: String,
},
InvalidCallSpreadOperand,
CallSpreadRequiresTuple {
actual: Ty,
},
ConflictingSpecialization {
name: String,
},
MetaEval(MetaEvalError),
}Expand description
Elaboration error produced while concretizing type syntax.
Variants§
UnknownTypeConstructor
Type constructor name could not be resolved.
MissingTypeArgs
Generic type constructor was used without type arguments.
TypeArgCountMismatch
Generic type constructor was used with wrong type-argument count.
Fields
DuplicateStructDecl
Struct declaration duplicated an existing type name.
DuplicateStructTypeParam
Struct declaration repeated a type parameter.
DuplicateStructField
Struct declaration repeated a field name.
UnknownIdentifier
Referenced identifier was not found in scope.
UnknownFunction
Called function name could not be resolved.
InvalidCallTarget
Call target expression was not a function identifier.
ArityMismatch
Function call supplied wrong number of arguments.
Fields
MissingStructField
Struct literal omitted a required field.
DuplicateStructLiteralField
Struct literal repeated a field name.
UnknownStructField
Struct literal referenced an unknown field.
StructTypeArgsNotInferred
Generic struct arguments could not be inferred.
TypeMismatch
Inferred and expected types were incompatible.
FieldAccessNotStruct
Field access base expression was not a struct.
UnsupportedTypeExpr
Type syntax is unsupported in runtime signatures.
UnsupportedMetaParamType
Runtime template meta parameter used unsupported type.
UnsupportedMetaArg
Runtime template meta argument was not a compile-time string literal.
InvalidVariadicParam
Variadic runtime template parameter used an invalid form.
MultipleVariadicParams
Runtime template declared more than one variadic parameter.
InvalidCallSpreadOperand
Call spread operand was not a tuple binding identifier.
CallSpreadRequiresTuple
Call spread operand was not a tuple value.
ConflictingSpecialization
Runtime template specialization inputs were contradictory.
MetaEval(MetaEvalError)
Meta evaluation failed while elaborating generated code.
Trait Implementations§
Source§impl Error for ElabError
impl Error for ElabError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
Source§impl From<MetaEvalError> for ElabError
impl From<MetaEvalError> for ElabError
Source§fn from(source: MetaEvalError) -> Self
fn from(source: MetaEvalError) -> Self
impl Eq for ElabError
impl StructuralPartialEq for ElabError
Auto Trait Implementations§
impl Freeze for ElabError
impl RefUnwindSafe for ElabError
impl Send for ElabError
impl Sync for ElabError
impl Unpin for ElabError
impl UnwindSafe for ElabError
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.