struct RootCollector<'a, 'tcx> {
    tcx: TyCtxt<'tcx>,
    mode: MonoItemCollectionMode,
    output: &'a mut Vec<Spanned<MonoItem<'tcx>>>,
    entry_fn: Option<(DefId, EntryFnType)>,
}

Fields§

§tcx: TyCtxt<'tcx>§mode: MonoItemCollectionMode§output: &'a mut Vec<Spanned<MonoItem<'tcx>>>§entry_fn: Option<(DefId, EntryFnType)>

Implementations§

source§

impl<'v> RootCollector<'_, 'v>

source

fn process_item(&mut self, id: ItemId)

source

fn process_impl_item(&mut self, id: ImplItemId)

source

fn is_root(&self, def_id: LocalDefId) -> bool

source

fn push_if_root(&mut self, def_id: LocalDefId)

If def_id represents a root, pushes it onto the list of outputs. (Note that all roots must be monomorphic.)

source

fn push_extra_entry_roots(&mut self)

As a special case, when/if we encounter the main() function, we also have to generate a monomorphized copy of the start lang item based on the return type of main. This is not needed when the user writes their own start manually.

Auto Trait Implementations§

§

impl<'a, 'tcx> !RefUnwindSafe for RootCollector<'a, 'tcx>

§

impl<'a, 'tcx> !Send for RootCollector<'a, 'tcx>

§

impl<'a, 'tcx> !Sync for RootCollector<'a, 'tcx>

§

impl<'a, 'tcx> Unpin for RootCollector<'a, 'tcx>

§

impl<'a, 'tcx> !UnwindSafe for RootCollector<'a, 'tcx>

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere 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, U> TryFrom<U> for Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 32 bytes