#[non_exhaustive]pub enum CompilerStage {
Parsing,
Lowering,
Analysis,
}Expand description
Compiler stage.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Parsing
Source code parsing.
Includes lexing, parsing to ASTs, import resolution which recursively parses imported files.
Lowering
ASTs lowering to HIR.
Includes lowering all ASTs to a single HIR, inheritance resolution, name resolution, basic type checking.
Analysis
Analysis.
Includes type checking, computing ABI, static analysis.
Implementations§
Source§impl CompilerStage
impl CompilerStage
Sourcepub const fn is_parsing(&self) -> bool
pub const fn is_parsing(&self) -> bool
Returns true if the enum is CompilerStage::Parsing otherwise false
Sourcepub const fn is_lowering(&self) -> bool
pub const fn is_lowering(&self) -> bool
Returns true if the enum is CompilerStage::Lowering otherwise false
Sourcepub const fn is_analysis(&self) -> bool
pub const fn is_analysis(&self) -> bool
Returns true if the enum is CompilerStage::Analysis otherwise false
Source§impl CompilerStage
impl CompilerStage
Source§impl CompilerStage
impl CompilerStage
Source§impl CompilerStage
impl CompilerStage
Sourcepub fn next(self) -> Option<CompilerStage>
pub fn next(self) -> Option<CompilerStage>
Returns the next stage, or None if this is the last stage.
Sourcepub fn next_opt(this: Option<CompilerStage>) -> Option<CompilerStage>
pub fn next_opt(this: Option<CompilerStage>) -> Option<CompilerStage>
Returns the next stage, None if this is the last stage or the first stage if None is
passed.
Trait Implementations§
Source§impl Clone for CompilerStage
impl Clone for CompilerStage
Source§fn clone(&self) -> CompilerStage
fn clone(&self) -> CompilerStage
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 CompilerStage
impl Debug for CompilerStage
Source§impl Display for CompilerStage
impl Display for CompilerStage
Source§impl<'_derivative_strum> From<&'_derivative_strum CompilerStage> for &'static str
impl<'_derivative_strum> From<&'_derivative_strum CompilerStage> for &'static str
Source§fn from(x: &'_derivative_strum CompilerStage) -> &'static str
fn from(x: &'_derivative_strum CompilerStage) -> &'static str
Converts to this type from the input type.
Source§impl From<CompilerStage> for &'static str
impl From<CompilerStage> for &'static str
Source§fn from(x: CompilerStage) -> &'static str
fn from(x: CompilerStage) -> &'static str
Converts to this type from the input type.
Source§impl FromStr for CompilerStage
impl FromStr for CompilerStage
Source§type Err = ParseError
type Err = ParseError
The associated error which can be returned from parsing.
Source§fn from_str(s: &str) -> Result<CompilerStage, <CompilerStage as FromStr>::Err>
fn from_str(s: &str) -> Result<CompilerStage, <CompilerStage as FromStr>::Err>
Parses a string
s to return a value of this type. Read moreSource§impl Hash for CompilerStage
impl Hash for CompilerStage
Source§impl IntoEnumIterator for CompilerStage
impl IntoEnumIterator for CompilerStage
type Iterator = CompilerStageIter
fn iter() -> CompilerStageIter ⓘ
Source§impl Ord for CompilerStage
impl Ord for CompilerStage
Source§fn cmp(&self, other: &CompilerStage) -> Ordering
fn cmp(&self, other: &CompilerStage) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialEq for CompilerStage
impl PartialEq for CompilerStage
Source§impl PartialOrd for CompilerStage
impl PartialOrd for CompilerStage
Source§impl TryFrom<&str> for CompilerStage
impl TryFrom<&str> for CompilerStage
Source§type Error = ParseError
type Error = ParseError
The type returned in the event of a conversion error.
Source§fn try_from(
s: &str,
) -> Result<CompilerStage, <CompilerStage as TryFrom<&str>>::Error>
fn try_from( s: &str, ) -> Result<CompilerStage, <CompilerStage as TryFrom<&str>>::Error>
Performs the conversion.
Source§impl ValueEnum for CompilerStage
impl ValueEnum for CompilerStage
Source§fn value_variants<'a>() -> &'a [CompilerStage]
fn value_variants<'a>() -> &'a [CompilerStage]
All possible argument values, in display order.
Source§fn to_possible_value(&self) -> Option<PossibleValue>
fn to_possible_value(&self) -> Option<PossibleValue>
The canonical argument value. Read more
Source§impl VariantNames for CompilerStage
impl VariantNames for CompilerStage
impl Copy for CompilerStage
impl Eq for CompilerStage
impl StructuralPartialEq for CompilerStage
Auto Trait Implementations§
impl Freeze for CompilerStage
impl RefUnwindSafe for CompilerStage
impl Send for CompilerStage
impl Sync for CompilerStage
impl Unpin for CompilerStage
impl UnwindSafe for CompilerStage
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
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<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
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
fn equivalent(&self, key: &K) -> bool
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