Module rustc_resolve::macros [−][src]
Expand description
A bunch of methods and structures more or less related to resolving macros and
interface provided by Resolver to macro expander.
Structs
Binding produced by a macro_rules item.
Not modularized, can shadow previous macro_rules bindings, etc.
Enums
The scope introduced by a macro_rules! macro.
This starts at the macro’s definition and ends at the end of the macro’s parent
module (named or unnamed), or even further if it escapes with #[macro_use].
Some macro invocations need to introduce macro_rules scopes too because they
can potentially expand into macro definitions.
Functions
The code common between processing #![register_tool] and #![register_attr].
Type Definitions
macro_rules! scopes are always kept by reference and inside a cell.
The reason is that we update scopes with value MacroRulesScope::Invocation(invoc_id)
in-place after invoc_id gets expanded.
This helps to avoid uncontrollable growth of macro_rules! scope chains,
which usually grow lineraly with the number of macro invocations
in a module (including derives) and hurt performance.