diff options
| author | Aaron Hill <aa1ronham@gmail.com> | 2021-05-31 13:22:40 -0500 |
|---|---|---|
| committer | Aaron Hill <aa1ronham@gmail.com> | 2021-09-02 11:10:40 -0500 |
| commit | f2d9ee9c342104880dd978e85260243d2dcedc9a (patch) | |
| tree | 452d87442da559a12d1780d92c594a36b9bda1c3 /src/test | |
| parent | 64929313f53181636e4dd37e25836973205477e4 (diff) | |
| download | rust-f2d9ee9c342104880dd978e85260243d2dcedc9a.tar.gz rust-f2d9ee9c342104880dd978e85260243d2dcedc9a.zip | |
Preserve most sub-obligations in the projection cache
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/ui/impl-trait/auto-trait-leak.stderr | 12 | ||||
| -rw-r--r-- | src/test/ui/traits/cycle-cache-err-60010.rs | 2 | ||||
| -rw-r--r-- | src/test/ui/traits/cycle-cache-err-60010.stderr | 34 |
3 files changed, 15 insertions, 33 deletions
diff --git a/src/test/ui/impl-trait/auto-trait-leak.stderr b/src/test/ui/impl-trait/auto-trait-leak.stderr index 3eb141cc2bb..a31c104d8f5 100644 --- a/src/test/ui/impl-trait/auto-trait-leak.stderr +++ b/src/test/ui/impl-trait/auto-trait-leak.stderr @@ -30,10 +30,10 @@ note: ...which requires building MIR for `cycle1`... LL | fn cycle1() -> impl Clone { | ^^^^^^^^^^^^^^^^^^^^^^^^^ note: ...which requires type-checking `cycle1`... - --> $DIR/auto-trait-leak.rs:12:1 + --> $DIR/auto-trait-leak.rs:14:5 | -LL | fn cycle1() -> impl Clone { - | ^^^^^^^^^^^^^^^^^^^^^^^^^ +LL | send(cycle2().clone()); + | ^^^^ = note: ...which requires evaluating trait selection obligation `impl std::clone::Clone: std::marker::Send`... note: ...which requires computing type of `cycle2::{opaque#0}`... --> $DIR/auto-trait-leak.rs:19:16 @@ -66,10 +66,10 @@ note: ...which requires building MIR for `cycle2`... LL | fn cycle2() -> impl Clone { | ^^^^^^^^^^^^^^^^^^^^^^^^^ note: ...which requires type-checking `cycle2`... - --> $DIR/auto-trait-leak.rs:19:1 + --> $DIR/auto-trait-leak.rs:20:5 | -LL | fn cycle2() -> impl Clone { - | ^^^^^^^^^^^^^^^^^^^^^^^^^ +LL | send(cycle1().clone()); + | ^^^^ = note: ...which requires evaluating trait selection obligation `impl std::clone::Clone: std::marker::Send`... = note: ...which again requires computing type of `cycle1::{opaque#0}`, completing the cycle note: cycle used when checking item types in top-level module diff --git a/src/test/ui/traits/cycle-cache-err-60010.rs b/src/test/ui/traits/cycle-cache-err-60010.rs index 98bfcb8d67b..88f0bd87253 100644 --- a/src/test/ui/traits/cycle-cache-err-60010.rs +++ b/src/test/ui/traits/cycle-cache-err-60010.rs @@ -25,6 +25,7 @@ struct Runtime<DB: Database> { } struct SalsaStorage { _parse: <ParseQuery as Query<RootDatabase>>::Data, + //~^ ERROR overflow evaluating the requirement `RootDatabase: SourceDatabase` } impl Database for RootDatabase { @@ -67,7 +68,6 @@ pub(crate) fn goto_implementation(db: &RootDatabase) -> u32 { // we used to fail to report an error here because we got the // caching wrong. SourceDatabase::parse(db); - //~^ ERROR overflow 22 } diff --git a/src/test/ui/traits/cycle-cache-err-60010.stderr b/src/test/ui/traits/cycle-cache-err-60010.stderr index 565899677bf..91c2bd6c3b2 100644 --- a/src/test/ui/traits/cycle-cache-err-60010.stderr +++ b/src/test/ui/traits/cycle-cache-err-60010.stderr @@ -1,32 +1,14 @@ -error[E0275]: overflow evaluating the requirement `SalsaStorage: RefUnwindSafe` - --> $DIR/cycle-cache-err-60010.rs:69:5 +error[E0275]: overflow evaluating the requirement `RootDatabase: SourceDatabase` + --> $DIR/cycle-cache-err-60010.rs:27:13 | -LL | SourceDatabase::parse(db); - | ^^^^^^^^^^^^^^^^^^^^^ +LL | _parse: <ParseQuery as Query<RootDatabase>>::Data, + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | - = note: required because it appears within the type `*const SalsaStorage` - = note: required because it appears within the type `Unique<SalsaStorage>` - = note: required because it appears within the type `Box<SalsaStorage>` -note: required because it appears within the type `Runtime<RootDatabase>` - --> $DIR/cycle-cache-err-60010.rs:23:8 +note: required because of the requirements on the impl of `Query<RootDatabase>` for `ParseQuery` + --> $DIR/cycle-cache-err-60010.rs:37:10 | -LL | struct Runtime<DB: Database> { - | ^^^^^^^ -note: required because it appears within the type `RootDatabase` - --> $DIR/cycle-cache-err-60010.rs:20:8 - | -LL | struct RootDatabase { - | ^^^^^^^^^^^^ -note: required because of the requirements on the impl of `SourceDatabase` for `RootDatabase` - --> $DIR/cycle-cache-err-60010.rs:43:9 - | -LL | impl<T> SourceDatabase for T - | ^^^^^^^^^^^^^^ ^ -note: required by `SourceDatabase::parse` - --> $DIR/cycle-cache-err-60010.rs:14:5 - | -LL | fn parse(&self) { - | ^^^^^^^^^^^^^^^ +LL | impl<DB> Query<DB> for ParseQuery + | ^^^^^^^^^ ^^^^^^^^^^ error: aborting due to previous error |
