pub enum VariableModel {
Constant,
VariableSlot,
VariableReference,
}Variants§
Constant
A variable that is declared once and never reassigned afterward
e.g. const a = 42;
VariableSlot
A variable that can be reassigned by updating the slot value
e.g. var a = 42; a = 69;
VariableReference
A variable that can be reassigned by updating a reference value. The slot always point to this reference.
When variables are transferred across realms, VariableReference is used for var variables instead of VariableSlot.
e.g. `var a = 42; x :: (a)
Implementations§
Source§impl VariableModel
impl VariableModel
Sourcepub fn infer(
variable_kind: VariableKind,
variable_metadata: Option<VariableMetadata>,
execution_mode: ExecutionMode,
) -> Self
pub fn infer( variable_kind: VariableKind, variable_metadata: Option<VariableMetadata>, execution_mode: ExecutionMode, ) -> Self
Determines the variable model based on the variable kind and metadata.
pub fn infer_from_ast_metadata_and_type( ast_metadata: &AstMetadata, variable_id: Option<VariableId>, variable_kind: VariableKind, execution_mode: ExecutionMode, ) -> Self
Trait Implementations§
Source§impl Clone for VariableModel
impl Clone for VariableModel
Source§fn clone(&self) -> VariableModel
fn clone(&self) -> VariableModel
Returns a duplicate 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 VariableModel
impl Debug for VariableModel
Source§impl From<VariableRepresentation> for VariableModel
impl From<VariableRepresentation> for VariableModel
Source§fn from(value: VariableRepresentation) -> Self
fn from(value: VariableRepresentation) -> Self
Converts to this type from the input type.
Source§impl PartialEq for VariableModel
impl PartialEq for VariableModel
impl Copy for VariableModel
impl Eq for VariableModel
impl StructuralPartialEq for VariableModel
Auto Trait Implementations§
impl Freeze for VariableModel
impl RefUnwindSafe for VariableModel
impl Send for VariableModel
impl Sync for VariableModel
impl Unpin for VariableModel
impl UnwindSafe for VariableModel
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more