diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2021-03-18 03:02:44 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2021-03-18 03:02:44 +0300 |
| commit | b48530bf8b30c20a75f5bb7c2021a28c0ae40413 (patch) | |
| tree | db152e7a46d3af4eb0cf74a4161ffdce0121ca5e /src/test | |
| parent | 38ed36bba4669a3a6737d1f973789a459b8530b2 (diff) | |
| download | rust-b48530bf8b30c20a75f5bb7c2021a28c0ae40413.tar.gz rust-b48530bf8b30c20a75f5bb7c2021a28c0ae40413.zip | |
Report missing cases of `bare_trait_objects`
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/ui/lint/bare-trait-objects-path.rs | 18 | ||||
| -rw-r--r-- | src/test/ui/lint/bare-trait-objects-path.stderr | 29 |
2 files changed, 47 insertions, 0 deletions
diff --git a/src/test/ui/lint/bare-trait-objects-path.rs b/src/test/ui/lint/bare-trait-objects-path.rs new file mode 100644 index 00000000000..4c961e998df --- /dev/null +++ b/src/test/ui/lint/bare-trait-objects-path.rs @@ -0,0 +1,18 @@ +#![feature(associated_type_defaults)] + +trait Assoc { + fn func() {} + const CONST: u8 = 0; + type Ty = u8; +} + +trait Dyn {} + +impl Assoc for dyn Dyn {} + +fn main() { + Dyn::func(); //~ WARN trait objects without an explicit `dyn` are deprecated + ::Dyn::func(); //~ WARN trait objects without an explicit `dyn` are deprecated + Dyn::CONST; //~ WARN trait objects without an explicit `dyn` are deprecated + let _: Dyn::Ty; //~ ERROR ambiguous associated type +} diff --git a/src/test/ui/lint/bare-trait-objects-path.stderr b/src/test/ui/lint/bare-trait-objects-path.stderr new file mode 100644 index 00000000000..0a2dc585828 --- /dev/null +++ b/src/test/ui/lint/bare-trait-objects-path.stderr @@ -0,0 +1,29 @@ +error[E0223]: ambiguous associated type + --> $DIR/bare-trait-objects-path.rs:17:12 + | +LL | let _: Dyn::Ty; + | ^^^^^^^ help: use fully-qualified syntax: `<dyn Dyn as Trait>::Ty` + +warning: trait objects without an explicit `dyn` are deprecated + --> $DIR/bare-trait-objects-path.rs:14:5 + | +LL | Dyn::func(); + | ^^^ help: use `dyn`: `<dyn Dyn>` + | + = note: `#[warn(bare_trait_objects)]` on by default + +warning: trait objects without an explicit `dyn` are deprecated + --> $DIR/bare-trait-objects-path.rs:15:5 + | +LL | ::Dyn::func(); + | ^^^^^ help: use `dyn`: `<dyn (::Dyn)>` + +warning: trait objects without an explicit `dyn` are deprecated + --> $DIR/bare-trait-objects-path.rs:16:5 + | +LL | Dyn::CONST; + | ^^^ help: use `dyn`: `<dyn Dyn>` + +error: aborting due to previous error; 3 warnings emitted + +For more information about this error, try `rustc --explain E0223`. |
