Struct rustfmt_nightly::modules::ModResolver
source · pub(crate) struct ModResolver<'ast, 'sess> {
parse_sess: &'sess ParseSess,
directory: Directory,
file_map: BTreeMap<FileName, Module<'ast>>,
recursive: bool,
}
Expand description
Maps each module to the corresponding file.
Fields
parse_sess: &'sess ParseSess
directory: Directory
file_map: BTreeMap<FileName, Module<'ast>>
recursive: bool
Implementations
sourceimpl<'ast, 'sess, 'c> ModResolver<'ast, 'sess>
impl<'ast, 'sess, 'c> ModResolver<'ast, 'sess>
sourcepub(crate) fn new(
parse_sess: &'sess ParseSess,
directory_ownership: DirOwnership,
recursive: bool
) -> Self
pub(crate) fn new(
parse_sess: &'sess ParseSess,
directory_ownership: DirOwnership,
recursive: bool
) -> Self
Creates a new ModResolver
.
sourcepub(crate) fn visit_crate(
self,
krate: &'ast Crate
) -> Result<BTreeMap<FileName, Module<'ast>>, ModuleResolutionError>
pub(crate) fn visit_crate(
self,
krate: &'ast Crate
) -> Result<BTreeMap<FileName, Module<'ast>>, ModuleResolutionError>
Creates a map that maps a file name to the module in AST.
sourcefn visit_cfg_if(
&mut self,
item: Cow<'ast, Item>
) -> Result<(), ModuleResolutionError>
fn visit_cfg_if(
&mut self,
item: Cow<'ast, Item>
) -> Result<(), ModuleResolutionError>
Visit cfg_if
macro and look for module declarations.
sourcefn visit_mod_outside_ast(
&mut self,
items: Vec<P<Item>>
) -> Result<(), ModuleResolutionError>
fn visit_mod_outside_ast(
&mut self,
items: Vec<P<Item>>
) -> Result<(), ModuleResolutionError>
Visit modules defined inside macro calls.
sourcefn visit_mod_from_ast(
&mut self,
items: &'ast [P<Item>]
) -> Result<(), ModuleResolutionError>
fn visit_mod_from_ast(
&mut self,
items: &'ast [P<Item>]
) -> Result<(), ModuleResolutionError>
Visit modules from AST.
fn visit_sub_mod(
&mut self,
item: &'c Item,
sub_mod: Module<'ast>
) -> Result<(), ModuleResolutionError>
sourcefn peek_sub_mod(
&self,
item: &'c Item,
sub_mod: &Module<'ast>
) -> Result<Option<SubModKind<'c, 'ast>>, ModuleResolutionError>
fn peek_sub_mod(
&self,
item: &'c Item,
sub_mod: &Module<'ast>
) -> Result<Option<SubModKind<'c, 'ast>>, ModuleResolutionError>
Inspect the given sub-module which we are about to visit and returns its kind.
fn insert_sub_mod(
&mut self,
sub_mod_kind: SubModKind<'c, 'ast>
) -> Result<(), ModuleResolutionError>
fn visit_sub_mod_inner(
&mut self,
sub_mod: Module<'ast>,
sub_mod_kind: SubModKind<'c, 'ast>
) -> Result<(), ModuleResolutionError>
fn visit_sub_mod_after_directory_update(
&mut self,
sub_mod: Module<'ast>,
directory: Option<Directory>
) -> Result<(), ModuleResolutionError>
sourcefn find_external_module(
&self,
mod_name: Ident,
attrs: &[Attribute],
sub_mod: &Module<'ast>
) -> Result<Option<SubModKind<'c, 'ast>>, ModuleResolutionError>
fn find_external_module(
&self,
mod_name: Ident,
attrs: &[Attribute],
sub_mod: &Module<'ast>
) -> Result<Option<SubModKind<'c, 'ast>>, ModuleResolutionError>
Find a file path in the filesystem which corresponds to the given module.
fn push_inline_mod_directory(&mut self, id: Ident, attrs: &[Attribute])
fn find_mods_outside_of_ast(
&self,
attrs: &[Attribute],
sub_mod: &Module<'ast>
) -> Vec<(PathBuf, DirOwnership, Module<'ast>)>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
A: Allocator,
Auto Trait Implementations
impl<'ast, 'sess> !RefUnwindSafe for ModResolver<'ast, 'sess>
impl<'ast, 'sess> !Send for ModResolver<'ast, 'sess>
impl<'ast, 'sess> !Sync for ModResolver<'ast, 'sess>
impl<'ast, 'sess> Unpin for ModResolver<'ast, 'sess>
impl<'ast, 'sess> !UnwindSafe for ModResolver<'ast, 'sess>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
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: 80 bytes