From 229df02c0b85c33465d7191a6e085e964e56c1c9 Mon Sep 17 00:00:00 2001 From: Vadim Petrochenkov Date: Sun, 16 Sep 2018 17:15:07 +0300 Subject: Temporarily prohibit proc macro attributes placed after derives ... and also proc macro attributes used together with test/bench. --- src/libsyntax_ext/test.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/libsyntax_ext') diff --git a/src/libsyntax_ext/test.rs b/src/libsyntax_ext/test.rs index be3485cfa7c..8ddfb1d9cba 100644 --- a/src/libsyntax_ext/test.rs +++ b/src/libsyntax_ext/test.rs @@ -49,7 +49,7 @@ pub fn expand_test_or_bench( // If we're not in test configuration, remove the annotated item if !cx.ecfg.should_test { return vec![]; } - let item = + let mut item = if let Annotatable::Item(i) = item { i } else { cx.parse_sess.span_diagnostic.span_fatal(item.span(), @@ -192,6 +192,12 @@ pub fn expand_test_or_bench( debug!("Synthetic test item:\n{}\n", pprust::item_to_string(&test_const)); + // Temporarily add another marker to the original item for error reporting + let marker2 = cx.attribute( + attr_sp, cx.meta_word(attr_sp, Symbol::intern("rustc_test_marker2")) + ); + item.attrs.push(marker2); + vec![ // Access to libtest under a gensymed name Annotatable::Item(test_extern), -- cgit 1.4.1-3-g733a5