1
Fork 0

adjust super_predicates_that_define_assoc_type query description

This commit is contained in:
Santiago Pastorino 2020-11-22 20:08:00 -03:00
parent 6ab8fe223e
commit b916ac6322
No known key found for this signature in database
GPG key ID: 8131A24E0C79EFAF
8 changed files with 24 additions and 19 deletions

View file

@ -449,7 +449,10 @@ rustc_queries! {
/// full predicates are available (note that supertraits have /// full predicates are available (note that supertraits have
/// additional acyclicity requirements). /// additional acyclicity requirements).
query super_predicates_that_define_assoc_type(key: (DefId, Option<rustc_span::symbol::Ident>)) -> ty::GenericPredicates<'tcx> { query super_predicates_that_define_assoc_type(key: (DefId, Option<rustc_span::symbol::Ident>)) -> ty::GenericPredicates<'tcx> {
desc { |tcx| "computing the supertraits of `{}`", tcx.def_path_str(key.0) } desc { |tcx| "computing the super traits of `{}`{}",
tcx.def_path_str(key.0),
if let Some(assoc_name) = key.1 { format!(" with associated type name `{}`", assoc_name) } else { "".to_string() },
}
} }
/// To avoid cycles within the predicates of a single item we compute /// To avoid cycles within the predicates of a single item we compute

View file

@ -1,3 +1,5 @@
// ignore-tidy-linelength
trait Foo { trait Foo {
type Item; type Item;
} }
@ -5,6 +7,6 @@ trait Bar<T> {
type Item; type Item;
} }
trait Baz: Foo + Bar<Self::Item> {} trait Baz: Foo + Bar<Self::Item> {}
//~^ ERROR cycle detected when computing the supertraits of `Baz` [E0391] //~^ ERROR cycle detected when computing the super traits of `Baz` with associated type name `Item` [E0391]
fn main() {} fn main() {}

View file

@ -1,12 +1,12 @@
error[E0391]: cycle detected when computing the supertraits of `Baz` error[E0391]: cycle detected when computing the super traits of `Baz` with associated type name `Item`
--> $DIR/ambiguous-associated-type2.rs:7:1 --> $DIR/ambiguous-associated-type2.rs:9:1
| |
LL | trait Baz: Foo + Bar<Self::Item> {} LL | trait Baz: Foo + Bar<Self::Item> {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
= note: ...which again requires computing the supertraits of `Baz`, completing the cycle = note: ...which again requires computing the super traits of `Baz` with associated type name `Item`, completing the cycle
note: cycle used when computing the supertraits of `Baz` note: cycle used when computing the super traits of `Baz`
--> $DIR/ambiguous-associated-type2.rs:7:1 --> $DIR/ambiguous-associated-type2.rs:9:1
| |
LL | trait Baz: Foo + Bar<Self::Item> {} LL | trait Baz: Foo + Bar<Self::Item> {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View file

@ -4,7 +4,7 @@ error[E0391]: cycle detected when computing the super predicates of `Chromosome`
LL | trait Chromosome: Chromosome { LL | trait Chromosome: Chromosome {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
note: ...which requires computing the supertraits of `Chromosome`... note: ...which requires computing the super traits of `Chromosome`...
--> $DIR/cycle-trait-supertrait-direct.rs:3:19 --> $DIR/cycle-trait-supertrait-direct.rs:3:19
| |
LL | trait Chromosome: Chromosome { LL | trait Chromosome: Chromosome {

View file

@ -4,7 +4,7 @@ error[E0391]: cycle detected when computing the super predicates of `B`
LL | trait B: C { LL | trait B: C {
| ^^^^^^^^^^ | ^^^^^^^^^^
| |
note: ...which requires computing the supertraits of `B`... note: ...which requires computing the super traits of `B`...
--> $DIR/cycle-trait-supertrait-indirect.rs:7:10 --> $DIR/cycle-trait-supertrait-indirect.rs:7:10
| |
LL | trait B: C { LL | trait B: C {
@ -14,13 +14,13 @@ note: ...which requires computing the super predicates of `C`...
| |
LL | trait C: B { } LL | trait C: B { }
| ^^^^^^^^^^ | ^^^^^^^^^^
note: ...which requires computing the supertraits of `C`... note: ...which requires computing the super traits of `C`...
--> $DIR/cycle-trait-supertrait-indirect.rs:11:10 --> $DIR/cycle-trait-supertrait-indirect.rs:11:10
| |
LL | trait C: B { } LL | trait C: B { }
| ^ | ^
= note: ...which again requires computing the super predicates of `B`, completing the cycle = note: ...which again requires computing the super predicates of `B`, completing the cycle
note: cycle used when computing the supertraits of `A` note: cycle used when computing the super traits of `A`
--> $DIR/cycle-trait-supertrait-indirect.rs:4:10 --> $DIR/cycle-trait-supertrait-indirect.rs:4:10
| |
LL | trait A: B { LL | trait A: B {

View file

@ -4,7 +4,7 @@ error[E0391]: cycle detected when computing the super predicates of `T1`
LL | trait T1 : T2 { LL | trait T1 : T2 {
| ^^^^^^^^^^^^^ | ^^^^^^^^^^^^^
| |
note: ...which requires computing the supertraits of `T1`... note: ...which requires computing the super traits of `T1`...
--> $DIR/issue-12511.rs:1:12 --> $DIR/issue-12511.rs:1:12
| |
LL | trait T1 : T2 { LL | trait T1 : T2 {
@ -14,7 +14,7 @@ note: ...which requires computing the super predicates of `T2`...
| |
LL | trait T2 : T1 { LL | trait T2 : T1 {
| ^^^^^^^^^^^^^ | ^^^^^^^^^^^^^
note: ...which requires computing the supertraits of `T2`... note: ...which requires computing the super traits of `T2`...
--> $DIR/issue-12511.rs:5:12 --> $DIR/issue-12511.rs:5:12
| |
LL | trait T2 : T1 { LL | trait T2 : T1 {

View file

@ -1,4 +1,4 @@
error[E0391]: cycle detected when computing the supertraits of `T` error[E0391]: cycle detected when computing the super traits of `T` with associated type name `Item`
--> $DIR/issue-20772.rs:1:1 --> $DIR/issue-20772.rs:1:1
| |
LL | / trait T : Iterator<Item=Self::Item> LL | / trait T : Iterator<Item=Self::Item>
@ -6,8 +6,8 @@ LL | |
LL | | {} LL | | {}
| |__^ | |__^
| |
= note: ...which again requires computing the supertraits of `T`, completing the cycle = note: ...which again requires computing the super traits of `T` with associated type name `Item`, completing the cycle
note: cycle used when computing the supertraits of `T` note: cycle used when computing the super traits of `T`
--> $DIR/issue-20772.rs:1:1 --> $DIR/issue-20772.rs:1:1
| |
LL | / trait T : Iterator<Item=Self::Item> LL | / trait T : Iterator<Item=Self::Item>

View file

@ -1,11 +1,11 @@
error[E0391]: cycle detected when computing the supertraits of `Processor` error[E0391]: cycle detected when computing the super traits of `Processor` with associated type name `Input`
--> $DIR/issue-20825.rs:5:1 --> $DIR/issue-20825.rs:5:1
| |
LL | pub trait Processor: Subscriber<Input = Self::Input> { LL | pub trait Processor: Subscriber<Input = Self::Input> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
= note: ...which again requires computing the supertraits of `Processor`, completing the cycle = note: ...which again requires computing the super traits of `Processor` with associated type name `Input`, completing the cycle
note: cycle used when computing the supertraits of `Processor` note: cycle used when computing the super traits of `Processor`
--> $DIR/issue-20825.rs:5:1 --> $DIR/issue-20825.rs:5:1
| |
LL | pub trait Processor: Subscriber<Input = Self::Input> { LL | pub trait Processor: Subscriber<Input = Self::Input> {