diff options
| author | bors <bors@rust-lang.org> | 2019-01-28 06:32:39 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2019-01-28 06:32:39 +0000 |
| commit | cc4d1e5bb0c256c352a4d01112a55d93dcfa6081 (patch) | |
| tree | cff972c9c27c299c5aef8ebed9e54583aad80115 /src/libsyntax_ext | |
| parent | c32515566fbf8961ecce60eb71a472962da99e8c (diff) | |
| parent | 1bdd2f699beb6249a97aac3e2007401b37b6f273 (diff) | |
| download | rust-cc4d1e5bb0c256c352a4d01112a55d93dcfa6081.tar.gz rust-cc4d1e5bb0c256c352a4d01112a55d93dcfa6081.zip | |
Auto merge of #57691 - Zoxc:pass-skip, r=petrochenkov
Conditionally skip two passes if their related attributes were not found
Diffstat (limited to 'src/libsyntax_ext')
| -rw-r--r-- | src/libsyntax_ext/proc_macro_decls.rs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/libsyntax_ext/proc_macro_decls.rs b/src/libsyntax_ext/proc_macro_decls.rs index 1d272712cac..46c502965ee 100644 --- a/src/libsyntax_ext/proc_macro_decls.rs +++ b/src/libsyntax_ext/proc_macro_decls.rs @@ -48,6 +48,7 @@ pub fn modify(sess: &ParseSess, resolver: &mut dyn (::syntax::ext::base::Resolver), mut krate: ast::Crate, is_proc_macro_crate: bool, + has_proc_macro_decls: bool, is_test_crate: bool, num_crate_types: usize, handler: &errors::Handler) -> ast::Crate { @@ -64,7 +65,9 @@ pub fn modify(sess: &ParseSess, is_proc_macro_crate, is_test_crate, }; - visit::walk_crate(&mut collect, &krate); + if has_proc_macro_decls || is_proc_macro_crate { + visit::walk_crate(&mut collect, &krate); + } (collect.derives, collect.attr_macros, collect.bang_macros) }; @@ -85,7 +88,7 @@ pub fn modify(sess: &ParseSess, krate } -fn is_proc_macro_attr(attr: &ast::Attribute) -> bool { +pub fn is_proc_macro_attr(attr: &ast::Attribute) -> bool { PROC_MACRO_KINDS.iter().any(|kind| attr.check_name(kind)) } |
