Enum sway_core::language::ty::TyExpressionVariant
source · 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
§
contract_call_params: HashMap<String, TyExpression>
§
arguments: Vec<(Ident, TyExpression)>
§
function_decl_id: DeclarationId
§
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
StructFieldAccess
TupleElemAccess
Fields
§
prefix: Box<TyExpression>
EnumInstantiation
Fields
§
enum_decl: TyEnumDeclaration
for printing
§
contents: Option<Box<TyExpression>>
AbiCast
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§
source§impl Clone for TyExpressionVariant
impl Clone for TyExpressionVariant
source§fn clone(&self) -> TyExpressionVariant
fn clone(&self) -> TyExpressionVariant
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 more