about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--tests/ui/traits/const-traits/variance.rs14
-rw-r--r--tests/ui/traits/const-traits/variance.stderr8
2 files changed, 22 insertions, 0 deletions
diff --git a/tests/ui/traits/const-traits/variance.rs b/tests/ui/traits/const-traits/variance.rs
new file mode 100644
index 00000000000..9eaf7910cb8
--- /dev/null
+++ b/tests/ui/traits/const-traits/variance.rs
@@ -0,0 +1,14 @@
+#![feature(rustc_attrs, const_trait_impl)]
+#![allow(internal_features)]
+#![rustc_variance_of_opaques]
+
+#[const_trait]
+trait Foo {}
+
+impl const Foo for () {}
+
+fn foo<'a: 'a>() -> impl const Foo {}
+//~^ ERROR ['a: o]
+
+fn main() {}
+
diff --git a/tests/ui/traits/const-traits/variance.stderr b/tests/ui/traits/const-traits/variance.stderr
new file mode 100644
index 00000000000..f6efc24b747
--- /dev/null
+++ b/tests/ui/traits/const-traits/variance.stderr
@@ -0,0 +1,8 @@
+error: ['a: o]
+  --> $DIR/variance.rs:10:21
+   |
+LL | fn foo<'a: 'a>() -> impl const Foo {}
+   |                     ^^^^^^^^^^^^^^
+
+error: aborting due to 1 previous error
+