[][src]Module rustc_ap_rustc_span::hygiene

Machinery for hygienic macros, inspired by the MTWT[1] paper.

[1] Matthew Flatt, Ryan Culpepper, David Darais, and Robert Bruce Findler. 2012. Macros that work together: Compile-time bindings, partial expansion, and definition contexts. J. Funct. Program. 22, 2 (March 2012), 181-216. DOI=10.1017/S0956796812000093 https://doi.org/10.1017/S0956796812000093

Structs

ExpnData

A subset of properties from both macro definition and macro call available through global data. Avoid using this if you have access to the original definition or call structures.

ExpnId

A unique ID associated with a macro invocation and expansion.

SyntaxContext

A SyntaxContext represents a chain of pairs (ExpnId, Transparency) named "marks".

Enums

AstPass

The kind of AST transform.

DesugaringKind

The kind of compiler desugaring.

ExpnKind

Expansion kind.

ForLoopLoc

A location in the desugaring of a for loop

MacroKind

The kind of macro invocation or definition.

Transparency

A property of a macro expansion that determines how identifiers produced by that expansion are resolved.

Functions

clear_syntax_context_map
debug_hygiene_data
update_dollar_crate_names
walk_chain