diff options
| author | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2017-08-08 14:12:06 +0200 |
|---|---|---|
| committer | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2017-08-08 21:17:33 +0200 |
| commit | aaa14d1d20f3cc1104bb619f66c78a49762182ff (patch) | |
| tree | 0234eaefb6dc2254217eb67d9e951ecd207149cf /src/test | |
| parent | d69cdca153ac34259a64189e9f77a5e5afadbcf4 (diff) | |
| download | rust-aaa14d1d20f3cc1104bb619f66c78a49762182ff.tar.gz rust-aaa14d1d20f3cc1104bb619f66c78a49762182ff.zip | |
Improve error message when duplicate names for type and trait method
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/ui/trait-method-private.rs | 30 | ||||
| -rw-r--r-- | src/test/ui/trait-method-private.stderr | 12 |
2 files changed, 42 insertions, 0 deletions
diff --git a/src/test/ui/trait-method-private.rs b/src/test/ui/trait-method-private.rs new file mode 100644 index 00000000000..5c1bd668ac6 --- /dev/null +++ b/src/test/ui/trait-method-private.rs @@ -0,0 +1,30 @@ +// Copyright 2017 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +mod inner { + pub trait Bar { + fn method(&self); + } + + pub struct Foo; + + impl Foo { + fn method(&self) {} + } + + impl Bar for Foo { + fn method(&self) {} + } +} + +fn main() { + let foo = inner::Foo; + foo.method(); +} diff --git a/src/test/ui/trait-method-private.stderr b/src/test/ui/trait-method-private.stderr new file mode 100644 index 00000000000..c7a7b689edc --- /dev/null +++ b/src/test/ui/trait-method-private.stderr @@ -0,0 +1,12 @@ +error[E0624]: method `method` is private + --> $DIR/trait-method-private.rs:29:9 + | +29 | foo.method(); + | ^^^^^^ + | + = help: items from traits can only be used if the trait is in scope + = note: the following trait is implemented but not in scope, perhaps add a `use` for it: + candidate #1: `use inner::Bar;` + +error: aborting due to previous error + |
