File tree 3 files changed +72
-1
lines changed
3 files changed +72
-1
lines changed Original file line number Diff line number Diff line change 1
- error[E0275]: overflow evaluating the requirement `RootDatabase : RefUnwindSafe`
1
+ error[E0275]: overflow evaluating the requirement `SalsaStorage : RefUnwindSafe`
2
2
--> $DIR/cycle-cache-err-60010.rs:27:13
3
3
|
4
4
LL | _parse: <ParseQuery as Query<RootDatabase>>::Data,
5
5
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
6
6
|
7
+ = note: required because it appears within the type `PhantomData<SalsaStorage>`
8
+ = note: required because it appears within the type `Unique<SalsaStorage>`
9
+ = note: required because it appears within the type `Box<SalsaStorage>`
10
+ note: required because it appears within the type `Runtime<RootDatabase>`
11
+ --> $DIR/cycle-cache-err-60010.rs:23:8
12
+ |
13
+ LL | struct Runtime<DB: Database> {
14
+ | ^^^^^^^
15
+ note: required because it appears within the type `RootDatabase`
16
+ --> $DIR/cycle-cache-err-60010.rs:20:8
17
+ |
18
+ LL | struct RootDatabase {
19
+ | ^^^^^^^^^^^^
7
20
note: required for `RootDatabase` to implement `SourceDatabase`
8
21
--> $DIR/cycle-cache-err-60010.rs:44:9
9
22
|
Original file line number Diff line number Diff line change
1
+ //~ ERROR overflow
2
+ // A regression test for #111729 checking that we correctly
3
+ // track recursion depth for obligations returned by confirmation.
4
+ use std:: panic:: RefUnwindSafe ;
5
+
6
+ trait Database {
7
+ type Storage ;
8
+ }
9
+ trait Query < DB > {
10
+ type Data ;
11
+ }
12
+ struct ParseQuery ;
13
+ struct RootDatabase {
14
+ _runtime : Runtime < RootDatabase > ,
15
+ }
16
+
17
+ impl < T : RefUnwindSafe > Database for T {
18
+ type Storage = SalsaStorage ;
19
+ }
20
+ impl Database for RootDatabase {
21
+ type Storage = SalsaStorage ;
22
+ }
23
+
24
+ struct Runtime < DB : Database > {
25
+ _storage : Box < DB :: Storage > ,
26
+ }
27
+ struct SalsaStorage {
28
+ _parse : <ParseQuery as Query < RootDatabase > >:: Data ,
29
+ }
30
+
31
+ impl < DB : Database > Query < DB > for ParseQuery {
32
+ type Data = RootDatabase ;
33
+ }
34
+ fn main ( ) { }
Original file line number Diff line number Diff line change
1
+ error[E0275]: overflow evaluating the requirement `Runtime<RootDatabase>: RefUnwindSafe`
2
+ |
3
+ = help: consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`cycle_via_builtin_auto_trait_impl`)
4
+ note: required because it appears within the type `RootDatabase`
5
+ --> $DIR/cycle-via-builtin-auto-trait-impl.rs:13:8
6
+ |
7
+ LL | struct RootDatabase {
8
+ | ^^^^^^^^^^^^
9
+ note: required for `RootDatabase` to implement `Database`
10
+ --> $DIR/cycle-via-builtin-auto-trait-impl.rs:17:24
11
+ |
12
+ LL | impl<T: RefUnwindSafe> Database for T {
13
+ | ------------- ^^^^^^^^ ^
14
+ | |
15
+ | unsatisfied trait bound introduced here
16
+ note: required because it appears within the type `Runtime<RootDatabase>`
17
+ --> $DIR/cycle-via-builtin-auto-trait-impl.rs:24:8
18
+ |
19
+ LL | struct Runtime<DB: Database> {
20
+ | ^^^^^^^
21
+
22
+ error: aborting due to previous error
23
+
24
+ For more information about this error, try `rustc --explain E0275`.
You can’t perform that action at this time.
0 commit comments