check_nested_macro

Function check_nested_macro 

Source
fn check_nested_macro(
    psess: &ParseSess,
    node_id: NodeId,
    macro_rules: bool,
    tts: &[TokenTree],
    macros: &Stack<'_, MacroState<'_>>,
    guar: &mut Option<ErrorGuaranteed>,
) -> usize
Expand description

Checks the body of nested macro, returns where the check stopped.

The token trees are checked as long as they look like a list of (LHS) => {RHS} token trees. This check is a best-effort to detect a macro definition. It returns the position in tts where we stopped checking because we detected we were not in a macro definition anymore.

Arguments:

  • psess is used to emit diagnostics and lints
  • node_id is used to emit lints
  • macro_rules specifies whether the macro is macro_rules
  • tts is checked as a list of (LHS) => {RHS}
  • macros is the stack of outer macros
  • guar is set in case of errors