Skip to main content

HirFile

Struct HirFile 

Source
#[non_exhaustive]
pub struct HirFile { pub items: Vec<HirItem>, pub scope_graph: ScopeGraph, pub stash_graph: StashGraph, pub compile_environment: CompileEnvironment, }
Expand description

HIR for one parsed file.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§items: Vec<HirItem>

Items lowered in stable depth-first source order.

§scope_graph: ScopeGraph

Scope and binding graph lowered beside HIR items.

§stash_graph: StashGraph

Package stash graph lowered beside HIR items.

§compile_environment: CompileEnvironment

Compile-environment facts lowered beside HIR items.

Implementations§

Source§

impl HirFile

Source

pub fn is_empty(&self) -> bool

Return true when no HIR items were lowered.

Source

pub fn compile_effects(&self) -> Vec<CompileEffect>

Project compile-time effects using the default model metadata.

This is a compiler-substrate proof surface only. It links existing HIR facts to the state mutations that produced them without changing LSP provider behavior.

Source

pub fn compile_effects_with_source_hash( &self, source_hash: Option<String>, ) -> Vec<CompileEffect>

Project compile-time effects and attach a caller-supplied source hash.

Parser-core does not own a source database, so persisted workspace callers can pass the source hash they use for freshness. Fixture-only callers may use HirFile::compile_effects.

Source

pub fn framework_facts(&self) -> FrameworkFactGraph

Project framework-adapter facts using the default registry.

This is a compiler-substrate proof surface only. It does not change LSP provider behavior.

Trait Implementations§

Source§

impl Clone for HirFile

Source§

fn clone(&self) -> HirFile

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for HirFile

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for HirFile

Source§

fn default() -> HirFile

Returns the “default value” for a type. Read more
Source§

impl PartialEq for HirFile

Source§

fn eq(&self, other: &HirFile) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for HirFile

Source§

impl StructuralPartialEq for HirFile

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more