pub struct FileShape {
pub file_path: Arc<str>,
pub type_defs: Box<[TypeDefSite]>,
pub inherent_impls: Box<[InherentImplSite]>,
pub cfg_gated_modules: Box<[CfgGatedModule]>,
}Expand description
The slice of a file’s IR that whole-crate checks need.
This is a projection, not a copy: only type definition sites, per-type
inherent-impl footprints, and #[cfg]-gated mod declarations survive, so
the project pass never holds a FileIr and never re-parses a file.
Fields§
§file_path: Arc<str>Path of the file this shape was projected from.
type_defs: Box<[TypeDefSite]>Every struct, enum, union, and trait defined in this file.
inherent_impls: Box<[InherentImplSite]>Per-type, per-predicate-set inherent-impl footprints.
cfg_gated_modules: Box<[CfgGatedModule]>mod declarations in this file carrying a #[cfg(…)].
Trait Implementations§
Auto Trait Implementations§
impl Freeze for FileShape
impl RefUnwindSafe for FileShape
impl Send for FileShape
impl Sync for FileShape
impl Unpin for FileShape
impl UnsafeUnpin for FileShape
impl UnwindSafe for FileShape
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<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