pub enum TyExpressionVariant {
Show 27 variants
Literal(Literal),
FunctionApplication {
call_path: CallPath,
contract_call_params: HashMap<String, TyExpression>,
arguments: Vec<(Ident, TyExpression)>,
function_decl_id: DeclarationId,
self_state_idx: Option<StateIndex>,
selector: Option<ContractCallParams>,
},
LazyOperator {
op: LazyOp,
lhs: Box<TyExpression>,
rhs: Box<TyExpression>,
},
VariableExpression {
name: Ident,
span: Span,
mutability: VariableMutability,
},
Tuple {
fields: Vec<TyExpression>,
},
Array {
contents: Vec<TyExpression>,
},
ArrayIndex {
prefix: Box<TyExpression>,
index: Box<TyExpression>,
},
StructExpression {
struct_name: Ident,
fields: Vec<TyStructExpressionField>,
span: Span,
},
CodeBlock(TyCodeBlock),
FunctionParameter,
IfExp {
condition: Box<TyExpression>,
then: Box<TyExpression>,
else: Option<Box<TyExpression>>,
},
AsmExpression {
registers: Vec<TyAsmRegisterDeclaration>,
body: Vec<AsmOp>,
returns: Option<(AsmRegister, Span)>,
whole_block_span: Span,
},
StructFieldAccess {
prefix: Box<TyExpression>,
field_to_access: TyStructField,
field_instantiation_span: Span,
resolved_type_of_parent: TypeId,
},
TupleElemAccess {
prefix: Box<TyExpression>,
elem_to_access_num: usize,
resolved_type_of_parent: TypeId,
elem_to_access_span: Span,
},
EnumInstantiation {
enum_decl: TyEnumDeclaration,
variant_name: Ident,
tag: usize,
contents: Option<Box<TyExpression>>,
enum_instantiation_span: Span,
variant_instantiation_span: Span,
},
AbiCast {
abi_name: CallPath,
address: Box<TyExpression>,
span: Span,
},
StorageAccess(TyStorageAccess),
IntrinsicFunction(TyIntrinsicFunctionKind),
AbiName(AbiName),
EnumTag {
exp: Box<TyExpression>,
},
UnsafeDowncast {
exp: Box<TyExpression>,
variant: TyEnumVariant,
},
WhileLoop {
condition: Box<TyExpression>,
body: TyCodeBlock,
},
Break,
Continue,
Reassignment(Box<TyReassignment>),
StorageReassignment(Box<TyStorageReassignment>),
Return(Box<TyExpression>),
}Variants
Literal(Literal)
FunctionApplication
Fields
call_path: CallPathcontract_call_params: HashMap<String, TyExpression>arguments: Vec<(Ident, TyExpression)>self_state_idx: Option<StateIndex>If this is Some(val) then val is the metadata. If this is None, then
there is no selector.
selector: Option<ContractCallParams>LazyOperator
VariableExpression
Tuple
Fields
fields: Vec<TyExpression>Array
Fields
contents: Vec<TyExpression>ArrayIndex
StructExpression
CodeBlock(TyCodeBlock)
FunctionParameter
IfExp
AsmExpression
Fields
registers: Vec<TyAsmRegisterDeclaration>returns: Option<(AsmRegister, Span)>whole_block_span: SpanStructFieldAccess
Fields
prefix: Box<TyExpression>field_to_access: TyStructFieldfield_instantiation_span: Spanresolved_type_of_parent: TypeIdTupleElemAccess
Fields
prefix: Box<TyExpression>elem_to_access_num: usizeresolved_type_of_parent: TypeIdelem_to_access_span: SpanEnumInstantiation
Fields
enum_decl: TyEnumDeclarationfor printing
variant_name: Identfor printing
tag: usizecontents: Option<Box<TyExpression>>enum_instantiation_span: SpanIf there is an error regarding this instantiation of the enum, use these spans as it points to the call site and not the declaration. They are also used in the language server.
variant_instantiation_span: SpanAbiCast
StorageAccess(TyStorageAccess)
IntrinsicFunction(TyIntrinsicFunctionKind)
AbiName(AbiName)
a zero-sized type-system-only compile-time thing that is used for constructing ABI casts.
EnumTag
Fields
exp: Box<TyExpression>grabs the enum tag from the particular enum and variant of the exp
UnsafeDowncast
performs an unsafe cast from the exp to the type of the given enum variant
WhileLoop
Break
Continue
Reassignment(Box<TyReassignment>)
StorageReassignment(Box<TyStorageReassignment>)
Return(Box<TyExpression>)
Trait Implementations
sourceimpl Clone for TyExpressionVariant
impl Clone for TyExpressionVariant
sourcefn clone(&self) -> TyExpressionVariant
fn clone(&self) -> TyExpressionVariant
Returns a copy of the value. Read more
1.0.0 · sourceconst fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moresourceimpl Debug for TyExpressionVariant
impl Debug for TyExpressionVariant
sourceimpl Display for TyExpressionVariant
impl Display for TyExpressionVariant
sourceimpl PartialEq<TyExpressionVariant> for TyExpressionVariant
impl PartialEq<TyExpressionVariant> for TyExpressionVariant
impl Eq for TyExpressionVariant
Auto Trait Implementations
impl RefUnwindSafe for TyExpressionVariant
impl Send for TyExpressionVariant
impl Sync for TyExpressionVariant
impl Unpin for TyExpressionVariant
impl UnwindSafe for TyExpressionVariant
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
sourceimpl<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,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.