diff options
Diffstat (limited to 'src/test/ui/cross/cross-fn-cache-hole.rs')
-rw-r--r-- | src/test/ui/cross/cross-fn-cache-hole.rs | 31 |
1 files changed, 0 insertions, 31 deletions
diff --git a/src/test/ui/cross/cross-fn-cache-hole.rs b/src/test/ui/cross/cross-fn-cache-hole.rs deleted file mode 100644 index c38a5001a..000000000 --- a/src/test/ui/cross/cross-fn-cache-hole.rs +++ /dev/null @@ -1,31 +0,0 @@ -// Check that when there are vacuous predicates in the environment -// (which make a fn uncallable) we don't erroneously cache those and -// then consider them satisfied elsewhere. The current technique for -// doing this is to not use global caches when there is a chance that -// the environment contains such a predicate. -// We still error for `i32: Bar<u32>` pending #48214 - -trait Foo<X,Y>: Bar<X> { -} - -trait Bar<X> { } - -// We don't always check where clauses for sanity, but in this case -// wfcheck does report an error here: -fn vacuous<A>() - where i32: Foo<u32, A> //~ ERROR the trait bound `i32: Bar<u32>` is not satisfied -{ - // ... the original intention was to check that we don't use that - // vacuous where clause (which could never be satisfied) to accept - // the following line and then mess up calls elsewhere. - require::<i32, u32>(); -} - -fn require<A,B>() - where A: Bar<B> -{ -} - -fn main() { - require::<i32, u32>(); -} |