diff options
| -rw-r--r-- | src/librustc_typeck/collect.rs | 2 | ||||
| -rw-r--r-- | src/librustc_typeck/diagnostics.rs | 20 | ||||
| -rw-r--r-- | src/test/compile-fail/impl-duplicate-methods.rs | 2 | ||||
| -rw-r--r-- | src/test/compile-fail/issue-4265.rs | 2 | ||||
| -rw-r--r-- | src/test/compile-fail/issue-8153.rs | 2 | ||||
| -rw-r--r-- | src/test/compile-fail/method-macro-backtrace.rs | 2 |
6 files changed, 20 insertions, 10 deletions
diff --git a/src/librustc_typeck/collect.rs b/src/librustc_typeck/collect.rs index 4ef17105923..41b3be46c0d 100644 --- a/src/librustc_typeck/collect.rs +++ b/src/librustc_typeck/collect.rs @@ -752,7 +752,7 @@ fn convert_methods<'a,'tcx,'i,I>(ccx: &CrateCtxt<'a, 'tcx>, let mut seen_methods = FnvHashSet(); for (sig, id, ident, vis, span) in methods { if !seen_methods.insert(ident.name) { - span_err!(tcx.sess, span, E0201, "duplicate method"); + span_err!(tcx.sess, span, E0201, "duplicate associated function"); } convert_method(ccx, diff --git a/src/librustc_typeck/diagnostics.rs b/src/librustc_typeck/diagnostics.rs index c822a7faa19..aa3af2cc5fb 100644 --- a/src/librustc_typeck/diagnostics.rs +++ b/src/librustc_typeck/diagnostics.rs @@ -880,19 +880,29 @@ unsafe impl Bar for Foo { } "##, E0201: r##" -It is an error to define a method--a trait method or an inherent method--more -than once. +It is an error to define an associated function more than once. -For example, +For example: ``` struct Foo(u8); impl Foo { + fn bar(&self) -> bool { self.0 > 5 } + + // error: duplicate associated function fn bar() {} +} - // error: duplicate method - fn bar(&self) -> bool { self.0 > 5 } +trait Baz { + fn baz(&self) -> bool; +} + +impl Baz for Foo { + fn baz(&self) -> bool { true } + + // error: duplicate associated function + fn baz(&self) -> bool { self.0 > 5 } } ``` "##, diff --git a/src/test/compile-fail/impl-duplicate-methods.rs b/src/test/compile-fail/impl-duplicate-methods.rs index 3b4def8c508..f2e4eb1d253 100644 --- a/src/test/compile-fail/impl-duplicate-methods.rs +++ b/src/test/compile-fail/impl-duplicate-methods.rs @@ -11,7 +11,7 @@ struct Foo; impl Foo { fn orange(&self){} - fn orange(&self){} //~ ERROR error: duplicate method + fn orange(&self){} //~ ERROR duplicate associated function } fn main() {} diff --git a/src/test/compile-fail/issue-4265.rs b/src/test/compile-fail/issue-4265.rs index 553436607d1..328de9f8187 100644 --- a/src/test/compile-fail/issue-4265.rs +++ b/src/test/compile-fail/issue-4265.rs @@ -17,7 +17,7 @@ impl Foo { Foo { baz: 0 }.bar(); } - fn bar() { //~ ERROR duplicate method + fn bar() { //~ ERROR duplicate associated function } } diff --git a/src/test/compile-fail/issue-8153.rs b/src/test/compile-fail/issue-8153.rs index ea7224939ce..cce451498ac 100644 --- a/src/test/compile-fail/issue-8153.rs +++ b/src/test/compile-fail/issue-8153.rs @@ -18,7 +18,7 @@ trait Bar { impl Bar for Foo { fn bar(&self) -> isize {1} - fn bar(&self) -> isize {2} //~ ERROR duplicate method + fn bar(&self) -> isize {2} //~ ERROR duplicate associated function } fn main() { diff --git a/src/test/compile-fail/method-macro-backtrace.rs b/src/test/compile-fail/method-macro-backtrace.rs index c9ef2df8e13..5a12c8e0bbe 100644 --- a/src/test/compile-fail/method-macro-backtrace.rs +++ b/src/test/compile-fail/method-macro-backtrace.rs @@ -29,7 +29,7 @@ impl S { // Cause an error. It shouldn't have any macro backtrace frames. fn bar(&self) { } - fn bar(&self) { } //~ ERROR duplicate method + fn bar(&self) { } //~ ERROR duplicate associated function } fn main() { } |
