Auto merge of #49950 - Zoxc:default-span, r=estebank

Improve query cycle error message

r? @michaelwoerister
This commit is contained in:
bors 2018-04-18 01:04:04 +00:00
commit b91e6a2672
29 changed files with 142 additions and 175 deletions

View file

@ -15,10 +15,9 @@ trait A: B {
}
trait B: C {
//~^ ERROR cycle detected
}
trait C: B { }
//~^ ERROR cyclic dependency detected
//~| cyclic reference
fn main() { }

View file

@ -1,20 +1,20 @@
error[E0391]: cyclic dependency detected
--> $DIR/cycle-trait-supertrait-indirect.rs:20:1
|
LL | trait C: B { }
| ^^^^^^^^^^ cyclic reference
|
note: the cycle begins when computing the supertraits of `B`...
--> $DIR/cycle-trait-supertrait-indirect.rs:14:1
|
LL | trait A: B {
| ^^^^^^^^^^
note: ...which then requires computing the supertraits of `C`...
error[E0391]: cycle detected when computing the supertraits of `B`
--> $DIR/cycle-trait-supertrait-indirect.rs:17:1
|
LL | trait B: C {
| ^^^^^^^^^^
= note: ...which then again requires computing the supertraits of `B`, completing the cycle.
|
note: ...which requires computing the supertraits of `C`...
--> $DIR/cycle-trait-supertrait-indirect.rs:21:1
|
LL | trait C: B { }
| ^^^^^^^^^^
= note: ...which again requires computing the supertraits of `B`, completing the cycle
note: cycle used when computing the supertraits of `A`
--> $DIR/cycle-trait-supertrait-indirect.rs:14:1
|
LL | trait A: B {
| ^^^^^^^^^^
error: aborting due to previous error

View file

@ -40,8 +40,7 @@ fn after() -> impl Fn(i32) {
// independently resolved and only require the concrete
// return type, which can't depend on the obligation.
fn cycle1() -> impl Clone {
//~^ ERROR cyclic dependency detected
//~| cyclic reference
//~^ ERROR cycle detected
send(cycle2().clone());
Rc::new(Cell::new(5))

View file

@ -28,33 +28,29 @@ note: required by `send`
LL | fn send<T: Send>(_: T) {}
| ^^^^^^^^^^^^^^^^^^^^^^
error[E0391]: cyclic dependency detected
--> $DIR/auto-trait-leak.rs:42:1
|
LL | fn cycle1() -> impl Clone {
| ^^^^^^^^^^^^^^^^^^^^^^^^^ cyclic reference
|
note: the cycle begins when processing `cycle1`...
error[E0391]: cycle detected when processing `cycle1`
--> $DIR/auto-trait-leak.rs:42:1
|
LL | fn cycle1() -> impl Clone {
| ^^^^^^^^^^^^^^^^^^^^^^^^^
note: ...which then requires processing `cycle2::{{impl-Trait}}`...
--> $DIR/auto-trait-leak.rs:50:16
|
note: ...which requires processing `cycle2::{{impl-Trait}}`...
--> $DIR/auto-trait-leak.rs:49:16
|
LL | fn cycle2() -> impl Clone {
| ^^^^^^^^^^
note: ...which then requires processing `cycle2`...
--> $DIR/auto-trait-leak.rs:50:1
note: ...which requires processing `cycle2`...
--> $DIR/auto-trait-leak.rs:49:1
|
LL | fn cycle2() -> impl Clone {
| ^^^^^^^^^^^^^^^^^^^^^^^^^
note: ...which then requires processing `cycle1::{{impl-Trait}}`...
note: ...which requires processing `cycle1::{{impl-Trait}}`...
--> $DIR/auto-trait-leak.rs:42:16
|
LL | fn cycle1() -> impl Clone {
| ^^^^^^^^^^
= note: ...which then again requires processing `cycle1`, completing the cycle.
= note: ...which again requires processing `cycle1`, completing the cycle
note: cycle used when type-checking all item bodies
error: aborting due to 3 previous errors

View file

@ -9,11 +9,10 @@
// except according to those terms.
trait t1 : t2 {
//~^ ERROR cycle detected
}
trait t2 : t1 {
//~^ ERROR cyclic dependency detected
//~| cyclic reference
}
fn main() { }

View file

@ -1,20 +1,15 @@
error[E0391]: cyclic dependency detected
--> $DIR/issue-12511.rs:14:1
error[E0391]: cycle detected when computing the supertraits of `t1`
--> $DIR/issue-12511.rs:11:1
|
LL | trait t1 : t2 {
| ^^^^^^^^^^^^^
|
note: ...which requires computing the supertraits of `t2`...
--> $DIR/issue-12511.rs:15:1
|
LL | trait t2 : t1 {
| ^^^^^^^^^^^^^ cyclic reference
|
note: the cycle begins when computing the supertraits of `t1`...
--> $DIR/issue-12511.rs:11:1
|
LL | trait t1 : t2 {
| ^^^^^^^^^^^^^
note: ...which then requires computing the supertraits of `t2`...
--> $DIR/issue-12511.rs:11:1
|
LL | trait t1 : t2 {
| ^^^^^^^^^^^^^
= note: ...which then again requires computing the supertraits of `t1`, completing the cycle.
= note: ...which again requires computing the supertraits of `t1`, completing the cycle
error: aborting due to previous error

View file

@ -1,20 +1,11 @@
error[E0391]: cyclic dependency detected
--> $DIR/issue-23302-1.rs:14:9
|
LL | A = X::A as isize, //~ ERROR E0391
| ^^^^^^^^^^^^^ cyclic reference
|
note: the cycle begins when const-evaluating `X::A::{{initializer}}`...
--> $DIR/issue-23302-1.rs:14:9
|
LL | A = X::A as isize, //~ ERROR E0391
| ^^^^^^^^^^^^^
note: ...which then requires computing layout of `X`...
error[E0391]: cycle detected when const-evaluating `X::A::{{initializer}}`
--> $DIR/issue-23302-1.rs:14:9
|
LL | A = X::A as isize, //~ ERROR E0391
| ^^^^
= note: ...which then again requires const-evaluating `X::A::{{initializer}}`, completing the cycle.
|
note: ...which requires computing layout of `X`...
= note: ...which again requires const-evaluating `X::A::{{initializer}}`, completing the cycle
error: aborting due to previous error

View file

@ -1,20 +1,11 @@
error[E0391]: cyclic dependency detected
--> $DIR/issue-23302-2.rs:14:9
|
LL | A = Y::B as isize, //~ ERROR E0391
| ^^^^^^^^^^^^^ cyclic reference
|
note: the cycle begins when const-evaluating `Y::A::{{initializer}}`...
--> $DIR/issue-23302-2.rs:14:9
|
LL | A = Y::B as isize, //~ ERROR E0391
| ^^^^^^^^^^^^^
note: ...which then requires computing layout of `Y`...
error[E0391]: cycle detected when const-evaluating `Y::A::{{initializer}}`
--> $DIR/issue-23302-2.rs:14:9
|
LL | A = Y::B as isize, //~ ERROR E0391
| ^^^^
= note: ...which then again requires const-evaluating `Y::A::{{initializer}}`, completing the cycle.
|
note: ...which requires computing layout of `Y`...
= note: ...which again requires const-evaluating `Y::A::{{initializer}}`, completing the cycle
error: aborting due to previous error

View file

@ -8,8 +8,8 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
const A: i32 = B;
const A: i32 = B; //~ ERROR cycle detected
const B: i32 = A; //~ ERROR cyclic dependency detected
const B: i32 = A;
fn main() { }

View file

@ -1,30 +1,25 @@
error[E0391]: cyclic dependency detected
--> $DIR/issue-23302-3.rs:13:16
|
LL | const B: i32 = A; //~ ERROR cyclic dependency detected
| ^ cyclic reference
|
note: the cycle begins when const checking if rvalue is promotable to static `A`...
error[E0391]: cycle detected when const checking if rvalue is promotable to static `A`
--> $DIR/issue-23302-3.rs:11:1
|
LL | const A: i32 = B;
LL | const A: i32 = B; //~ ERROR cycle detected
| ^^^^^^^^^^^^^^^^^
note: ...which then requires checking which parts of `A` are promotable to static...
--> $DIR/issue-23302-3.rs:11:1
|
LL | const A: i32 = B;
| ^^^^^^^^^^^^^^^^^
note: ...which then requires const checking if rvalue is promotable to static `B`...
note: ...which requires checking which parts of `A` are promotable to static...
--> $DIR/issue-23302-3.rs:11:16
|
LL | const A: i32 = B;
LL | const A: i32 = B; //~ ERROR cycle detected
| ^
note: ...which then requires checking which parts of `B` are promotable to static...
note: ...which requires const checking if rvalue is promotable to static `B`...
--> $DIR/issue-23302-3.rs:13:1
|
LL | const B: i32 = A; //~ ERROR cyclic dependency detected
LL | const B: i32 = A;
| ^^^^^^^^^^^^^^^^^
= note: ...which then again requires const checking if rvalue is promotable to static `A`, completing the cycle.
note: ...which requires checking which parts of `B` are promotable to static...
--> $DIR/issue-23302-3.rs:13:16
|
LL | const B: i32 = A;
| ^
= note: ...which again requires const checking if rvalue is promotable to static `A`, completing the cycle
error: aborting due to previous error

View file

@ -1,30 +1,21 @@
error[E0391]: cyclic dependency detected
--> $DIR/issue-36163.rs:14:9
|
LL | B = A, //~ ERROR E0391
| ^ cyclic reference
|
note: the cycle begins when const-evaluating `Foo::B::{{initializer}}`...
error[E0391]: cycle detected when const-evaluating `Foo::B::{{initializer}}`
--> $DIR/issue-36163.rs:14:9
|
LL | B = A, //~ ERROR E0391
| ^
note: ...which then requires processing `Foo::B::{{initializer}}`...
|
note: ...which requires processing `Foo::B::{{initializer}}`...
--> $DIR/issue-36163.rs:14:9
|
LL | B = A, //~ ERROR E0391
| ^
note: ...which then requires const-evaluating `A`...
--> $DIR/issue-36163.rs:11:1
|
LL | const A: isize = Foo::B as isize;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: ...which then requires computing layout of `Foo`...
note: ...which requires const-evaluating `A`...
--> $DIR/issue-36163.rs:11:18
|
LL | const A: isize = Foo::B as isize;
| ^^^^^^
= note: ...which then again requires const-evaluating `Foo::B::{{initializer}}`, completing the cycle.
note: ...which requires computing layout of `Foo`...
= note: ...which again requires const-evaluating `Foo::B::{{initializer}}`, completing the cycle
error: aborting due to previous error

View file

@ -13,6 +13,6 @@ pub trait ToNbt<T> {
}
impl ToNbt<Self> {}
//~^ ERROR cyclic dependency detected
//~^ ERROR cycle detected
fn main() {}

View file

@ -1,15 +1,10 @@
error[E0391]: cyclic dependency detected
error[E0391]: cycle detected when processing `<impl at $DIR/issue-23305.rs:15:1: 15:20>`
--> $DIR/issue-23305.rs:15:12
|
LL | impl ToNbt<Self> {}
| ^^^^ cyclic reference
| ^^^^
|
note: the cycle begins when processing `<impl at $DIR/issue-23305.rs:15:1: 15:20>`...
--> $DIR/issue-23305.rs:15:1
|
LL | impl ToNbt<Self> {}
| ^^^^^^^^^^^^^^^^
= note: ...which then again requires processing `<impl at $DIR/issue-23305.rs:15:1: 15:20>`, completing the cycle.
= note: ...which again requires processing `<impl at $DIR/issue-23305.rs:15:1: 15:20>`, completing the cycle
error: aborting due to previous error