pub struct AirOutput {
pub ast: Ast,
pub interner: ThreadedRodeo,
pub rir: Rir,
pub functions: Vec<AnalyzedFunction>,
pub type_pool: TypeInternPool,
pub strings: Vec<String>,
pub warnings: Vec<CompileWarning>,
}Expand description
Output from semantic analysis (compile_to_air).
This struct provides access to the typed IR (AIR) for each function, useful for testing semantic analysis without generating machine code.
Fields§
§ast: AstThe abstract syntax tree.
interner: ThreadedRodeoString interner used during compilation.
rir: RirThe untyped IR (RIR).
functions: Vec<AnalyzedFunction>Analyzed functions with typed IR.
type_pool: TypeInternPoolType intern pool containing all struct and enum definitions.
strings: Vec<String>String literals.
warnings: Vec<CompileWarning>Warnings collected during analysis.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for AirOutput
impl !RefUnwindSafe for AirOutput
impl Send for AirOutput
impl Sync for AirOutput
impl Unpin for AirOutput
impl UnwindSafe for AirOutput
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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