summaryrefslogtreecommitdiffstats
path: root/tests/ui/test-attrs/test-function-signature.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/test-attrs/test-function-signature.rs')
-rw-r--r--tests/ui/test-attrs/test-function-signature.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/ui/test-attrs/test-function-signature.rs b/tests/ui/test-attrs/test-function-signature.rs
new file mode 100644
index 000000000..9e86e9209
--- /dev/null
+++ b/tests/ui/test-attrs/test-function-signature.rs
@@ -0,0 +1,31 @@
+// compile-flags: --test
+
+#[test]
+fn foo() -> Result<(), ()> {
+ Ok(())
+}
+
+#[test]
+fn bar() -> i32 { //~ ERROR the trait bound `i32: Termination` is not satisfied
+ 0
+}
+
+#[test]
+fn baz(val: i32) {} //~ ERROR functions used as tests can not have any arguments
+
+#[test]
+fn lifetime_generic<'a>() -> Result<(), &'a str> {
+ Err("coerce me to any lifetime")
+}
+
+#[test]
+fn type_generic<T>() {} //~ ERROR functions used as tests can not have any non-lifetime generic parameters
+
+#[test]
+fn const_generic<const N: usize>() {} //~ ERROR functions used as tests can not have any non-lifetime generic parameters
+
+// Regression test for <https://github.com/rust-lang/rust/issues/112360>. This used to ICE.
+fn nested() {
+ #[test]
+ fn foo(arg: ()) {} //~ ERROR functions used as tests can not have any arguments
+}