[][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.

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