Skip to content

Commit

Permalink
adjust super_predicates_that_define_assoc_type query description
Browse files Browse the repository at this point in the history
  • Loading branch information
spastorino committed Nov 27, 2020
1 parent 6ab8fe2 commit b916ac6
Show file tree
Hide file tree
Showing 8 changed files with 24 additions and 19 deletions.
5 changes: 4 additions & 1 deletion compiler/rustc_middle/src/query/mod.rs
Expand Up @@ -449,7 +449,10 @@ rustc_queries! {
/// full predicates are available (note that supertraits have
/// additional acyclicity requirements).
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
Expand Down
@@ -1,10 +1,12 @@
// ignore-tidy-linelength

trait Foo {
type Item;
}
trait Bar<T> {
type 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() {}
@@ -1,12 +1,12 @@
error[E0391]: cycle detected when computing the supertraits of `Baz`
--> $DIR/ambiguous-associated-type2.rs:7:1
error[E0391]: cycle detected when computing the super traits of `Baz` with associated type name `Item`
--> $DIR/ambiguous-associated-type2.rs:9:1
|
LL | trait Baz: Foo + Bar<Self::Item> {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: ...which again requires computing the supertraits of `Baz`, completing the cycle
note: cycle used when computing the supertraits of `Baz`
--> $DIR/ambiguous-associated-type2.rs:7:1
= note: ...which again requires computing the super traits of `Baz` with associated type name `Item`, completing the cycle
note: cycle used when computing the super traits of `Baz`
--> $DIR/ambiguous-associated-type2.rs:9:1
|
LL | trait Baz: Foo + Bar<Self::Item> {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Expand Down
Expand Up @@ -4,7 +4,7 @@ error[E0391]: cycle detected when computing the super predicates of `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
|
LL | trait Chromosome: Chromosome {
Expand Down
Expand Up @@ -4,7 +4,7 @@ error[E0391]: cycle detected when computing the super predicates of `B`
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
|
LL | trait B: C {
Expand All @@ -14,13 +14,13 @@ note: ...which requires computing the super predicates of `C`...
|
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
|
LL | trait C: B { }
| ^
= 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
|
LL | trait A: B {
Expand Down
4 changes: 2 additions & 2 deletions src/test/ui/issues/issue-12511.stderr
Expand Up @@ -4,7 +4,7 @@ error[E0391]: cycle detected when computing the super predicates of `T1`
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
|
LL | trait T1 : T2 {
Expand All @@ -14,7 +14,7 @@ note: ...which requires computing the super predicates of `T2`...
|
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
|
LL | trait T2 : T1 {
Expand Down
6 changes: 3 additions & 3 deletions src/test/ui/issues/issue-20772.stderr
@@ -1,13 +1,13 @@
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
|
LL | / trait T : Iterator<Item=Self::Item>
LL | |
LL | | {}
| |__^
|
= note: ...which again requires computing the supertraits of `T`, completing the cycle
note: cycle used when computing the supertraits of `T`
= note: ...which again requires computing the super traits of `T` with associated type name `Item`, completing the cycle
note: cycle used when computing the super traits of `T`
--> $DIR/issue-20772.rs:1:1
|
LL | / trait T : Iterator<Item=Self::Item>
Expand Down
6 changes: 3 additions & 3 deletions src/test/ui/issues/issue-20825.stderr
@@ -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
|
LL | pub trait Processor: Subscriber<Input = Self::Input> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: ...which again requires computing the supertraits of `Processor`, completing the cycle
note: cycle used when computing the supertraits of `Processor`
= note: ...which again requires computing the super traits of `Processor` with associated type name `Input`, completing the cycle
note: cycle used when computing the super traits of `Processor`
--> $DIR/issue-20825.rs:5:1
|
LL | pub trait Processor: Subscriber<Input = Self::Input> {
Expand Down

0 comments on commit b916ac6

Please sign in to comment.