Review everything that uses `MacroKind`, and switch anything that could refer to more than one kind to use `MacroKinds`. Add a new `SyntaxExtensionKind::MacroRules` for `macro_rules!` macros, using the concrete `MacroRulesMacroExpander` type, and have it track which kinds it can handle. Eliminate the separate optional `attr_ext`, now that a `SyntaxExtension` can handle multiple macro kinds. This also avoids the need to downcast when calling methods on `MacroRulesMacroExpander`, such as `get_unused_rule`. Integrate macro kind checking into name resolution's `sub_namespace_match`, so that we only find a macro if it's the right type, and eliminate the special-case hack for attributes. |
||
|---|---|---|
| .. | ||
| rmeta | ||
| creader.rs | ||
| dependency_format.rs | ||
| errors.rs | ||
| foreign_modules.rs | ||
| fs.rs | ||
| lib.rs | ||
| locator.rs | ||
| native_libs.rs | ||