]> git.lizzy.rs Git - rust.git/commitdiff
Fix duplicate error
authorjackh726 <jack.huey@umassmed.edu>
Tue, 7 Sep 2021 22:51:24 +0000 (18:51 -0400)
committerjackh726 <jack.huey@umassmed.edu>
Tue, 7 Sep 2021 22:51:24 +0000 (18:51 -0400)
compiler/rustc_infer/src/infer/error_reporting/nice_region_error/trait_impl_difference.rs
src/test/ui/generic-associated-types/impl_bounds.rs
src/test/ui/generic-associated-types/impl_bounds.stderr
src/test/ui/generic-associated-types/missing-where-clause-on-trait.rs
src/test/ui/generic-associated-types/missing-where-clause-on-trait.stderr

index 4d789d230913679648560e835cc84ef47e456175..43aa8a6efcec4df5db4a056cbf43078244d0eafb 100644 (file)
@@ -55,6 +55,7 @@ pub(super) fn try_report_impl_not_conforming_to_trait(&self) -> Option<ErrorRepo
             } = origin
             {
                 self.emit_associated_type_err(span, item_name, impl_item_def_id, trait_item_def_id);
+                return Some(ErrorReported);
             }
         }
         None
index 2b52483d1d6a136604b061ac93f53e28e7c2084d..27c135cb7cf82abd5d9a41d7d61576ead8a8ab15 100644 (file)
@@ -16,7 +16,6 @@ impl<T> Foo for Fooy<T> {
     //~^ ERROR the parameter type `T` may not live long enough
     type B<'a, 'b> where 'b: 'a = (&'a(), &'b ());
     //~^ ERROR `impl` associated type
-    //~| ERROR impl has stricter
     //~| ERROR lifetime bound not satisfied
     type C where Self: Copy = String;
     //~^ ERROR the trait bound `T: Copy` is not satisfied
index 38c7ca7a1a195438d486cfa55db72f93deb6ebfa..73415e0faac88898b8a28fe0958b0154206150f4 100644 (file)
@@ -16,15 +16,6 @@ LL |     type B<'a, 'b> where 'a: 'b;
 LL |     type B<'a, 'b> where 'b: 'a = (&'a(), &'b ());
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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
   --> $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
-  --> $DIR/impl_bounds.rs:21:5
+  --> $DIR/impl_bounds.rs:20:5
    |
 LL |     type C where Self: Copy = String;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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
-  --> $DIR/impl_bounds.rs:23:5
+  --> $DIR/impl_bounds.rs:22:5
    |
 LL |     fn d() where Self: Copy {}
    |     ^^^^^^^^^^^^^^^^^^^^^^^ 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> {
    |       +++++++++++++++++++
 
-error: aborting due to 6 previous errors
+error: aborting due to 5 previous errors
 
-Some errors have detailed explanations: E0276, E0277, E0310, E0478.
-For more information about an error, try `rustc --explain E0276`.
+Some errors have detailed explanations: E0277, E0310, E0478.
+For more information about an error, try `rustc --explain E0277`.
index fa846516040f39ea4e3fda429587424ff9a23aa3..ad9f2e3e4ec4a8273d8248c7d7ec43c0d6b6e79c 100644 (file)
@@ -8,7 +8,6 @@ trait Foo {
 impl Foo for () {
     type Assoc<'a, 'b> where 'a: 'b = ();
     //~^ `impl` associated type
-    //~| impl has stricter
 }
 
 fn main() {}
index d58209950025625e6ae28f5e6a228fe72f7ad968..0e183c8d69a4c0e6a531ba034b7bddfef4036156 100644 (file)
@@ -7,15 +7,5 @@ LL |     type Assoc<'a, 'b>;
 LL |     type Assoc<'a, 'b> where 'a: 'b = ();
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ found
 
-error[E0276]: impl has stricter requirements than trait
-  --> $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
+error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0276`.