Trait rustc_expand::base::ResolverExpand[][src]

pub trait ResolverExpand {
Show 15 methods fn next_node_id(&mut self) -> NodeId;
fn invocation_parent(&self, id: LocalExpnId) -> LocalDefId;
fn resolve_dollar_crates(&mut self);
fn visit_ast_fragment_with_placeholders(
        &mut self,
        expn_id: LocalExpnId,
        fragment: &AstFragment
fn register_builtin_macro(&mut self, name: Symbol, ext: SyntaxExtensionKind);
fn expansion_for_ast_pass(
        &mut self,
        call_site: Span,
        pass: AstPass,
        features: &[Symbol],
        parent_module_id: Option<NodeId>
    ) -> LocalExpnId;
fn resolve_imports(&mut self);
fn resolve_macro_invocation(
        &mut self,
        invoc: &Invocation,
        eager_expansion_root: LocalExpnId,
        force: bool
    ) -> Result<Lrc<SyntaxExtension>, Indeterminate>;
fn check_unused_macros(&mut self);
fn has_derive_copy(&self, expn_id: LocalExpnId) -> bool;
fn resolve_derives(
        &mut self,
        expn_id: LocalExpnId,
        force: bool,
        derive_paths: &dyn Fn() -> DeriveResolutions
    ) -> Result<(), Indeterminate>;
fn take_derive_resolutions(
        &mut self,
        expn_id: LocalExpnId
    ) -> Option<DeriveResolutions>;
fn cfg_accessible(
        &mut self,
        expn_id: LocalExpnId,
        path: &Path
    ) -> Result<bool, Indeterminate>;
fn get_proc_macro_quoted_span(&self, krate: CrateNum, id: usize) -> Span;
fn declare_proc_macro(&mut self, id: NodeId);

Required methods

Does #[derive(...)] attribute with the given ExpnId have built-in Copy inside it?

Resolve paths inside the #[derive(...)] attribute with the given ExpnId.

Take resolutions for paths inside the #[derive(...)] attribute with the given ExpnId back from resolver.

Path resolution logic for #[cfg_accessible(path)].

Decodes the proc-macro quoted span in the specified crate, with the specified id. No caching is performed.

The order of items in the HIR is unrelated to the order of items in the AST. However, we generate proc macro harnesses based on the AST order, and later refer to these harnesses from the HIR. This field keeps track of the order in which we generated proc macros harnesses, so that we can map HIR proc macros items back to their harness items.