diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-07-25 23:21:00 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-07-25 23:21:00 +0200 |
| commit | e1de70b04548b2e899fcf0da09c29600cc05325e (patch) | |
| tree | a74148f96104c5972f121069a0cfcab089d8082e /src/libsyntax_ext/test_case.rs | |
| parent | 6f0e57fb1dc3b30126e6ec6c9dd2ad0309da2c0c (diff) | |
| parent | a0c2c640d54fa1622c2fea4accae1025bf109c47 (diff) | |
| download | rust-e1de70b04548b2e899fcf0da09c29600cc05325e.tar.gz rust-e1de70b04548b2e899fcf0da09c29600cc05325e.zip | |
Rollup merge of #62735 - petrochenkov:galloc, r=alexcrichton
Turn `#[global_allocator]` into a regular attribute macro It was a 99% macro with exception of some diagnostic details. As a result of the change, `#[global_allocator]` now works in nested modules and even in nameless blocks. Fixes https://github.com/rust-lang/rust/issues/44113 Fixes https://github.com/rust-lang/rust/issues/58072
Diffstat (limited to 'src/libsyntax_ext/test_case.rs')
| -rw-r--r-- | src/libsyntax_ext/test_case.rs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/libsyntax_ext/test_case.rs b/src/libsyntax_ext/test_case.rs index 355f2428e08..ea4a8d541ab 100644 --- a/src/libsyntax_ext/test_case.rs +++ b/src/libsyntax_ext/test_case.rs @@ -9,10 +9,11 @@ // We mark item with an inert attribute "rustc_test_marker" which the test generation // logic will pick up on. +use syntax::ast; +use syntax::attr::check_builtin_macro_attribute; use syntax::ext::base::*; use syntax::ext::build::AstBuilder; use syntax::ext::hygiene::SyntaxContext; -use syntax::ast; use syntax::source_map::respan; use syntax::symbol::sym; use syntax_pos::Span; @@ -20,9 +21,11 @@ use syntax_pos::Span; pub fn expand( ecx: &mut ExtCtxt<'_>, attr_sp: Span, - _meta_item: &ast::MetaItem, + meta_item: &ast::MetaItem, anno_item: Annotatable ) -> Vec<Annotatable> { + check_builtin_macro_attribute(ecx, meta_item, sym::test_case); + if !ecx.ecfg.should_test { return vec![]; } let sp = attr_sp.with_ctxt(SyntaxContext::empty().apply_mark(ecx.current_expansion.id)); |
