summaryrefslogtreecommitdiffstats
path: root/src/test/ui/coherence/coherence-free-vs-bound-region.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/coherence/coherence-free-vs-bound-region.rs')
-rw-r--r--src/test/ui/coherence/coherence-free-vs-bound-region.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/test/ui/coherence/coherence-free-vs-bound-region.rs b/src/test/ui/coherence/coherence-free-vs-bound-region.rs
new file mode 100644
index 000000000..2f5c49d29
--- /dev/null
+++ b/src/test/ui/coherence/coherence-free-vs-bound-region.rs
@@ -0,0 +1,21 @@
+// Capture a coherence pattern from wasm-bindgen that we discovered as part of
+// future-compatibility warning #56105. This pattern currently receives a lint
+// warning but we probably want to support it long term.
+//
+// Key distinction: we are implementing once for `A` (take ownership) and one
+// for `&A` (borrow).
+//
+// c.f. #56105
+
+#![deny(coherence_leak_check)]
+
+trait TheTrait {}
+
+impl<'a> TheTrait for fn(&'a u8) {}
+
+impl TheTrait for fn(&u8) {
+ //~^ ERROR conflicting implementations of trait
+ //~| WARNING this was previously accepted by the compiler
+}
+
+fn main() {}