Skip to content

Commit c5ec1b8

Browse files
committed
add test
1 parent 1708ad6 commit c5ec1b8

File tree

3 files changed

+75
-1
lines changed

3 files changed

+75
-1
lines changed

tests/ui/traits/cycle-cache-err-60010.stderr

+17-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,25 @@
1-
error[E0275]: overflow evaluating the requirement `RootDatabase: RefUnwindSafe`
1+
error[E0275]: overflow evaluating the requirement `SalsaStorage: RefUnwindSafe`
22
--> $DIR/cycle-cache-err-60010.rs:27:13
33
|
44
LL | _parse: <ParseQuery as Query<RootDatabase>>::Data,
55
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
66
|
7+
note: required because it appears within the type `PhantomData<SalsaStorage>`
8+
--> $SRC_DIR/core/src/marker.rs:LL:COL
9+
note: required because it appears within the type `Unique<SalsaStorage>`
10+
--> $SRC_DIR/core/src/ptr/unique.rs:LL:COL
11+
note: required because it appears within the type `Box<SalsaStorage>`
12+
--> $SRC_DIR/alloc/src/boxed.rs:LL:COL
13+
note: required because it appears within the type `Runtime<RootDatabase>`
14+
--> $DIR/cycle-cache-err-60010.rs:23:8
15+
|
16+
LL | struct Runtime<DB: Database> {
17+
| ^^^^^^^
18+
note: required because it appears within the type `RootDatabase`
19+
--> $DIR/cycle-cache-err-60010.rs:20:8
20+
|
21+
LL | struct RootDatabase {
22+
| ^^^^^^^^^^^^
723
note: required for `RootDatabase` to implement `SourceDatabase`
824
--> $DIR/cycle-cache-err-60010.rs:44:9
925
|
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
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 numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
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`.

0 commit comments

Comments
 (0)