diff options
| author | John Kåre Alsaker <john.kare.alsaker@gmail.com> | 2019-01-17 07:28:39 +0100 |
|---|---|---|
| committer | John Kåre Alsaker <john.kare.alsaker@gmail.com> | 2019-01-28 05:46:53 +0100 |
| commit | 1bdd2f699beb6249a97aac3e2007401b37b6f273 (patch) | |
| tree | 588467272c41fde89c39948b50cf1c78bf99c9ef /src/libsyntax_ext | |
| parent | ec504def3665b0bc2ec80bede6dba2c603928315 (diff) | |
| download | rust-1bdd2f699beb6249a97aac3e2007401b37b6f273.tar.gz rust-1bdd2f699beb6249a97aac3e2007401b37b6f273.zip | |
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)) } |
