1
Fork 0

Fix duplicate error

This commit is contained in:
jackh726 2021-09-07 18:51:24 -04:00
parent af9de99f12
commit 890de33e4f
5 changed files with 7 additions and 27 deletions

View file

@ -55,6 +55,7 @@ impl<'a, 'tcx> NiceRegionError<'a, 'tcx> {
} = origin } = origin
{ {
self.emit_associated_type_err(span, item_name, impl_item_def_id, trait_item_def_id); self.emit_associated_type_err(span, item_name, impl_item_def_id, trait_item_def_id);
return Some(ErrorReported);
} }
} }
None None

View file

@ -16,7 +16,6 @@ impl<T> Foo for Fooy<T> {
//~^ ERROR the parameter type `T` may not live long enough //~^ ERROR the parameter type `T` may not live long enough
type B<'a, 'b> where 'b: 'a = (&'a(), &'b ()); type B<'a, 'b> where 'b: 'a = (&'a(), &'b ());
//~^ ERROR `impl` associated type //~^ ERROR `impl` associated type
//~| ERROR impl has stricter
//~| ERROR lifetime bound not satisfied //~| ERROR lifetime bound not satisfied
type C where Self: Copy = String; type C where Self: Copy = String;
//~^ ERROR the trait bound `T: Copy` is not satisfied //~^ ERROR the trait bound `T: Copy` is not satisfied

View file

@ -16,15 +16,6 @@ LL | type B<'a, 'b> where 'a: 'b;
LL | type B<'a, 'b> where 'b: 'a = (&'a(), &'b ()); LL | type B<'a, 'b> where 'b: 'a = (&'a(), &'b ());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ found | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ found
error[E0276]: impl has stricter requirements than trait
--> $DIR/impl_bounds.rs:17:5
|
LL | type B<'a, 'b> where 'a: 'b;
| ---------------------------- definition of `B` from trait
...
LL | type B<'a, 'b> where 'b: 'a = (&'a(), &'b ());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ impl has extra requirement `'b: 'a`
error[E0478]: lifetime bound not satisfied error[E0478]: lifetime bound not satisfied
--> $DIR/impl_bounds.rs:17:5 --> $DIR/impl_bounds.rs:17:5
| |
@ -43,7 +34,7 @@ LL | type B<'a, 'b> where 'b: 'a = (&'a(), &'b ());
| ^^ | ^^
error[E0277]: the trait bound `T: Copy` is not satisfied error[E0277]: the trait bound `T: Copy` is not satisfied
--> $DIR/impl_bounds.rs:21:5 --> $DIR/impl_bounds.rs:20:5
| |
LL | type C where Self: Copy = String; LL | type C where Self: Copy = String;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Copy` is not implemented for `T` | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Copy` is not implemented for `T`
@ -68,7 +59,7 @@ LL | impl<T: std::marker::Copy> Foo for Fooy<T> {
| +++++++++++++++++++ | +++++++++++++++++++
error[E0277]: the trait bound `T: Copy` is not satisfied error[E0277]: the trait bound `T: Copy` is not satisfied
--> $DIR/impl_bounds.rs:23:5 --> $DIR/impl_bounds.rs:22:5
| |
LL | fn d() where Self: Copy {} LL | fn d() where Self: Copy {}
| ^^^^^^^^^^^^^^^^^^^^^^^ the trait `Copy` is not implemented for `T` | ^^^^^^^^^^^^^^^^^^^^^^^ the trait `Copy` is not implemented for `T`
@ -92,7 +83,7 @@ help: consider restricting type parameter `T`
LL | impl<T: std::marker::Copy> Foo for Fooy<T> { LL | impl<T: std::marker::Copy> Foo for Fooy<T> {
| +++++++++++++++++++ | +++++++++++++++++++
error: aborting due to 6 previous errors error: aborting due to 5 previous errors
Some errors have detailed explanations: E0276, E0277, E0310, E0478. Some errors have detailed explanations: E0277, E0310, E0478.
For more information about an error, try `rustc --explain E0276`. For more information about an error, try `rustc --explain E0277`.

View file

@ -8,7 +8,6 @@ trait Foo {
impl Foo for () { impl Foo for () {
type Assoc<'a, 'b> where 'a: 'b = (); type Assoc<'a, 'b> where 'a: 'b = ();
//~^ `impl` associated type //~^ `impl` associated type
//~| impl has stricter
} }
fn main() {} fn main() {}

View file

@ -7,15 +7,5 @@ LL | type Assoc<'a, 'b>;
LL | type Assoc<'a, 'b> where 'a: 'b = (); LL | type Assoc<'a, 'b> where 'a: 'b = ();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ found | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ found
error[E0276]: impl has stricter requirements than trait error: aborting due to previous error
--> $DIR/missing-where-clause-on-trait.rs:9:5
|
LL | type Assoc<'a, 'b>;
| ------------------- definition of `Assoc` from trait
...
LL | type Assoc<'a, 'b> where 'a: 'b = ();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ impl has extra requirement `'a: 'b`
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0276`.