Struct ra_ap_hir_expand::ExpansionInfo [−][src]
pub struct ExpansionInfo { /* fields omitted */ }
Expand description
ExpansionInfo mainly describes how to map text range between src and expanded macro
Implementations
pub fn map_token_down(
&self,
db: &dyn AstDatabase,
item: Option<Item>,
token: InFile<&SyntaxToken>
) -> Option<impl Iterator<Item = InFile<SyntaxToken>> + '_>
pub fn map_token_down(
&self,
db: &dyn AstDatabase,
item: Option<Item>,
token: InFile<&SyntaxToken>
) -> Option<impl Iterator<Item = InFile<SyntaxToken>> + '_>
Map a token down from macro input into the macro expansion.
The inner workings of this function differ slightly depending on the type of macro we are dealing with:
- declarative: For declarative macros, we need to accommodate for the macro definition site(which acts as a second unchanging input) , as tokens can mapped in and out of it. To do this we shift all ids in the expansion by the maximum id of the definition site giving us an easy way to map all the tokens.
- attribute: Attributes have two different inputs, the input tokentree in the attribute node and the item the attribute is annotating. Similarly as for declarative macros we need to do a shift here as well. Currently this is done by shifting the attribute input by the maximum id of the item.
- function-like and derives: Both of these only have one simple call site input so no special handling is required here.
pub fn map_token_up(
&self,
db: &dyn AstDatabase,
token: InFile<&SyntaxToken>
) -> Option<(InFile<SyntaxToken>, Origin)>
pub fn map_token_up(
&self,
db: &dyn AstDatabase,
token: InFile<&SyntaxToken>
) -> Option<(InFile<SyntaxToken>, Origin)>
Map a token up out of the expansion it resides in into the arguments of the macro call of the expansion.
Trait Implementations
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.
Auto Trait Implementations
impl !RefUnwindSafe for ExpansionInfo
impl !Send for ExpansionInfo
impl !Sync for ExpansionInfo
impl Unpin for ExpansionInfo
impl !UnwindSafe for ExpansionInfo
Blanket Implementations
Mutably borrows from an owned value. Read more
Compare self to key
and return true
if they are equal.
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more