Closed
Description
When executing parallel blocks we'll reveal more error messages because we don't immediately stop at the first fatal one. This may lead to duplicate error messages however. For example src/test/ui/issues/issue-21946.rs
the from test suite:
trait Foo {
type A;
}
struct FooStruct;
impl Foo for FooStruct {
//~^ ERROR overflow evaluating the requirement `<FooStruct as Foo>::A`
type A = <FooStruct as Foo>::A;
//~^ ERROR overflow evaluating the requirement `<FooStruct as Foo>::A`
}
fn main() {}
Produces:
error[E0275]: overflow evaluating the requirement `<FooStruct as Foo>::A`
--> $DIR/issue-21946.rs:7:6
|
LL | impl Foo for FooStruct {
| ^^^
error[E0275]: overflow evaluating the requirement `<FooStruct as Foo>::A`
--> $DIR/issue-21946.rs:9:5
|
LL | type A = <FooStruct as Foo>::A;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0275`.
We should look into deduplicating these error messages.