about summary refs log tree commit diff
path: root/tests/ui/traits/const-traits/double-error-for-unimplemented-trait.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/traits/const-traits/double-error-for-unimplemented-trait.rs')
-rw-r--r--tests/ui/traits/const-traits/double-error-for-unimplemented-trait.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/ui/traits/const-traits/double-error-for-unimplemented-trait.rs b/tests/ui/traits/const-traits/double-error-for-unimplemented-trait.rs
new file mode 100644
index 00000000000..f4b01efe959
--- /dev/null
+++ b/tests/ui/traits/const-traits/double-error-for-unimplemented-trait.rs
@@ -0,0 +1,22 @@
+// Make sure we don't issue *two* error messages for the trait predicate *and* host predicate.
+
+#![feature(const_trait_impl)]
+
+#[const_trait]
+trait Trait {
+  type Out;
+}
+
+const fn needs_const<T: ~const Trait>(_: &T) {}
+
+const IN_CONST: () = {
+  needs_const(&());
+  //~^ ERROR the trait bound `(): Trait` is not satisfied
+};
+
+const fn conditionally_const() {
+  needs_const(&());
+  //~^ ERROR the trait bound `(): Trait` is not satisfied
+}
+
+fn main() {}