about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPietro Albini <pietro@pietroalbini.org>2018-11-18 23:24:43 +0100
committerGitHub <noreply@github.com>2018-11-18 23:24:43 +0100
commit715d83fe01b02c3c42f6a60810cf8fe8316788e5 (patch)
tree0d4dc6d475681b6ff32ca51572a0322fb044f579
parent5e2ff63e29c20353b9929337e4c3b641adbf488f (diff)
parent8e13e433c65f4755f43a527f8777a035f8b6a71b (diff)
downloadrust-715d83fe01b02c3c42f6a60810cf8fe8316788e5.tar.gz
rust-715d83fe01b02c3c42f6a60810cf8fe8316788e5.zip
Rollup merge of #55923 - Zeegomo:master, r=estebank
reword #[test] attribute error on fn items

fix of [#55787](https://github.com/rust-lang/rust/issues/55787)
Reworded error message from "#[test] attribute is only allowed on fn items" to "#[test] attribute is only allowed on non associated functions"
-rw-r--r--src/libsyntax_ext/test.rs2
-rw-r--r--src/test/ui/test-attr-non-associated-functions.rs29
-rw-r--r--src/test/ui/test-attr-non-associated-functions.stderr10
3 files changed, 40 insertions, 1 deletions
diff --git a/src/libsyntax_ext/test.rs b/src/libsyntax_ext/test.rs
index be3485cfa7c..b8a171b52ad 100644
--- a/src/libsyntax_ext/test.rs
+++ b/src/libsyntax_ext/test.rs
@@ -53,7 +53,7 @@ pub fn expand_test_or_bench(
         if let Annotatable::Item(i) = item { i }
         else {
             cx.parse_sess.span_diagnostic.span_fatal(item.span(),
-                "#[test] attribute is only allowed on fn items").raise();
+                "#[test] attribute is only allowed on non associated functions").raise();
         };
 
     if let ast::ItemKind::Mac(_) = item.node {
diff --git a/src/test/ui/test-attr-non-associated-functions.rs b/src/test/ui/test-attr-non-associated-functions.rs
new file mode 100644
index 00000000000..348bc6b4e98
--- /dev/null
+++ b/src/test/ui/test-attr-non-associated-functions.rs
@@ -0,0 +1,29 @@
+// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// #[test] attribute is not allowed on associated functions or methods
+// reworded error message
+// compile-flags:--test
+
+struct A {}
+
+impl A {
+    #[test]
+    fn new() -> A { //~ ERROR #[test] attribute is only allowed on non associated functions
+        A {}
+    }
+}
+
+#[test]
+fn test() {
+    let _ = A::new();
+}
+
+fn main() {}
diff --git a/src/test/ui/test-attr-non-associated-functions.stderr b/src/test/ui/test-attr-non-associated-functions.stderr
new file mode 100644
index 00000000000..491fcc01431
--- /dev/null
+++ b/src/test/ui/test-attr-non-associated-functions.stderr
@@ -0,0 +1,10 @@
+error: #[test] attribute is only allowed on non associated functions
+  --> $DIR/test-attr-non-associated-functions.rs:19:5
+   |
+LL | /     fn new() -> A { //~ ERROR #[test] attribute is only allowed on non associated functions
+LL | |         A {}
+LL | |     }
+   | |_____^
+
+error: aborting due to previous error
+