diff options
| author | bors <bors@rust-lang.org> | 2019-06-18 08:30:38 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2019-06-18 08:30:38 +0000 |
| commit | 03769411561f3d282bfeb0e86ca38d898f02cbdb (patch) | |
| tree | 6ff37ff3db9d51243a2783f5fcfcaa799b9100dd /src | |
| parent | a6a8f6c5b37597bf69178ee5cc6c185b7137f5d8 (diff) | |
| parent | 3d5ef11f1a64fe829e6e3306cdfc723eba1b0eab (diff) | |
| download | rust-03769411561f3d282bfeb0e86ca38d898f02cbdb.tar.gz rust-03769411561f3d282bfeb0e86ca38d898f02cbdb.zip | |
Auto merge of #61822 - JohnTitor:add-long-e0592, r=GuillaumeGomez,Centril
Add explanation for E0592 This is a part of #61137 r? @GuillaumeGomez
Diffstat (limited to 'src')
12 files changed, 46 insertions, 2 deletions
diff --git a/src/librustc_typeck/error_codes.rs b/src/librustc_typeck/error_codes.rs index b5b214d4aff..115ee0f72c9 100644 --- a/src/librustc_typeck/error_codes.rs +++ b/src/librustc_typeck/error_codes.rs @@ -3793,6 +3793,40 @@ details. [issue #33685]: https://github.com/rust-lang/rust/issues/33685 "##, +E0592: r##" +This error occurs when you defined methods or associated functions with same +name. + +Erroneous code example: + +```compile_fail,E0592 +struct Foo; + +impl Foo { + fn bar() {} // previous definition here +} + +impl Foo { + fn bar() {} // duplicate definition here +} +``` + +A similar error is E0201. The difference is whether there is one declaration +block or not. To avoid this error, you must give each `fn` a unique name. + +``` +struct Foo; + +impl Foo { + fn bar() {} +} + +impl Foo { + fn baz() {} // define with different name +} +``` +"##, + E0599: r##" This error occurs when a method is used on a type which doesn't implement it: @@ -4771,7 +4805,6 @@ register_diagnostics! { // but `{}` was found in the type `{}` E0587, // type has conflicting packed and align representation hints E0588, // packed type cannot transitively contain a `[repr(align)]` type - E0592, // duplicate definitions with name `{}` // E0611, // merged into E0616 // E0612, // merged into E0609 // E0613, // Removed (merged with E0609) diff --git a/src/test/ui/codemap_tests/coherence-overlapping-inherent-impl-trait.stderr b/src/test/ui/codemap_tests/coherence-overlapping-inherent-impl-trait.stderr index a97161b131d..a60be6f23c4 100644 --- a/src/test/ui/codemap_tests/coherence-overlapping-inherent-impl-trait.stderr +++ b/src/test/ui/codemap_tests/coherence-overlapping-inherent-impl-trait.stderr @@ -8,3 +8,4 @@ LL | impl dyn C { fn f() {} } error: aborting due to previous error +For more information about this error, try `rustc --explain E0592`. diff --git a/src/test/ui/codemap_tests/overlapping_inherent_impls.stderr b/src/test/ui/codemap_tests/overlapping_inherent_impls.stderr index b16d2849f19..70c1093e9ed 100644 --- a/src/test/ui/codemap_tests/overlapping_inherent_impls.stderr +++ b/src/test/ui/codemap_tests/overlapping_inherent_impls.stderr @@ -29,3 +29,4 @@ LL | fn baz(&self) {} error: aborting due to 3 previous errors +For more information about this error, try `rustc --explain E0592`. diff --git a/src/test/ui/coherence/coherence-overlap-downstream-inherent.old.stderr b/src/test/ui/coherence/coherence-overlap-downstream-inherent.old.stderr index 283d7a04d9b..dcfc017f1b0 100644 --- a/src/test/ui/coherence/coherence-overlap-downstream-inherent.old.stderr +++ b/src/test/ui/coherence/coherence-overlap-downstream-inherent.old.stderr @@ -20,3 +20,4 @@ LL | impl<X> A<i32, X> { fn f(&self) {} } error: aborting due to 2 previous errors +For more information about this error, try `rustc --explain E0592`. diff --git a/src/test/ui/coherence/coherence-overlap-downstream-inherent.re.stderr b/src/test/ui/coherence/coherence-overlap-downstream-inherent.re.stderr index 283d7a04d9b..dcfc017f1b0 100644 --- a/src/test/ui/coherence/coherence-overlap-downstream-inherent.re.stderr +++ b/src/test/ui/coherence/coherence-overlap-downstream-inherent.re.stderr @@ -20,3 +20,4 @@ LL | impl<X> A<i32, X> { fn f(&self) {} } error: aborting due to 2 previous errors +For more information about this error, try `rustc --explain E0592`. diff --git a/src/test/ui/coherence/coherence-overlap-issue-23516-inherent.old.stderr b/src/test/ui/coherence/coherence-overlap-issue-23516-inherent.old.stderr index 38df106cc88..6fd93077540 100644 --- a/src/test/ui/coherence/coherence-overlap-issue-23516-inherent.old.stderr +++ b/src/test/ui/coherence/coherence-overlap-issue-23516-inherent.old.stderr @@ -11,3 +11,4 @@ LL | impl<U:Sugar> Cake<Box<U>> { fn dummy(&self) { } } error: aborting due to previous error +For more information about this error, try `rustc --explain E0592`. diff --git a/src/test/ui/coherence/coherence-overlap-issue-23516-inherent.re.stderr b/src/test/ui/coherence/coherence-overlap-issue-23516-inherent.re.stderr index 38df106cc88..6fd93077540 100644 --- a/src/test/ui/coherence/coherence-overlap-issue-23516-inherent.re.stderr +++ b/src/test/ui/coherence/coherence-overlap-issue-23516-inherent.re.stderr @@ -11,3 +11,4 @@ LL | impl<U:Sugar> Cake<Box<U>> { fn dummy(&self) { } } error: aborting due to previous error +For more information about this error, try `rustc --explain E0592`. diff --git a/src/test/ui/coherence/coherence-overlap-upstream-inherent.old.stderr b/src/test/ui/coherence/coherence-overlap-upstream-inherent.old.stderr index 6716b71b25b..928b65e0039 100644 --- a/src/test/ui/coherence/coherence-overlap-upstream-inherent.old.stderr +++ b/src/test/ui/coherence/coherence-overlap-upstream-inherent.old.stderr @@ -11,3 +11,4 @@ LL | impl A<i16> { fn dummy(&self) { } } error: aborting due to previous error +For more information about this error, try `rustc --explain E0592`. diff --git a/src/test/ui/coherence/coherence-overlap-upstream-inherent.re.stderr b/src/test/ui/coherence/coherence-overlap-upstream-inherent.re.stderr index 6716b71b25b..928b65e0039 100644 --- a/src/test/ui/coherence/coherence-overlap-upstream-inherent.re.stderr +++ b/src/test/ui/coherence/coherence-overlap-upstream-inherent.re.stderr @@ -11,3 +11,4 @@ LL | impl A<i16> { fn dummy(&self) { } } error: aborting due to previous error +For more information about this error, try `rustc --explain E0592`. diff --git a/src/test/ui/issues/issue-33140.stderr b/src/test/ui/issues/issue-33140.stderr index dae9e02633d..6c3ba63e6f6 100644 --- a/src/test/ui/issues/issue-33140.stderr +++ b/src/test/ui/issues/issue-33140.stderr @@ -31,4 +31,5 @@ LL | | } error: aborting due to 3 previous errors -For more information about this error, try `rustc --explain E0119`. +Some errors have detailed explanations: E0119, E0592. +For more information about an error, try `rustc --explain E0119`. diff --git a/src/test/ui/specialization/specialization-overlap-hygiene.stderr b/src/test/ui/specialization/specialization-overlap-hygiene.stderr index ed99aa3102d..6adf16de462 100644 --- a/src/test/ui/specialization/specialization-overlap-hygiene.stderr +++ b/src/test/ui/specialization/specialization-overlap-hygiene.stderr @@ -9,3 +9,4 @@ LL | fn f() {} error: aborting due to previous error +For more information about this error, try `rustc --explain E0592`. diff --git a/src/test/ui/traits/trait-object-auto-dedup-in-impl.stderr b/src/test/ui/traits/trait-object-auto-dedup-in-impl.stderr index 9cf39584a8c..2570db0212a 100644 --- a/src/test/ui/traits/trait-object-auto-dedup-in-impl.stderr +++ b/src/test/ui/traits/trait-object-auto-dedup-in-impl.stderr @@ -9,3 +9,4 @@ LL | fn test(&self) { println!("two"); } error: aborting due to previous error +For more information about this error, try `rustc --explain E0592`. |
