diff options
Diffstat (limited to 'src/test/ui/coherence/coherence-fn-covariant-bound-vs-static.rs')
-rw-r--r-- | src/test/ui/coherence/coherence-fn-covariant-bound-vs-static.rs | 26 |
1 files changed, 0 insertions, 26 deletions
diff --git a/src/test/ui/coherence/coherence-fn-covariant-bound-vs-static.rs b/src/test/ui/coherence/coherence-fn-covariant-bound-vs-static.rs deleted file mode 100644 index 99f805f7f..000000000 --- a/src/test/ui/coherence/coherence-fn-covariant-bound-vs-static.rs +++ /dev/null @@ -1,26 +0,0 @@ -// Test that impls for these two types are considered ovelapping: -// -// * `for<'r> fn(fn(&'r u32))` -// * `fn(fn(&'a u32)` where `'a` is free -// -// This is because, for `'a = 'static`, the two types overlap. -// Effectively for them to be equal to you get: -// -// * `for<'r> fn(fn(&'r u32)) <: fn(fn(&'static u32))` -// * true if `exists<'r> { 'r: 'static }` (obviously true) -// * `fn(fn(&'static u32)) <: for<'r> fn(fn(&'r u32))` -// * true if `forall<'r> { 'static: 'r }` (also true) - -trait Trait {} - -impl Trait for for<'r> fn(fn(&'r ())) {} -impl<'a> Trait for fn(fn(&'a ())) {} -//~^ ERROR conflicting implementations -// -// Note in particular that we do NOT get a future-compatibility warning -// here. This is because the new leak-check proposed in [MCP 295] does not -// "error" when these two types are equated. -// -// [MCP 295]: https://github.com/rust-lang/compiler-team/issues/295 - -fn main() {} |