1
Fork 0

Address PR feedback

This commit is contained in:
Ryan Levick 2021-06-16 14:27:44 +02:00
parent 23176f60e7
commit 7b3940f44b
89 changed files with 307 additions and 315 deletions

View file

@ -39,7 +39,6 @@ declare_lint! {
@future_incompatible = FutureIncompatibleInfo { @future_incompatible = FutureIncompatibleInfo {
reference: "issue #66145 <https://github.com/rust-lang/rust/issues/66145>", reference: "issue #66145 <https://github.com/rust-lang/rust/issues/66145>",
reason: FutureIncompatibilityReason::EditionSemanticsChange(Edition::Edition2021), reason: FutureIncompatibilityReason::EditionSemanticsChange(Edition::Edition2021),
custom_explanation: Some("This will continue to compile in Rust 2021 but it will behave slightly differently!")
}; };
} }

View file

@ -149,16 +149,14 @@ pub struct FutureIncompatibleInfo {
/// be emitted in JSON messages to be displayed by Cargo /// be emitted in JSON messages to be displayed by Cargo
/// for upstream deps /// for upstream deps
pub future_breakage: Option<FutureBreakage>, pub future_breakage: Option<FutureBreakage>,
/// Provide a custom explanation message for diagnostics
/// if the default explanation message is not appropriate
pub custom_explanation: Option<&'static str>,
} }
/// The reason for future incompatibility /// The reason for future incompatibility
#[derive(Copy, Clone, Debug)] #[derive(Copy, Clone, Debug)]
pub enum FutureIncompatibilityReason { pub enum FutureIncompatibilityReason {
/// We're fixing a bug which will impact all editions /// This will be an error in a future release
BugFix, /// for all editions
FutureReleaseError,
/// Previously accepted code that will become an /// Previously accepted code that will become an
/// error in the provided edition /// error in the provided edition
EditionError(Edition), EditionError(Edition),
@ -186,9 +184,8 @@ impl FutureIncompatibleInfo {
pub const fn default_fields_for_macro() -> Self { pub const fn default_fields_for_macro() -> Self {
FutureIncompatibleInfo { FutureIncompatibleInfo {
reference: "", reference: "",
reason: FutureIncompatibilityReason::BugFix, reason: FutureIncompatibilityReason::FutureReleaseError,
future_breakage: None, future_breakage: None,
custom_explanation: None,
} }
} }
} }

View file

@ -386,7 +386,7 @@ pub fn struct_lint_level<'s, 'd>(
{ {
let current_edition = sess.edition(); let current_edition = sess.edition();
format!( format!(
"this is valid in the current edition (Rust {}) but is not accepted in the Rust {} edition!", "this is accepted in the current edition (Rust {}) but is a hard error in Rust {}!",
current_edition, edition current_edition, edition
) )
} else if let FutureIncompatibilityReason::EditionSemanticsChange(edition) = } else if let FutureIncompatibilityReason::EditionSemanticsChange(edition) =

View file

@ -7,13 +7,13 @@
trait T { trait T {
fn foo(_: i32); //~ WARNING anonymous parameters are deprecated fn foo(_: i32); //~ WARNING anonymous parameters are deprecated
//~| WARNING this is valid in the current edition //~| WARNING this is accepted in the current edition
fn bar_with_default_impl(_: String, _: String) {} fn bar_with_default_impl(_: String, _: String) {}
//~^ WARNING anonymous parameters are deprecated //~^ WARNING anonymous parameters are deprecated
//~| WARNING this is valid in the current edition //~| WARNING this is accepted in the current edition
//~| WARNING anonymous parameters are deprecated //~| WARNING anonymous parameters are deprecated
//~| WARNING this is valid in the current edition //~| WARNING this is accepted in the current edition
} }
fn main() {} fn main() {}

View file

@ -7,13 +7,13 @@
trait T { trait T {
fn foo(i32); //~ WARNING anonymous parameters are deprecated fn foo(i32); //~ WARNING anonymous parameters are deprecated
//~| WARNING this is valid in the current edition //~| WARNING this is accepted in the current edition
fn bar_with_default_impl(String, String) {} fn bar_with_default_impl(String, String) {}
//~^ WARNING anonymous parameters are deprecated //~^ WARNING anonymous parameters are deprecated
//~| WARNING this is valid in the current edition //~| WARNING this is accepted in the current edition
//~| WARNING anonymous parameters are deprecated //~| WARNING anonymous parameters are deprecated
//~| WARNING this is valid in the current edition //~| WARNING this is accepted in the current edition
} }
fn main() {} fn main() {}

View file

@ -9,7 +9,7 @@ note: the lint level is defined here
| |
LL | #![warn(anonymous_parameters)] LL | #![warn(anonymous_parameters)]
| ^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686> = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
warning: anonymous parameters are deprecated and will be removed in the next edition. warning: anonymous parameters are deprecated and will be removed in the next edition.
@ -18,7 +18,7 @@ warning: anonymous parameters are deprecated and will be removed in the next edi
LL | fn bar_with_default_impl(String, String) {} LL | fn bar_with_default_impl(String, String) {}
| ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: String` | ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: String`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686> = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
warning: anonymous parameters are deprecated and will be removed in the next edition. warning: anonymous parameters are deprecated and will be removed in the next edition.
@ -27,7 +27,7 @@ warning: anonymous parameters are deprecated and will be removed in the next edi
LL | fn bar_with_default_impl(String, String) {} LL | fn bar_with_default_impl(String, String) {}
| ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: String` | ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: String`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686> = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
warning: 3 warnings emitted warning: 3 warnings emitted

View file

@ -3,36 +3,36 @@
mod outer_mod { mod outer_mod {
pub mod await { //~ ERROR `await` is a keyword in the 2018 edition pub mod await { //~ ERROR `await` is a keyword in the 2018 edition
//~^ WARN this is valid in the current edition //~^ WARN this is accepted in the current edition
pub struct await; //~ ERROR `await` is a keyword in the 2018 edition pub struct await; //~ ERROR `await` is a keyword in the 2018 edition
//~^ WARN this is valid in the current edition //~^ WARN this is accepted in the current edition
} }
} }
use outer_mod::await::await; //~ ERROR `await` is a keyword in the 2018 edition use outer_mod::await::await; //~ ERROR `await` is a keyword in the 2018 edition
//~^ ERROR `await` is a keyword in the 2018 edition //~^ ERROR `await` is a keyword in the 2018 edition
//~^^ WARN this is valid in the current edition //~^^ WARN this is accepted in the current edition
//~^^^ WARN this is valid in the current edition //~^^^ WARN this is accepted in the current edition
struct Foo { await: () } struct Foo { await: () }
//~^ ERROR `await` is a keyword in the 2018 edition //~^ ERROR `await` is a keyword in the 2018 edition
//~^^ WARN this is valid in the current edition //~^^ WARN this is accepted in the current edition
impl Foo { fn await() {} } impl Foo { fn await() {} }
//~^ ERROR `await` is a keyword in the 2018 edition //~^ ERROR `await` is a keyword in the 2018 edition
//~^^ WARN this is valid in the current edition //~^^ WARN this is accepted in the current edition
macro_rules! await { macro_rules! await {
//~^ ERROR `await` is a keyword in the 2018 edition //~^ ERROR `await` is a keyword in the 2018 edition
//~^^ WARN this is valid in the current edition //~^^ WARN this is accepted in the current edition
() => {} () => {}
} }
fn main() { fn main() {
await!(); //~ ERROR `await` is a keyword in the 2018 edition await!(); //~ ERROR `await` is a keyword in the 2018 edition
//~^ WARN this is valid in the current edition //~^ WARN this is accepted in the current edition
match await { await => {} } //~ ERROR `await` is a keyword in the 2018 edition match await { await => {} } //~ ERROR `await` is a keyword in the 2018 edition
//~^ ERROR `await` is a keyword in the 2018 edition //~^ ERROR `await` is a keyword in the 2018 edition
//~^^ WARN this is valid in the current edition //~^^ WARN this is accepted in the current edition
//~^^^ WARN this is valid in the current edition //~^^^ WARN this is accepted in the current edition
} }

View file

@ -9,7 +9,7 @@ note: the lint level is defined here
| |
LL | #![deny(keyword_idents)] LL | #![deny(keyword_idents)]
| ^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `await` is a keyword in the 2018 edition error: `await` is a keyword in the 2018 edition
@ -18,7 +18,7 @@ error: `await` is a keyword in the 2018 edition
LL | pub struct await; LL | pub struct await;
| ^^^^^ help: you can use a raw identifier to stay compatible: `r#await` | ^^^^^ help: you can use a raw identifier to stay compatible: `r#await`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `await` is a keyword in the 2018 edition error: `await` is a keyword in the 2018 edition
@ -27,7 +27,7 @@ error: `await` is a keyword in the 2018 edition
LL | use outer_mod::await::await; LL | use outer_mod::await::await;
| ^^^^^ help: you can use a raw identifier to stay compatible: `r#await` | ^^^^^ help: you can use a raw identifier to stay compatible: `r#await`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `await` is a keyword in the 2018 edition error: `await` is a keyword in the 2018 edition
@ -36,7 +36,7 @@ error: `await` is a keyword in the 2018 edition
LL | use outer_mod::await::await; LL | use outer_mod::await::await;
| ^^^^^ help: you can use a raw identifier to stay compatible: `r#await` | ^^^^^ help: you can use a raw identifier to stay compatible: `r#await`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `await` is a keyword in the 2018 edition error: `await` is a keyword in the 2018 edition
@ -45,7 +45,7 @@ error: `await` is a keyword in the 2018 edition
LL | struct Foo { await: () } LL | struct Foo { await: () }
| ^^^^^ help: you can use a raw identifier to stay compatible: `r#await` | ^^^^^ help: you can use a raw identifier to stay compatible: `r#await`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `await` is a keyword in the 2018 edition error: `await` is a keyword in the 2018 edition
@ -54,7 +54,7 @@ error: `await` is a keyword in the 2018 edition
LL | impl Foo { fn await() {} } LL | impl Foo { fn await() {} }
| ^^^^^ help: you can use a raw identifier to stay compatible: `r#await` | ^^^^^ help: you can use a raw identifier to stay compatible: `r#await`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `await` is a keyword in the 2018 edition error: `await` is a keyword in the 2018 edition
@ -63,7 +63,7 @@ error: `await` is a keyword in the 2018 edition
LL | macro_rules! await { LL | macro_rules! await {
| ^^^^^ help: you can use a raw identifier to stay compatible: `r#await` | ^^^^^ help: you can use a raw identifier to stay compatible: `r#await`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `await` is a keyword in the 2018 edition error: `await` is a keyword in the 2018 edition
@ -72,7 +72,7 @@ error: `await` is a keyword in the 2018 edition
LL | await!(); LL | await!();
| ^^^^^ help: you can use a raw identifier to stay compatible: `r#await` | ^^^^^ help: you can use a raw identifier to stay compatible: `r#await`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `await` is a keyword in the 2018 edition error: `await` is a keyword in the 2018 edition
@ -81,7 +81,7 @@ error: `await` is a keyword in the 2018 edition
LL | match await { await => {} } LL | match await { await => {} }
| ^^^^^ help: you can use a raw identifier to stay compatible: `r#await` | ^^^^^ help: you can use a raw identifier to stay compatible: `r#await`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `await` is a keyword in the 2018 edition error: `await` is a keyword in the 2018 edition
@ -90,7 +90,7 @@ error: `await` is a keyword in the 2018 edition
LL | match await { await => {} } LL | match await { await => {} }
| ^^^^^ help: you can use a raw identifier to stay compatible: `r#await` | ^^^^^ help: you can use a raw identifier to stay compatible: `r#await`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: aborting due to 10 previous errors error: aborting due to 10 previous errors

View file

@ -6,22 +6,22 @@
mod outer_mod { mod outer_mod {
pub mod r#await { pub mod r#await {
//~^ ERROR `await` is a keyword //~^ ERROR `await` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
pub struct r#await; pub struct r#await;
//~^ ERROR `await` is a keyword //~^ ERROR `await` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }
} }
use outer_mod::r#await::r#await; use outer_mod::r#await::r#await;
//~^ ERROR `await` is a keyword //~^ ERROR `await` is a keyword
//~| ERROR `await` is a keyword //~| ERROR `await` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
fn main() { fn main() {
match r#await { r#await => {} } match r#await { r#await => {} }
//~^ ERROR `await` is a keyword //~^ ERROR `await` is a keyword
//~| ERROR `await` is a keyword //~| ERROR `await` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }

View file

@ -6,22 +6,22 @@
mod outer_mod { mod outer_mod {
pub mod await { pub mod await {
//~^ ERROR `await` is a keyword //~^ ERROR `await` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
pub struct await; pub struct await;
//~^ ERROR `await` is a keyword //~^ ERROR `await` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }
} }
use outer_mod::await::await; use outer_mod::await::await;
//~^ ERROR `await` is a keyword //~^ ERROR `await` is a keyword
//~| ERROR `await` is a keyword //~| ERROR `await` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
fn main() { fn main() {
match await { await => {} } match await { await => {} }
//~^ ERROR `await` is a keyword //~^ ERROR `await` is a keyword
//~| ERROR `await` is a keyword //~| ERROR `await` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }

View file

@ -9,7 +9,7 @@ note: the lint level is defined here
| |
LL | #![deny(keyword_idents)] LL | #![deny(keyword_idents)]
| ^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `await` is a keyword in the 2018 edition error: `await` is a keyword in the 2018 edition
@ -18,7 +18,7 @@ error: `await` is a keyword in the 2018 edition
LL | pub struct await; LL | pub struct await;
| ^^^^^ help: you can use a raw identifier to stay compatible: `r#await` | ^^^^^ help: you can use a raw identifier to stay compatible: `r#await`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `await` is a keyword in the 2018 edition error: `await` is a keyword in the 2018 edition
@ -27,7 +27,7 @@ error: `await` is a keyword in the 2018 edition
LL | use outer_mod::await::await; LL | use outer_mod::await::await;
| ^^^^^ help: you can use a raw identifier to stay compatible: `r#await` | ^^^^^ help: you can use a raw identifier to stay compatible: `r#await`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `await` is a keyword in the 2018 edition error: `await` is a keyword in the 2018 edition
@ -36,7 +36,7 @@ error: `await` is a keyword in the 2018 edition
LL | use outer_mod::await::await; LL | use outer_mod::await::await;
| ^^^^^ help: you can use a raw identifier to stay compatible: `r#await` | ^^^^^ help: you can use a raw identifier to stay compatible: `r#await`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `await` is a keyword in the 2018 edition error: `await` is a keyword in the 2018 edition
@ -45,7 +45,7 @@ error: `await` is a keyword in the 2018 edition
LL | match await { await => {} } LL | match await { await => {} }
| ^^^^^ help: you can use a raw identifier to stay compatible: `r#await` | ^^^^^ help: you can use a raw identifier to stay compatible: `r#await`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `await` is a keyword in the 2018 edition error: `await` is a keyword in the 2018 edition
@ -54,7 +54,7 @@ error: `await` is a keyword in the 2018 edition
LL | match await { await => {} } LL | match await { await => {} }
| ^^^^^ help: you can use a raw identifier to stay compatible: `r#await` | ^^^^^ help: you can use a raw identifier to stay compatible: `r#await`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: aborting due to 6 previous errors error: aborting due to 6 previous errors

View file

@ -13,7 +13,7 @@ fn b() {
//~| ERROR expected trait, found constant `BAR` //~| ERROR expected trait, found constant `BAR`
//~| ERROR type provided when a constant was expected //~| ERROR type provided when a constant was expected
//~| WARN trait objects without an explicit `dyn` are deprecated //~| WARN trait objects without an explicit `dyn` are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }
fn c() { fn c() {
foo::<3 + 3>(); //~ ERROR expressions must be enclosed in braces foo::<3 + 3>(); //~ ERROR expressions must be enclosed in braces

View file

@ -138,7 +138,7 @@ LL | foo::<BAR + BAR>();
| ^^^^^^^^^ help: use `dyn`: `dyn BAR + BAR` | ^^^^^^^^^ help: use `dyn`: `dyn BAR + BAR`
| |
= note: `#[warn(bare_trait_objects)]` on by default = note: `#[warn(bare_trait_objects)]` on by default
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
error[E0747]: type provided when a constant was expected error[E0747]: type provided when a constant was expected

View file

@ -13,27 +13,27 @@
mod outer_mod { mod outer_mod {
pub mod r#dyn { pub mod r#dyn {
//~^ ERROR `dyn` is a keyword //~^ ERROR `dyn` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
pub struct r#dyn; pub struct r#dyn;
//~^ ERROR `dyn` is a keyword //~^ ERROR `dyn` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }
} }
use outer_mod::r#dyn::r#dyn; use outer_mod::r#dyn::r#dyn;
//~^ ERROR `dyn` is a keyword //~^ ERROR `dyn` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
//~| ERROR `dyn` is a keyword //~| ERROR `dyn` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
fn main() { fn main() {
match r#dyn { r#dyn => {} } match r#dyn { r#dyn => {} }
//~^ ERROR `dyn` is a keyword //~^ ERROR `dyn` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
//~| ERROR `dyn` is a keyword //~| ERROR `dyn` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
macro_defn::r#dyn(); macro_defn::r#dyn();
//~^ ERROR `dyn` is a keyword //~^ ERROR `dyn` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
macro_defn::boxed(); macro_defn::boxed();
} }
@ -43,7 +43,7 @@ mod macro_defn {
macro_rules! r#dyn { macro_rules! r#dyn {
//~^ ERROR `dyn` is a keyword //~^ ERROR `dyn` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
// Note that we do not lint nor fix occurrences under macros // Note that we do not lint nor fix occurrences under macros
($dyn:tt) => { (Box<dyn Trait>, Box<$dyn Trait>) } ($dyn:tt) => { (Box<dyn Trait>, Box<$dyn Trait>) }
@ -51,23 +51,23 @@ mod macro_defn {
pub fn r#dyn() -> ::outer_mod::r#dyn::r#dyn { pub fn r#dyn() -> ::outer_mod::r#dyn::r#dyn {
//~^ ERROR `dyn` is a keyword //~^ ERROR `dyn` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
//~| ERROR `dyn` is a keyword //~| ERROR `dyn` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
//~| ERROR `dyn` is a keyword //~| ERROR `dyn` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
::outer_mod::r#dyn::r#dyn ::outer_mod::r#dyn::r#dyn
//~^ ERROR `dyn` is a keyword //~^ ERROR `dyn` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
//~| ERROR `dyn` is a keyword //~| ERROR `dyn` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }
pub fn boxed() -> r#dyn!( pub fn boxed() -> r#dyn!(
//~^ ERROR `dyn` is a keyword //~^ ERROR `dyn` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
// Note that we do not lint nor fix occurrences under macros // Note that we do not lint nor fix occurrences under macros
dyn dyn

View file

@ -13,27 +13,27 @@
mod outer_mod { mod outer_mod {
pub mod dyn { pub mod dyn {
//~^ ERROR `dyn` is a keyword //~^ ERROR `dyn` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
pub struct dyn; pub struct dyn;
//~^ ERROR `dyn` is a keyword //~^ ERROR `dyn` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }
} }
use outer_mod::dyn::dyn; use outer_mod::dyn::dyn;
//~^ ERROR `dyn` is a keyword //~^ ERROR `dyn` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
//~| ERROR `dyn` is a keyword //~| ERROR `dyn` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
fn main() { fn main() {
match dyn { dyn => {} } match dyn { dyn => {} }
//~^ ERROR `dyn` is a keyword //~^ ERROR `dyn` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
//~| ERROR `dyn` is a keyword //~| ERROR `dyn` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
macro_defn::dyn(); macro_defn::dyn();
//~^ ERROR `dyn` is a keyword //~^ ERROR `dyn` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
macro_defn::boxed(); macro_defn::boxed();
} }
@ -43,7 +43,7 @@ mod macro_defn {
macro_rules! dyn { macro_rules! dyn {
//~^ ERROR `dyn` is a keyword //~^ ERROR `dyn` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
// Note that we do not lint nor fix occurrences under macros // Note that we do not lint nor fix occurrences under macros
($dyn:tt) => { (Box<dyn Trait>, Box<$dyn Trait>) } ($dyn:tt) => { (Box<dyn Trait>, Box<$dyn Trait>) }
@ -51,23 +51,23 @@ mod macro_defn {
pub fn dyn() -> ::outer_mod::dyn::dyn { pub fn dyn() -> ::outer_mod::dyn::dyn {
//~^ ERROR `dyn` is a keyword //~^ ERROR `dyn` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
//~| ERROR `dyn` is a keyword //~| ERROR `dyn` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
//~| ERROR `dyn` is a keyword //~| ERROR `dyn` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
::outer_mod::dyn::dyn ::outer_mod::dyn::dyn
//~^ ERROR `dyn` is a keyword //~^ ERROR `dyn` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
//~| ERROR `dyn` is a keyword //~| ERROR `dyn` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }
pub fn boxed() -> dyn!( pub fn boxed() -> dyn!(
//~^ ERROR `dyn` is a keyword //~^ ERROR `dyn` is a keyword
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
// Note that we do not lint nor fix occurrences under macros // Note that we do not lint nor fix occurrences under macros
dyn dyn

View file

@ -9,7 +9,7 @@ note: the lint level is defined here
| |
LL | #![deny(keyword_idents)] LL | #![deny(keyword_idents)]
| ^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `dyn` is a keyword in the 2018 edition error: `dyn` is a keyword in the 2018 edition
@ -18,7 +18,7 @@ error: `dyn` is a keyword in the 2018 edition
LL | pub struct dyn; LL | pub struct dyn;
| ^^^ help: you can use a raw identifier to stay compatible: `r#dyn` | ^^^ help: you can use a raw identifier to stay compatible: `r#dyn`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `dyn` is a keyword in the 2018 edition error: `dyn` is a keyword in the 2018 edition
@ -27,7 +27,7 @@ error: `dyn` is a keyword in the 2018 edition
LL | use outer_mod::dyn::dyn; LL | use outer_mod::dyn::dyn;
| ^^^ help: you can use a raw identifier to stay compatible: `r#dyn` | ^^^ help: you can use a raw identifier to stay compatible: `r#dyn`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `dyn` is a keyword in the 2018 edition error: `dyn` is a keyword in the 2018 edition
@ -36,7 +36,7 @@ error: `dyn` is a keyword in the 2018 edition
LL | use outer_mod::dyn::dyn; LL | use outer_mod::dyn::dyn;
| ^^^ help: you can use a raw identifier to stay compatible: `r#dyn` | ^^^ help: you can use a raw identifier to stay compatible: `r#dyn`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `dyn` is a keyword in the 2018 edition error: `dyn` is a keyword in the 2018 edition
@ -45,7 +45,7 @@ error: `dyn` is a keyword in the 2018 edition
LL | match dyn { dyn => {} } LL | match dyn { dyn => {} }
| ^^^ help: you can use a raw identifier to stay compatible: `r#dyn` | ^^^ help: you can use a raw identifier to stay compatible: `r#dyn`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `dyn` is a keyword in the 2018 edition error: `dyn` is a keyword in the 2018 edition
@ -54,7 +54,7 @@ error: `dyn` is a keyword in the 2018 edition
LL | match dyn { dyn => {} } LL | match dyn { dyn => {} }
| ^^^ help: you can use a raw identifier to stay compatible: `r#dyn` | ^^^ help: you can use a raw identifier to stay compatible: `r#dyn`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `dyn` is a keyword in the 2018 edition error: `dyn` is a keyword in the 2018 edition
@ -63,7 +63,7 @@ error: `dyn` is a keyword in the 2018 edition
LL | macro_defn::dyn(); LL | macro_defn::dyn();
| ^^^ help: you can use a raw identifier to stay compatible: `r#dyn` | ^^^ help: you can use a raw identifier to stay compatible: `r#dyn`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `dyn` is a keyword in the 2018 edition error: `dyn` is a keyword in the 2018 edition
@ -72,7 +72,7 @@ error: `dyn` is a keyword in the 2018 edition
LL | macro_rules! dyn { LL | macro_rules! dyn {
| ^^^ help: you can use a raw identifier to stay compatible: `r#dyn` | ^^^ help: you can use a raw identifier to stay compatible: `r#dyn`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `dyn` is a keyword in the 2018 edition error: `dyn` is a keyword in the 2018 edition
@ -81,7 +81,7 @@ error: `dyn` is a keyword in the 2018 edition
LL | pub fn dyn() -> ::outer_mod::dyn::dyn { LL | pub fn dyn() -> ::outer_mod::dyn::dyn {
| ^^^ help: you can use a raw identifier to stay compatible: `r#dyn` | ^^^ help: you can use a raw identifier to stay compatible: `r#dyn`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `dyn` is a keyword in the 2018 edition error: `dyn` is a keyword in the 2018 edition
@ -90,7 +90,7 @@ error: `dyn` is a keyword in the 2018 edition
LL | pub fn dyn() -> ::outer_mod::dyn::dyn { LL | pub fn dyn() -> ::outer_mod::dyn::dyn {
| ^^^ help: you can use a raw identifier to stay compatible: `r#dyn` | ^^^ help: you can use a raw identifier to stay compatible: `r#dyn`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `dyn` is a keyword in the 2018 edition error: `dyn` is a keyword in the 2018 edition
@ -99,7 +99,7 @@ error: `dyn` is a keyword in the 2018 edition
LL | pub fn dyn() -> ::outer_mod::dyn::dyn { LL | pub fn dyn() -> ::outer_mod::dyn::dyn {
| ^^^ help: you can use a raw identifier to stay compatible: `r#dyn` | ^^^ help: you can use a raw identifier to stay compatible: `r#dyn`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `dyn` is a keyword in the 2018 edition error: `dyn` is a keyword in the 2018 edition
@ -108,7 +108,7 @@ error: `dyn` is a keyword in the 2018 edition
LL | ::outer_mod::dyn::dyn LL | ::outer_mod::dyn::dyn
| ^^^ help: you can use a raw identifier to stay compatible: `r#dyn` | ^^^ help: you can use a raw identifier to stay compatible: `r#dyn`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `dyn` is a keyword in the 2018 edition error: `dyn` is a keyword in the 2018 edition
@ -117,7 +117,7 @@ error: `dyn` is a keyword in the 2018 edition
LL | ::outer_mod::dyn::dyn LL | ::outer_mod::dyn::dyn
| ^^^ help: you can use a raw identifier to stay compatible: `r#dyn` | ^^^ help: you can use a raw identifier to stay compatible: `r#dyn`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `dyn` is a keyword in the 2018 edition error: `dyn` is a keyword in the 2018 edition
@ -126,7 +126,7 @@ error: `dyn` is a keyword in the 2018 edition
LL | pub fn boxed() -> dyn!( LL | pub fn boxed() -> dyn!(
| ^^^ help: you can use a raw identifier to stay compatible: `r#dyn` | ^^^ help: you can use a raw identifier to stay compatible: `r#dyn`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: aborting due to 14 previous errors error: aborting due to 14 previous errors

View file

@ -3,12 +3,12 @@
fn function(x: &SomeTrait, y: Box<SomeTrait>) { fn function(x: &SomeTrait, y: Box<SomeTrait>) {
//~^ ERROR trait objects without an explicit `dyn` are deprecated //~^ ERROR trait objects without an explicit `dyn` are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
//~| ERROR trait objects without an explicit `dyn` are deprecated //~| ERROR trait objects without an explicit `dyn` are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
let _x: &SomeTrait = todo!(); let _x: &SomeTrait = todo!();
//~^ ERROR trait objects without an explicit `dyn` are deprecated //~^ ERROR trait objects without an explicit `dyn` are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }
trait SomeTrait {} trait SomeTrait {}

View file

@ -9,7 +9,7 @@ note: the lint level is defined here
| |
LL | #[deny(bare_trait_objects)] LL | #[deny(bare_trait_objects)]
| ^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^
= warning: this is valid in the current edition (Rust 2018) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
error: trait objects without an explicit `dyn` are deprecated error: trait objects without an explicit `dyn` are deprecated
@ -18,7 +18,7 @@ error: trait objects without an explicit `dyn` are deprecated
LL | fn function(x: &SomeTrait, y: Box<SomeTrait>) { LL | fn function(x: &SomeTrait, y: Box<SomeTrait>) {
| ^^^^^^^^^ help: use `dyn`: `dyn SomeTrait` | ^^^^^^^^^ help: use `dyn`: `dyn SomeTrait`
| |
= warning: this is valid in the current edition (Rust 2018) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
error: trait objects without an explicit `dyn` are deprecated error: trait objects without an explicit `dyn` are deprecated
@ -27,7 +27,7 @@ error: trait objects without an explicit `dyn` are deprecated
LL | let _x: &SomeTrait = todo!(); LL | let _x: &SomeTrait = todo!();
| ^^^^^^^^^ help: use `dyn`: `dyn SomeTrait` | ^^^^^^^^^ help: use `dyn`: `dyn SomeTrait`
| |
= warning: this is valid in the current edition (Rust 2018) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
error: aborting due to 3 previous errors error: aborting due to 3 previous errors

View file

@ -8,5 +8,5 @@ fn main() {
let y = &x as *const _; let y = &x as *const _;
let _ = y.is_null(); let _ = y.is_null();
//~^ error: type annotations needed [tyvar_behind_raw_pointer] //~^ error: type annotations needed [tyvar_behind_raw_pointer]
//~^^ warning: this is valid in the current edition //~^^ warning: this is accepted in the current edition
} }

View file

@ -10,7 +10,7 @@ note: the lint level is defined here
LL | #[deny(warnings)] LL | #[deny(warnings)]
| ^^^^^^^^ | ^^^^^^^^
= note: `#[deny(tyvar_behind_raw_pointer)]` implied by `#[deny(warnings)]` = note: `#[deny(tyvar_behind_raw_pointer)]` implied by `#[deny(warnings)]`
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #46906 <https://github.com/rust-lang/rust/issues/46906> = note: for more information, see issue #46906 <https://github.com/rust-lang/rust/issues/46906>
error: aborting due to previous error error: aborting due to previous error

View file

@ -2,7 +2,7 @@
trait Tr { trait Tr {
fn f(u8) {} //~ ERROR anonymous parameters are deprecated fn f(u8) {} //~ ERROR anonymous parameters are deprecated
//~^ WARN this is valid in the current edition //~^ WARN this is accepted in the current edition
} }
fn main() {} fn main() {}

View file

@ -10,7 +10,7 @@ note: the lint level is defined here
LL | #![deny(future_incompatible)] LL | #![deny(future_incompatible)]
| ^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^
= note: `#[deny(anonymous_parameters)]` implied by `#[deny(future_incompatible)]` = note: `#[deny(anonymous_parameters)]` implied by `#[deny(future_incompatible)]`
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686> = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
error: aborting due to previous error error: aborting due to previous error

View file

@ -11,6 +11,6 @@ fn foo<'a>(arg: Box<dyn X<Y('a) = &'a ()>>) {}
//~| ERROR this associated type takes 0 generic arguments but 1 generic argument //~| ERROR this associated type takes 0 generic arguments but 1 generic argument
//~| ERROR this associated type takes 1 lifetime argument but 0 lifetime arguments //~| ERROR this associated type takes 1 lifetime argument but 0 lifetime arguments
//~| WARNING: trait objects without an explicit `dyn` are deprecated //~| WARNING: trait objects without an explicit `dyn` are deprecated
//~| WARNING: this is valid in the current edition //~| WARNING: this is accepted in the current edition
fn main() {} fn main() {}

View file

@ -26,7 +26,7 @@ LL | fn foo<'a>(arg: Box<dyn X<Y('a) = &'a ()>>) {}
| ^^ help: use `dyn`: `dyn 'a` | ^^ help: use `dyn`: `dyn 'a`
| |
= note: `#[warn(bare_trait_objects)]` on by default = note: `#[warn(bare_trait_objects)]` on by default
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
error[E0107]: this associated type takes 1 lifetime argument but 0 lifetime arguments were supplied error[E0107]: this associated type takes 1 lifetime argument but 0 lifetime arguments were supplied

View file

@ -7,5 +7,5 @@ fn main() {
let _ = &data as *const *const (); let _ = &data as *const *const ();
if data.is_null() {} if data.is_null() {}
//~^ WARNING type annotations needed //~^ WARNING type annotations needed
//~| WARNING this is valid in the current edition //~| WARNING this is accepted in the current edition
} }

View file

@ -5,7 +5,7 @@ LL | if data.is_null() {}
| ^^^^^^^ | ^^^^^^^
| |
= note: `#[warn(tyvar_behind_raw_pointer)]` on by default = note: `#[warn(tyvar_behind_raw_pointer)]` on by default
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #46906 <https://github.com/rust-lang/rust/issues/46906> = note: for more information, see issue #46906 <https://github.com/rust-lang/rust/issues/46906>
warning: 1 warning emitted warning: 1 warning emitted

View file

@ -13,12 +13,12 @@ impl Assoc for dyn Dyn {}
fn main() { fn main() {
Dyn::func(); Dyn::func();
//~^ WARN trait objects without an explicit `dyn` are deprecated //~^ WARN trait objects without an explicit `dyn` are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
::Dyn::func(); ::Dyn::func();
//~^ WARN trait objects without an explicit `dyn` are deprecated //~^ WARN trait objects without an explicit `dyn` are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
Dyn::CONST; Dyn::CONST;
//~^ WARN trait objects without an explicit `dyn` are deprecated //~^ WARN trait objects without an explicit `dyn` are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
let _: Dyn::Ty; //~ ERROR ambiguous associated type let _: Dyn::Ty; //~ ERROR ambiguous associated type
} }

View file

@ -11,7 +11,7 @@ LL | Dyn::func();
| ^^^ help: use `dyn`: `<dyn Dyn>` | ^^^ help: use `dyn`: `<dyn Dyn>`
| |
= note: `#[warn(bare_trait_objects)]` on by default = note: `#[warn(bare_trait_objects)]` on by default
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
warning: trait objects without an explicit `dyn` are deprecated warning: trait objects without an explicit `dyn` are deprecated
@ -20,7 +20,7 @@ warning: trait objects without an explicit `dyn` are deprecated
LL | ::Dyn::func(); LL | ::Dyn::func();
| ^^^^^ help: use `dyn`: `<dyn (::Dyn)>` | ^^^^^ help: use `dyn`: `<dyn (::Dyn)>`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
warning: trait objects without an explicit `dyn` are deprecated warning: trait objects without an explicit `dyn` are deprecated
@ -29,7 +29,7 @@ warning: trait objects without an explicit `dyn` are deprecated
LL | Dyn::CONST; LL | Dyn::CONST;
| ^^^ help: use `dyn`: `<dyn Dyn>` | ^^^ help: use `dyn`: `<dyn Dyn>`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
error: aborting due to previous error; 3 warnings emitted error: aborting due to previous error; 3 warnings emitted

View file

@ -7,6 +7,6 @@ pub trait SomeTrait {}
pub fn function(_x: Box<SomeTrait>) {} pub fn function(_x: Box<SomeTrait>) {}
//~^ WARN trait objects without an explicit `dyn` are deprecated //~^ WARN trait objects without an explicit `dyn` are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
fn main() {} fn main() {}

View file

@ -5,7 +5,7 @@ LL | pub fn function(_x: Box<SomeTrait>) {}
| ^^^^^^^^^ help: use `dyn`: `dyn SomeTrait` | ^^^^^^^^^ help: use `dyn`: `dyn SomeTrait`
| |
= note: warning forced by `force-warns` commandline option = note: warning forced by `force-warns` commandline option
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
warning: 1 warning emitted warning: 1 warning emitted

View file

@ -7,6 +7,6 @@ pub trait SomeTrait {}
pub fn function(_x: Box<SomeTrait>) {} pub fn function(_x: Box<SomeTrait>) {}
//~^ WARN trait objects without an explicit `dyn` are deprecated //~^ WARN trait objects without an explicit `dyn` are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
fn main() {} fn main() {}

View file

@ -5,7 +5,7 @@ LL | pub fn function(_x: Box<SomeTrait>) {}
| ^^^^^^^^^ help: use `dyn`: `dyn SomeTrait` | ^^^^^^^^^ help: use `dyn`: `dyn SomeTrait`
| |
= note: warning forced by `force-warns` commandline option = note: warning forced by `force-warns` commandline option
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
warning: 1 warning emitted warning: 1 warning emitted

View file

@ -7,6 +7,6 @@ pub trait SomeTrait {}
pub fn function(_x: Box<SomeTrait>) {} pub fn function(_x: Box<SomeTrait>) {}
//~^ WARN trait objects without an explicit `dyn` are deprecated //~^ WARN trait objects without an explicit `dyn` are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
fn main() {} fn main() {}

View file

@ -5,7 +5,7 @@ LL | pub fn function(_x: Box<SomeTrait>) {}
| ^^^^^^^^^ help: use `dyn`: `dyn SomeTrait` | ^^^^^^^^^ help: use `dyn`: `dyn SomeTrait`
| |
= note: warning forced by `force-warns` commandline option = note: warning forced by `force-warns` commandline option
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
warning: 1 warning emitted warning: 1 warning emitted

View file

@ -8,14 +8,14 @@ fn main() {
match despondency { match despondency {
1..=2 => {} 1..=2 => {}
//~^ WARN `...` range patterns are deprecated //~^ WARN `...` range patterns are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
_ => {} _ => {}
} }
match &despondency { match &despondency {
&(1..=2) => {} &(1..=2) => {}
//~^ WARN `...` range patterns are deprecated //~^ WARN `...` range patterns are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
_ => {} _ => {}
} }
} }

View file

@ -8,14 +8,14 @@ fn main() {
match despondency { match despondency {
1...2 => {} 1...2 => {}
//~^ WARN `...` range patterns are deprecated //~^ WARN `...` range patterns are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
_ => {} _ => {}
} }
match &despondency { match &despondency {
&1...2 => {} &1...2 => {}
//~^ WARN `...` range patterns are deprecated //~^ WARN `...` range patterns are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
_ => {} _ => {}
} }
} }

View file

@ -9,7 +9,7 @@ note: the lint level is defined here
| |
LL | #![warn(ellipsis_inclusive_range_patterns)] LL | #![warn(ellipsis_inclusive_range_patterns)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
warning: `...` range patterns are deprecated warning: `...` range patterns are deprecated
@ -18,7 +18,7 @@ warning: `...` range patterns are deprecated
LL | &1...2 => {} LL | &1...2 => {}
| ^^^^^^ help: use `..=` for an inclusive range: `&(1..=2)` | ^^^^^^ help: use `..=` for an inclusive range: `&(1..=2)`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
warning: 2 warnings emitted warning: 2 warnings emitted

View file

@ -5,7 +5,7 @@ LL | pub fn try() {}
| ^^^ help: you can use a raw identifier to stay compatible: `r#try` | ^^^ help: you can use a raw identifier to stay compatible: `r#try`
| |
= note: `-W keyword-idents` implied by `-W rust-2018-compatibility` = note: `-W keyword-idents` implied by `-W rust-2018-compatibility`
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
warning: 1 warning emitted warning: 1 warning emitted

View file

@ -4,4 +4,4 @@ type X<'a> = (?'a) +;
//~^ ERROR `?` may only modify trait bounds, not lifetime bounds //~^ ERROR `?` may only modify trait bounds, not lifetime bounds
//~| ERROR at least one trait is required for an object type //~| ERROR at least one trait is required for an object type
//~| WARN trait objects without an explicit `dyn` are deprecated //~| WARN trait objects without an explicit `dyn` are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition

View file

@ -11,7 +11,7 @@ LL | type X<'a> = (?'a) +;
| ^^^^^^^ help: use `dyn`: `dyn (?'a) +` | ^^^^^^^ help: use `dyn`: `dyn (?'a) +`
| |
= note: `#[warn(bare_trait_objects)]` on by default = note: `#[warn(bare_trait_objects)]` on by default
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
error[E0224]: at least one trait is required for an object type error[E0224]: at least one trait is required for an object type

View file

@ -14,10 +14,10 @@ mac!('a);
fn y<'a>(y: &mut 'a + Send) { fn y<'a>(y: &mut 'a + Send) {
//~^ ERROR expected a path on the left-hand side of `+`, not `&mut 'a` //~^ ERROR expected a path on the left-hand side of `+`, not `&mut 'a`
//~| WARNING trait objects without an explicit `dyn` are deprecated //~| WARNING trait objects without an explicit `dyn` are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
//~| ERROR at least one trait is required for an object type //~| ERROR at least one trait is required for an object type
let z = y as &mut 'a + Send; let z = y as &mut 'a + Send;
//~^ ERROR expected value, found trait `Send` //~^ ERROR expected value, found trait `Send`
//~| WARNING trait objects without an explicit `dyn` are deprecated //~| WARNING trait objects without an explicit `dyn` are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }

View file

@ -34,7 +34,7 @@ LL | fn y<'a>(y: &mut 'a + Send) {
| ^^ help: use `dyn`: `dyn 'a` | ^^ help: use `dyn`: `dyn 'a`
| |
= note: `#[warn(bare_trait_objects)]` on by default = note: `#[warn(bare_trait_objects)]` on by default
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
warning: trait objects without an explicit `dyn` are deprecated warning: trait objects without an explicit `dyn` are deprecated
@ -43,7 +43,7 @@ warning: trait objects without an explicit `dyn` are deprecated
LL | let z = y as &mut 'a + Send; LL | let z = y as &mut 'a + Send;
| ^^ help: use `dyn`: `dyn 'a` | ^^ help: use `dyn`: `dyn 'a`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
error[E0224]: at least one trait is required for an object type error[E0224]: at least one trait is required for an object type

View file

@ -12,5 +12,5 @@ fn main() {
//~^ ERROR lifetime in trait object type must be followed by `+` //~^ ERROR lifetime in trait object type must be followed by `+`
//~| ERROR at least one trait is required for an object type //~| ERROR at least one trait is required for an object type
//~| WARN trait objects without an explicit `dyn` are deprecated //~| WARN trait objects without an explicit `dyn` are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }

View file

@ -11,7 +11,7 @@ LL | m!('static);
| ^^^^^^^ help: use `dyn`: `dyn 'static` | ^^^^^^^ help: use `dyn`: `dyn 'static`
| |
= note: `#[warn(bare_trait_objects)]` on by default = note: `#[warn(bare_trait_objects)]` on by default
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
error[E0224]: at least one trait is required for an object type error[E0224]: at least one trait is required for an object type

View file

@ -41,30 +41,30 @@ fn inclusive_from_to() {
fn inclusive2_from_to() { fn inclusive2_from_to() {
if let 0...3 = 0 {} if let 0...3 = 0 {}
//~^ ERROR `...` range patterns are deprecated //~^ ERROR `...` range patterns are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
if let 0...Y = 0 {} if let 0...Y = 0 {}
//~^ ERROR `...` range patterns are deprecated //~^ ERROR `...` range patterns are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
if let X...3 = 0 {} if let X...3 = 0 {}
//~^ ERROR `...` range patterns are deprecated //~^ ERROR `...` range patterns are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
if let X...Y = 0 {} if let X...Y = 0 {}
//~^ ERROR `...` range patterns are deprecated //~^ ERROR `...` range patterns are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
if let true...Y = 0 {} //~ ERROR only `char` and numeric types if let true...Y = 0 {} //~ ERROR only `char` and numeric types
//~^ ERROR `...` range patterns are deprecated //~^ ERROR `...` range patterns are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
if let X...true = 0 {} //~ ERROR only `char` and numeric types if let X...true = 0 {} //~ ERROR only `char` and numeric types
//~^ ERROR `...` range patterns are deprecated //~^ ERROR `...` range patterns are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
if let .0...Y = 0 {} //~ ERROR mismatched types if let .0...Y = 0 {} //~ ERROR mismatched types
//~^ ERROR float literals must have an integer part //~^ ERROR float literals must have an integer part
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
//~| ERROR `...` range patterns are deprecated //~| ERROR `...` range patterns are deprecated
if let X... .0 = 0 {} //~ ERROR mismatched types if let X... .0 = 0 {} //~ ERROR mismatched types
//~^ ERROR float literals must have an integer part //~^ ERROR float literals must have an integer part
//~| ERROR `...` range patterns are deprecated //~| ERROR `...` range patterns are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }
fn exclusive_from() { fn exclusive_from() {
@ -137,7 +137,7 @@ fn with_macro_expr_var() {
let $e1..$e2; let $e1..$e2;
let $e1...$e2; let $e1...$e2;
//~^ ERROR `...` range patterns are deprecated //~^ ERROR `...` range patterns are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
let $e1..=$e2; let $e1..=$e2;
} }
} }

View file

@ -204,7 +204,7 @@ note: the lint level is defined here
| |
LL | #![deny(ellipsis_inclusive_range_patterns)] LL | #![deny(ellipsis_inclusive_range_patterns)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
error: `...` range patterns are deprecated error: `...` range patterns are deprecated
@ -213,7 +213,7 @@ error: `...` range patterns are deprecated
LL | if let 0...Y = 0 {} LL | if let 0...Y = 0 {}
| ^^^ help: use `..=` for an inclusive range | ^^^ help: use `..=` for an inclusive range
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
error: `...` range patterns are deprecated error: `...` range patterns are deprecated
@ -222,7 +222,7 @@ error: `...` range patterns are deprecated
LL | if let X...3 = 0 {} LL | if let X...3 = 0 {}
| ^^^ help: use `..=` for an inclusive range | ^^^ help: use `..=` for an inclusive range
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
error: `...` range patterns are deprecated error: `...` range patterns are deprecated
@ -231,7 +231,7 @@ error: `...` range patterns are deprecated
LL | if let X...Y = 0 {} LL | if let X...Y = 0 {}
| ^^^ help: use `..=` for an inclusive range | ^^^ help: use `..=` for an inclusive range
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
error: `...` range patterns are deprecated error: `...` range patterns are deprecated
@ -240,7 +240,7 @@ error: `...` range patterns are deprecated
LL | if let true...Y = 0 {} LL | if let true...Y = 0 {}
| ^^^ help: use `..=` for an inclusive range | ^^^ help: use `..=` for an inclusive range
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
error: `...` range patterns are deprecated error: `...` range patterns are deprecated
@ -249,7 +249,7 @@ error: `...` range patterns are deprecated
LL | if let X...true = 0 {} LL | if let X...true = 0 {}
| ^^^ help: use `..=` for an inclusive range | ^^^ help: use `..=` for an inclusive range
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
error: `...` range patterns are deprecated error: `...` range patterns are deprecated
@ -258,7 +258,7 @@ error: `...` range patterns are deprecated
LL | if let .0...Y = 0 {} LL | if let .0...Y = 0 {}
| ^^^ help: use `..=` for an inclusive range | ^^^ help: use `..=` for an inclusive range
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
error: `...` range patterns are deprecated error: `...` range patterns are deprecated
@ -267,7 +267,7 @@ error: `...` range patterns are deprecated
LL | if let X... .0 = 0 {} LL | if let X... .0 = 0 {}
| ^^^ help: use `..=` for an inclusive range | ^^^ help: use `..=` for an inclusive range
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
error: `...` range patterns are deprecated error: `...` range patterns are deprecated
@ -279,7 +279,7 @@ LL | let $e1...$e2;
LL | mac2!(0, 1); LL | mac2!(0, 1);
| ------------ in this macro invocation | ------------ in this macro invocation
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
= note: this error originates in the macro `mac2` (in Nightly builds, run with -Z macro-backtrace for more info) = note: this error originates in the macro `mac2` (in Nightly builds, run with -Z macro-backtrace for more info)

View file

@ -9,15 +9,15 @@ fn main() {
//~^ ERROR `?Trait` is not permitted in trait object types //~^ ERROR `?Trait` is not permitted in trait object types
//~| ERROR only auto traits can be used as additional traits //~| ERROR only auto traits can be used as additional traits
//~| WARN trait objects without an explicit `dyn` are deprecated //~| WARN trait objects without an explicit `dyn` are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
let _: Box<?Sized + (for<'a> Trait<'a>) + (Obj)>; let _: Box<?Sized + (for<'a> Trait<'a>) + (Obj)>;
//~^ ERROR `?Trait` is not permitted in trait object types //~^ ERROR `?Trait` is not permitted in trait object types
//~| ERROR only auto traits can be used as additional traits //~| ERROR only auto traits can be used as additional traits
//~| WARN trait objects without an explicit `dyn` are deprecated //~| WARN trait objects without an explicit `dyn` are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
let _: Box<for<'a> Trait<'a> + (Obj) + (?Sized)>; let _: Box<for<'a> Trait<'a> + (Obj) + (?Sized)>;
//~^ ERROR `?Trait` is not permitted in trait object types //~^ ERROR `?Trait` is not permitted in trait object types
//~| ERROR only auto traits can be used as additional traits //~| ERROR only auto traits can be used as additional traits
//~| WARN trait objects without an explicit `dyn` are deprecated //~| WARN trait objects without an explicit `dyn` are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }

View file

@ -23,7 +23,7 @@ LL | let _: Box<(Obj) + (?Sized) + (for<'a> Trait<'a>)>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn (Obj) + (?Sized) + (for<'a> Trait<'a>)` | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn (Obj) + (?Sized) + (for<'a> Trait<'a>)`
| |
= note: `#[warn(bare_trait_objects)]` on by default = note: `#[warn(bare_trait_objects)]` on by default
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
warning: trait objects without an explicit `dyn` are deprecated warning: trait objects without an explicit `dyn` are deprecated
@ -32,7 +32,7 @@ warning: trait objects without an explicit `dyn` are deprecated
LL | let _: Box<?Sized + (for<'a> Trait<'a>) + (Obj)>; LL | let _: Box<?Sized + (for<'a> Trait<'a>) + (Obj)>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn ?Sized + (for<'a> Trait<'a>) + (Obj)` | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn ?Sized + (for<'a> Trait<'a>) + (Obj)`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
warning: trait objects without an explicit `dyn` are deprecated warning: trait objects without an explicit `dyn` are deprecated
@ -41,7 +41,7 @@ warning: trait objects without an explicit `dyn` are deprecated
LL | let _: Box<for<'a> Trait<'a> + (Obj) + (?Sized)>; LL | let _: Box<for<'a> Trait<'a> + (Obj) + (?Sized)>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn for<'a> Trait<'a> + (Obj) + (?Sized)` | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn for<'a> Trait<'a> + (Obj) + (?Sized)`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
error[E0225]: only auto traits can be used as additional traits in a trait object error[E0225]: only auto traits can be used as additional traits in a trait object

View file

@ -10,7 +10,7 @@ pub fn main() {
match &12 { match &12 {
&(0..=9) => {} &(0..=9) => {}
//~^ WARN `...` range patterns are deprecated //~^ WARN `...` range patterns are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
//~| HELP use `..=` for an inclusive range //~| HELP use `..=` for an inclusive range
&(10 ..=15) => {} &(10 ..=15) => {}
//~^ ERROR the range pattern here has ambiguous interpretation //~^ ERROR the range pattern here has ambiguous interpretation

View file

@ -10,7 +10,7 @@ pub fn main() {
match &12 { match &12 {
&0...9 => {} &0...9 => {}
//~^ WARN `...` range patterns are deprecated //~^ WARN `...` range patterns are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
//~| HELP use `..=` for an inclusive range //~| HELP use `..=` for an inclusive range
&10..=15 => {} &10..=15 => {}
//~^ ERROR the range pattern here has ambiguous interpretation //~^ ERROR the range pattern here has ambiguous interpretation

View file

@ -15,7 +15,7 @@ note: the lint level is defined here
| |
LL | #![warn(ellipsis_inclusive_range_patterns)] LL | #![warn(ellipsis_inclusive_range_patterns)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
error: aborting due to previous error; 1 warning emitted error: aborting due to previous error; 1 warning emitted

View file

@ -9,7 +9,7 @@ fn main() {
// FIXME: can we add suggestions like `&(0..=9)`? // FIXME: can we add suggestions like `&(0..=9)`?
box 0...9 => {} box 0...9 => {}
//~^ WARN `...` range patterns are deprecated //~^ WARN `...` range patterns are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
//~| HELP use `..=` for an inclusive range //~| HELP use `..=` for an inclusive range
box 10..=15 => {} box 10..=15 => {}
//~^ ERROR the range pattern here has ambiguous interpretation //~^ ERROR the range pattern here has ambiguous interpretation

View file

@ -15,7 +15,7 @@ note: the lint level is defined here
| |
LL | #![warn(ellipsis_inclusive_range_patterns)] LL | #![warn(ellipsis_inclusive_range_patterns)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
error: aborting due to previous error; 1 warning emitted error: aborting due to previous error; 1 warning emitted

View file

@ -7,5 +7,5 @@
fn main() { fn main() {
let async = 3; //~ ERROR: is a keyword let async = 3; //~ ERROR: is a keyword
//~^ WARN this is valid in the current edition //~^ WARN this is accepted in the current edition
} }

View file

@ -10,7 +10,7 @@ note: the lint level is defined here
LL | #![deny(rust_2018_compatibility)] LL | #![deny(rust_2018_compatibility)]
| ^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^
= note: `#[deny(keyword_idents)]` implied by `#[deny(rust_2018_compatibility)]` = note: `#[deny(keyword_idents)]` implied by `#[deny(rust_2018_compatibility)]`
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: aborting due to previous error error: aborting due to previous error

View file

@ -5,20 +5,20 @@
// run-rustfix // run-rustfix
fn r#async() {} //~ ERROR async fn r#async() {} //~ ERROR async
//~^ WARN this is valid in the current edition //~^ WARN this is accepted in the current edition
macro_rules! foo { macro_rules! foo {
($foo:ident) => {}; ($foo:ident) => {};
($r#async:expr, r#async) => {}; ($r#async:expr, r#async) => {};
//~^ ERROR async //~^ ERROR async
//~| ERROR async //~| ERROR async
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }
foo!(r#async); foo!(r#async);
//~^ ERROR async //~^ ERROR async
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
mod dont_lint_raw { mod dont_lint_raw {
fn r#async() {} fn r#async() {}
@ -27,53 +27,53 @@ mod dont_lint_raw {
mod async_trait { mod async_trait {
trait r#async {} trait r#async {}
//~^ ERROR async //~^ ERROR async
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
struct MyStruct; struct MyStruct;
impl r#async for MyStruct {} impl r#async for MyStruct {}
//~^ ERROR async //~^ ERROR async
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }
mod async_static { mod async_static {
static r#async: u32 = 0; static r#async: u32 = 0;
//~^ ERROR async //~^ ERROR async
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }
mod async_const { mod async_const {
const r#async: u32 = 0; const r#async: u32 = 0;
//~^ ERROR async //~^ ERROR async
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }
struct Foo; struct Foo;
impl Foo { fn r#async() {} } impl Foo { fn r#async() {} }
//~^ ERROR async //~^ ERROR async
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
fn main() { fn main() {
struct r#async {} struct r#async {}
//~^ ERROR async //~^ ERROR async
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
let r#async: r#async = r#async {}; let r#async: r#async = r#async {};
//~^ ERROR async //~^ ERROR async
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
//~| ERROR async //~| ERROR async
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
//~| ERROR async //~| ERROR async
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }
#[macro_export] #[macro_export]
macro_rules! produces_async { macro_rules! produces_async {
() => (pub fn r#async() {}) () => (pub fn r#async() {})
//~^ ERROR async //~^ ERROR async
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }
#[macro_export] #[macro_export]
macro_rules! consumes_async { macro_rules! consumes_async {
(r#async) => (1) (r#async) => (1)
//~^ ERROR async //~^ ERROR async
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }

View file

@ -5,20 +5,20 @@
// run-rustfix // run-rustfix
fn async() {} //~ ERROR async fn async() {} //~ ERROR async
//~^ WARN this is valid in the current edition //~^ WARN this is accepted in the current edition
macro_rules! foo { macro_rules! foo {
($foo:ident) => {}; ($foo:ident) => {};
($async:expr, async) => {}; ($async:expr, async) => {};
//~^ ERROR async //~^ ERROR async
//~| ERROR async //~| ERROR async
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }
foo!(async); foo!(async);
//~^ ERROR async //~^ ERROR async
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
mod dont_lint_raw { mod dont_lint_raw {
fn r#async() {} fn r#async() {}
@ -27,53 +27,53 @@ mod dont_lint_raw {
mod async_trait { mod async_trait {
trait async {} trait async {}
//~^ ERROR async //~^ ERROR async
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
struct MyStruct; struct MyStruct;
impl async for MyStruct {} impl async for MyStruct {}
//~^ ERROR async //~^ ERROR async
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }
mod async_static { mod async_static {
static async: u32 = 0; static async: u32 = 0;
//~^ ERROR async //~^ ERROR async
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }
mod async_const { mod async_const {
const async: u32 = 0; const async: u32 = 0;
//~^ ERROR async //~^ ERROR async
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }
struct Foo; struct Foo;
impl Foo { fn async() {} } impl Foo { fn async() {} }
//~^ ERROR async //~^ ERROR async
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
fn main() { fn main() {
struct async {} struct async {}
//~^ ERROR async //~^ ERROR async
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
let async: async = async {}; let async: async = async {};
//~^ ERROR async //~^ ERROR async
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
//~| ERROR async //~| ERROR async
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
//~| ERROR async //~| ERROR async
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }
#[macro_export] #[macro_export]
macro_rules! produces_async { macro_rules! produces_async {
() => (pub fn async() {}) () => (pub fn async() {})
//~^ ERROR async //~^ ERROR async
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }
#[macro_export] #[macro_export]
macro_rules! consumes_async { macro_rules! consumes_async {
(async) => (1) (async) => (1)
//~^ ERROR async //~^ ERROR async
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }

View file

@ -9,7 +9,7 @@ note: the lint level is defined here
| |
LL | #![deny(keyword_idents)] LL | #![deny(keyword_idents)]
| ^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `async` is a keyword in the 2018 edition error: `async` is a keyword in the 2018 edition
@ -18,7 +18,7 @@ error: `async` is a keyword in the 2018 edition
LL | ($async:expr, async) => {}; LL | ($async:expr, async) => {};
| ^^^^^ help: you can use a raw identifier to stay compatible: `r#async` | ^^^^^ help: you can use a raw identifier to stay compatible: `r#async`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `async` is a keyword in the 2018 edition error: `async` is a keyword in the 2018 edition
@ -27,7 +27,7 @@ error: `async` is a keyword in the 2018 edition
LL | ($async:expr, async) => {}; LL | ($async:expr, async) => {};
| ^^^^^ help: you can use a raw identifier to stay compatible: `r#async` | ^^^^^ help: you can use a raw identifier to stay compatible: `r#async`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `async` is a keyword in the 2018 edition error: `async` is a keyword in the 2018 edition
@ -36,7 +36,7 @@ error: `async` is a keyword in the 2018 edition
LL | foo!(async); LL | foo!(async);
| ^^^^^ help: you can use a raw identifier to stay compatible: `r#async` | ^^^^^ help: you can use a raw identifier to stay compatible: `r#async`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `async` is a keyword in the 2018 edition error: `async` is a keyword in the 2018 edition
@ -45,7 +45,7 @@ error: `async` is a keyword in the 2018 edition
LL | trait async {} LL | trait async {}
| ^^^^^ help: you can use a raw identifier to stay compatible: `r#async` | ^^^^^ help: you can use a raw identifier to stay compatible: `r#async`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `async` is a keyword in the 2018 edition error: `async` is a keyword in the 2018 edition
@ -54,7 +54,7 @@ error: `async` is a keyword in the 2018 edition
LL | impl async for MyStruct {} LL | impl async for MyStruct {}
| ^^^^^ help: you can use a raw identifier to stay compatible: `r#async` | ^^^^^ help: you can use a raw identifier to stay compatible: `r#async`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `async` is a keyword in the 2018 edition error: `async` is a keyword in the 2018 edition
@ -63,7 +63,7 @@ error: `async` is a keyword in the 2018 edition
LL | static async: u32 = 0; LL | static async: u32 = 0;
| ^^^^^ help: you can use a raw identifier to stay compatible: `r#async` | ^^^^^ help: you can use a raw identifier to stay compatible: `r#async`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `async` is a keyword in the 2018 edition error: `async` is a keyword in the 2018 edition
@ -72,7 +72,7 @@ error: `async` is a keyword in the 2018 edition
LL | const async: u32 = 0; LL | const async: u32 = 0;
| ^^^^^ help: you can use a raw identifier to stay compatible: `r#async` | ^^^^^ help: you can use a raw identifier to stay compatible: `r#async`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `async` is a keyword in the 2018 edition error: `async` is a keyword in the 2018 edition
@ -81,7 +81,7 @@ error: `async` is a keyword in the 2018 edition
LL | impl Foo { fn async() {} } LL | impl Foo { fn async() {} }
| ^^^^^ help: you can use a raw identifier to stay compatible: `r#async` | ^^^^^ help: you can use a raw identifier to stay compatible: `r#async`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `async` is a keyword in the 2018 edition error: `async` is a keyword in the 2018 edition
@ -90,7 +90,7 @@ error: `async` is a keyword in the 2018 edition
LL | struct async {} LL | struct async {}
| ^^^^^ help: you can use a raw identifier to stay compatible: `r#async` | ^^^^^ help: you can use a raw identifier to stay compatible: `r#async`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `async` is a keyword in the 2018 edition error: `async` is a keyword in the 2018 edition
@ -99,7 +99,7 @@ error: `async` is a keyword in the 2018 edition
LL | let async: async = async {}; LL | let async: async = async {};
| ^^^^^ help: you can use a raw identifier to stay compatible: `r#async` | ^^^^^ help: you can use a raw identifier to stay compatible: `r#async`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `async` is a keyword in the 2018 edition error: `async` is a keyword in the 2018 edition
@ -108,7 +108,7 @@ error: `async` is a keyword in the 2018 edition
LL | let async: async = async {}; LL | let async: async = async {};
| ^^^^^ help: you can use a raw identifier to stay compatible: `r#async` | ^^^^^ help: you can use a raw identifier to stay compatible: `r#async`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `async` is a keyword in the 2018 edition error: `async` is a keyword in the 2018 edition
@ -117,7 +117,7 @@ error: `async` is a keyword in the 2018 edition
LL | let async: async = async {}; LL | let async: async = async {};
| ^^^^^ help: you can use a raw identifier to stay compatible: `r#async` | ^^^^^ help: you can use a raw identifier to stay compatible: `r#async`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `async` is a keyword in the 2018 edition error: `async` is a keyword in the 2018 edition
@ -126,7 +126,7 @@ error: `async` is a keyword in the 2018 edition
LL | () => (pub fn async() {}) LL | () => (pub fn async() {})
| ^^^^^ help: you can use a raw identifier to stay compatible: `r#async` | ^^^^^ help: you can use a raw identifier to stay compatible: `r#async`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: `async` is a keyword in the 2018 edition error: `async` is a keyword in the 2018 edition
@ -135,7 +135,7 @@ error: `async` is a keyword in the 2018 edition
LL | (async) => (1) LL | (async) => (1)
| ^^^^^ help: you can use a raw identifier to stay compatible: `r#async` | ^^^^^ help: you can use a raw identifier to stay compatible: `r#async`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: aborting due to 15 previous errors error: aborting due to 15 previous errors

View file

@ -6,5 +6,5 @@
fn main() { fn main() {
let r#dyn = (); //~ ERROR dyn let r#dyn = (); //~ ERROR dyn
//~^ WARN this is valid in the current edition //~^ WARN this is accepted in the current edition
} }

View file

@ -6,5 +6,5 @@
fn main() { fn main() {
let dyn = (); //~ ERROR dyn let dyn = (); //~ ERROR dyn
//~^ WARN this is valid in the current edition //~^ WARN this is accepted in the current edition
} }

View file

@ -9,7 +9,7 @@ note: the lint level is defined here
| |
LL | #![deny(keyword_idents)] LL | #![deny(keyword_idents)]
| ^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: aborting due to previous error error: aborting due to previous error

View file

@ -8,20 +8,19 @@ mod foo {
type Bar; type Bar;
} }
crate struct Baz { } crate struct Baz {}
impl Foo for Baz { impl Foo for Baz {
type Bar = (); type Bar = ();
} }
} }
fn main() { fn main() {
let _: <foo::Baz as crate::foo::Foo>::Bar = (); let _: <foo::Baz as crate::foo::Foo>::Bar = ();
//~^ ERROR absolute paths must start with //~^ ERROR absolute paths must start with
//~| this is valid in the current edition //~| this is accepted in the current edition
let _: <crate::foo::Baz as foo::Foo>::Bar = (); let _: <crate::foo::Baz as foo::Foo>::Bar = ();
//~^ ERROR absolute paths must start with //~^ ERROR absolute paths must start with
//~| this is valid in the current edition //~| this is accepted in the current edition
} }

View file

@ -8,20 +8,19 @@ mod foo {
type Bar; type Bar;
} }
crate struct Baz { } crate struct Baz {}
impl Foo for Baz { impl Foo for Baz {
type Bar = (); type Bar = ();
} }
} }
fn main() { fn main() {
let _: <foo::Baz as ::foo::Foo>::Bar = (); let _: <foo::Baz as ::foo::Foo>::Bar = ();
//~^ ERROR absolute paths must start with //~^ ERROR absolute paths must start with
//~| this is valid in the current edition //~| this is accepted in the current edition
let _: <::foo::Baz as foo::Foo>::Bar = (); let _: <::foo::Baz as foo::Foo>::Bar = ();
//~^ ERROR absolute paths must start with //~^ ERROR absolute paths must start with
//~| this is valid in the current edition //~| this is accepted in the current edition
} }

View file

@ -1,5 +1,5 @@
error: absolute paths must start with `self`, `super`, `crate`, or an external crate name in the 2018 edition error: absolute paths must start with `self`, `super`, `crate`, or an external crate name in the 2018 edition
--> $DIR/edition-lint-fully-qualified-paths.rs:20:25 --> $DIR/edition-lint-fully-qualified-paths.rs:19:25
| |
LL | let _: <foo::Baz as ::foo::Foo>::Bar = (); LL | let _: <foo::Baz as ::foo::Foo>::Bar = ();
| ^^^^^^^^^^ help: use `crate`: `crate::foo::Foo` | ^^^^^^^^^^ help: use `crate`: `crate::foo::Foo`
@ -9,16 +9,16 @@ note: the lint level is defined here
| |
LL | #![deny(absolute_paths_not_starting_with_crate)] LL | #![deny(absolute_paths_not_starting_with_crate)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130> = note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130>
error: absolute paths must start with `self`, `super`, `crate`, or an external crate name in the 2018 edition error: absolute paths must start with `self`, `super`, `crate`, or an external crate name in the 2018 edition
--> $DIR/edition-lint-fully-qualified-paths.rs:24:13 --> $DIR/edition-lint-fully-qualified-paths.rs:23:13
| |
LL | let _: <::foo::Baz as foo::Foo>::Bar = (); LL | let _: <::foo::Baz as foo::Foo>::Bar = ();
| ^^^^^^^^^^ help: use `crate`: `crate::foo::Baz` | ^^^^^^^^^^ help: use `crate`: `crate::foo::Baz`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130> = note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130>
error: aborting due to 2 previous errors error: aborting due to 2 previous errors

View file

@ -16,15 +16,15 @@ crate mod foo {
use crate::foo::{bar::{baz::{}}}; use crate::foo::{bar::{baz::{}}};
//~^ ERROR absolute paths must start with //~^ ERROR absolute paths must start with
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
use crate::foo::{bar::{XX, baz::{}}}; use crate::foo::{bar::{XX, baz::{}}};
//~^ ERROR absolute paths must start with //~^ ERROR absolute paths must start with
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
use crate::foo::{bar::{baz::{}, baz1::{}}}; use crate::foo::{bar::{baz::{}, baz1::{}}};
//~^ ERROR absolute paths must start with //~^ ERROR absolute paths must start with
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
fn main() { fn main() {
} }

View file

@ -16,15 +16,15 @@ crate mod foo {
use foo::{bar::{baz::{}}}; use foo::{bar::{baz::{}}};
//~^ ERROR absolute paths must start with //~^ ERROR absolute paths must start with
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
use foo::{bar::{XX, baz::{}}}; use foo::{bar::{XX, baz::{}}};
//~^ ERROR absolute paths must start with //~^ ERROR absolute paths must start with
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
use foo::{bar::{baz::{}, baz1::{}}}; use foo::{bar::{baz::{}, baz1::{}}};
//~^ ERROR absolute paths must start with //~^ ERROR absolute paths must start with
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
fn main() { fn main() {
} }

View file

@ -9,7 +9,7 @@ note: the lint level is defined here
| |
LL | #![deny(absolute_paths_not_starting_with_crate)] LL | #![deny(absolute_paths_not_starting_with_crate)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130> = note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130>
error: absolute paths must start with `self`, `super`, `crate`, or an external crate name in the 2018 edition error: absolute paths must start with `self`, `super`, `crate`, or an external crate name in the 2018 edition
@ -18,7 +18,7 @@ error: absolute paths must start with `self`, `super`, `crate`, or an external c
LL | use foo::{bar::{XX, baz::{}}}; LL | use foo::{bar::{XX, baz::{}}};
| ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `crate`: `crate::foo::{bar::{XX, baz::{}}}` | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `crate`: `crate::foo::{bar::{XX, baz::{}}}`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130> = note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130>
error: absolute paths must start with `self`, `super`, `crate`, or an external crate name in the 2018 edition error: absolute paths must start with `self`, `super`, `crate`, or an external crate name in the 2018 edition
@ -27,7 +27,7 @@ error: absolute paths must start with `self`, `super`, `crate`, or an external c
LL | use foo::{bar::{baz::{}, baz1::{}}}; LL | use foo::{bar::{baz::{}, baz1::{}}};
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `crate`: `crate::foo::{bar::{baz::{}, baz1::{}}}` | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `crate`: `crate::foo::{bar::{baz::{}, baz1::{}}}`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130> = note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130>
error: aborting due to 3 previous errors error: aborting due to 3 previous errors

View file

@ -5,7 +5,7 @@
use crate::foo::{a, b}; use crate::foo::{a, b};
//~^ ERROR absolute paths must start with //~^ ERROR absolute paths must start with
//~| this is valid in the current edition //~| this is accepted in the current edition
mod foo { mod foo {
crate fn a() {} crate fn a() {}
@ -20,7 +20,7 @@ fn main() {
{ {
use crate::foo::{self as x, c}; use crate::foo::{self as x, c};
//~^ ERROR absolute paths must start with //~^ ERROR absolute paths must start with
//~| this is valid in the current edition //~| this is accepted in the current edition
x::a(); x::a();
c(); c();
} }

View file

@ -5,7 +5,7 @@
use foo::{a, b}; use foo::{a, b};
//~^ ERROR absolute paths must start with //~^ ERROR absolute paths must start with
//~| this is valid in the current edition //~| this is accepted in the current edition
mod foo { mod foo {
crate fn a() {} crate fn a() {}
@ -20,7 +20,7 @@ fn main() {
{ {
use foo::{self as x, c}; use foo::{self as x, c};
//~^ ERROR absolute paths must start with //~^ ERROR absolute paths must start with
//~| this is valid in the current edition //~| this is accepted in the current edition
x::a(); x::a();
c(); c();
} }

View file

@ -9,7 +9,7 @@ note: the lint level is defined here
| |
LL | #![deny(absolute_paths_not_starting_with_crate)] LL | #![deny(absolute_paths_not_starting_with_crate)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130> = note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130>
error: absolute paths must start with `self`, `super`, `crate`, or an external crate name in the 2018 edition error: absolute paths must start with `self`, `super`, `crate`, or an external crate name in the 2018 edition
@ -18,7 +18,7 @@ error: absolute paths must start with `self`, `super`, `crate`, or an external c
LL | use foo::{self as x, c}; LL | use foo::{self as x, c};
| ^^^^^^^^^^^^^^^^^^^ help: use `crate`: `crate::foo::{self as x, c}` | ^^^^^^^^^^^^^^^^^^^ help: use `crate`: `crate::foo::{self as x, c}`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130> = note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130>
error: aborting due to 2 previous errors error: aborting due to 2 previous errors

View file

@ -11,30 +11,29 @@ pub mod foo {
use edition_lint_paths; use edition_lint_paths;
use crate::bar::Bar; use crate::bar::Bar;
//~^ ERROR absolute //~^ ERROR absolute
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
use super::bar::Bar2; use super::bar::Bar2;
use crate::bar::Bar3; use crate::bar::Bar3;
use crate::bar; use crate::bar;
//~^ ERROR absolute //~^ ERROR absolute
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
use crate::{bar as something_else}; use crate::bar as something_else;
use crate::{Bar as SomethingElse, main}; use crate::{main, Bar as SomethingElse};
//~^ ERROR absolute //~^ ERROR absolute
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
use crate::{Bar as SomethingElse2, main as another_main}; use crate::{main as another_main, Bar as SomethingElse2};
pub fn test() { pub fn test() {}
}
pub trait SomeTrait { } pub trait SomeTrait {}
} }
use crate::bar::Bar; use crate::bar::Bar;
//~^ ERROR absolute //~^ ERROR absolute
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
pub mod bar { pub mod bar {
use edition_lint_paths as foo; use edition_lint_paths as foo;
@ -46,17 +45,17 @@ pub mod bar {
mod baz { mod baz {
use crate::*; use crate::*;
//~^ ERROR absolute //~^ ERROR absolute
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }
impl crate::foo::SomeTrait for u32 { } impl crate::foo::SomeTrait for u32 {}
//~^ ERROR absolute //~^ ERROR absolute
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
fn main() { fn main() {
let x = crate::bar::Bar; let x = crate::bar::Bar;
//~^ ERROR absolute //~^ ERROR absolute
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
let x = bar::Bar; let x = bar::Bar;
let x = crate::bar::Bar; let x = crate::bar::Bar;
let x = self::bar::Bar; let x = self::bar::Bar;

View file

@ -9,32 +9,31 @@ extern crate edition_lint_paths;
pub mod foo { pub mod foo {
use edition_lint_paths; use edition_lint_paths;
use ::bar::Bar; use bar::Bar;
//~^ ERROR absolute //~^ ERROR absolute
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
use super::bar::Bar2; use super::bar::Bar2;
use crate::bar::Bar3; use crate::bar::Bar3;
use bar; use bar;
//~^ ERROR absolute //~^ ERROR absolute
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
use crate::{bar as something_else}; use crate::bar as something_else;
use {Bar as SomethingElse, main}; use {main, Bar as SomethingElse};
//~^ ERROR absolute //~^ ERROR absolute
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
use crate::{Bar as SomethingElse2, main as another_main}; use crate::{main as another_main, Bar as SomethingElse2};
pub fn test() { pub fn test() {}
}
pub trait SomeTrait { } pub trait SomeTrait {}
} }
use bar::Bar; use bar::Bar;
//~^ ERROR absolute //~^ ERROR absolute
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
pub mod bar { pub mod bar {
use edition_lint_paths as foo; use edition_lint_paths as foo;
@ -46,17 +45,17 @@ pub mod bar {
mod baz { mod baz {
use *; use *;
//~^ ERROR absolute //~^ ERROR absolute
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }
impl ::foo::SomeTrait for u32 { } impl ::foo::SomeTrait for u32 {}
//~^ ERROR absolute //~^ ERROR absolute
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
fn main() { fn main() {
let x = ::bar::Bar; let x = ::bar::Bar;
//~^ ERROR absolute //~^ ERROR absolute
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
let x = bar::Bar; let x = bar::Bar;
let x = crate::bar::Bar; let x = crate::bar::Bar;
let x = self::bar::Bar; let x = self::bar::Bar;

View file

@ -1,15 +1,15 @@
error: absolute paths must start with `self`, `super`, `crate`, or an external crate name in the 2018 edition error: absolute paths must start with `self`, `super`, `crate`, or an external crate name in the 2018 edition
--> $DIR/edition-lint-paths.rs:12:9 --> $DIR/edition-lint-paths.rs:12:9
| |
LL | use ::bar::Bar; LL | use bar::Bar;
| ^^^^^^^^^^ help: use `crate`: `crate::bar::Bar` | ^^^^^^^^ help: use `crate`: `crate::bar::Bar`
| |
note: the lint level is defined here note: the lint level is defined here
--> $DIR/edition-lint-paths.rs:5:9 --> $DIR/edition-lint-paths.rs:5:9
| |
LL | #![deny(absolute_paths_not_starting_with_crate)] LL | #![deny(absolute_paths_not_starting_with_crate)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130> = note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130>
error: absolute paths must start with `self`, `super`, `crate`, or an external crate name in the 2018 edition error: absolute paths must start with `self`, `super`, `crate`, or an external crate name in the 2018 edition
@ -18,52 +18,52 @@ error: absolute paths must start with `self`, `super`, `crate`, or an external c
LL | use bar; LL | use bar;
| ^^^ help: use `crate`: `crate::bar` | ^^^ help: use `crate`: `crate::bar`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130> = note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130>
error: absolute paths must start with `self`, `super`, `crate`, or an external crate name in the 2018 edition error: absolute paths must start with `self`, `super`, `crate`, or an external crate name in the 2018 edition
--> $DIR/edition-lint-paths.rs:23:9 --> $DIR/edition-lint-paths.rs:23:9
| |
LL | use {Bar as SomethingElse, main}; LL | use {main, Bar as SomethingElse};
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `crate`: `crate::{Bar as SomethingElse, main}` | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `crate`: `crate::{main, Bar as SomethingElse}`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130> = note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130>
error: absolute paths must start with `self`, `super`, `crate`, or an external crate name in the 2018 edition error: absolute paths must start with `self`, `super`, `crate`, or an external crate name in the 2018 edition
--> $DIR/edition-lint-paths.rs:35:5 --> $DIR/edition-lint-paths.rs:34:5
| |
LL | use bar::Bar; LL | use bar::Bar;
| ^^^^^^^^ help: use `crate`: `crate::bar::Bar` | ^^^^^^^^ help: use `crate`: `crate::bar::Bar`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130> = note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130>
error: absolute paths must start with `self`, `super`, `crate`, or an external crate name in the 2018 edition error: absolute paths must start with `self`, `super`, `crate`, or an external crate name in the 2018 edition
--> $DIR/edition-lint-paths.rs:47:9 --> $DIR/edition-lint-paths.rs:46:9
| |
LL | use *; LL | use *;
| ^ help: use `crate`: `crate::*` | ^ help: use `crate`: `crate::*`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130> = note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130>
error: absolute paths must start with `self`, `super`, `crate`, or an external crate name in the 2018 edition error: absolute paths must start with `self`, `super`, `crate`, or an external crate name in the 2018 edition
--> $DIR/edition-lint-paths.rs:52:6 --> $DIR/edition-lint-paths.rs:51:6
| |
LL | impl ::foo::SomeTrait for u32 { } LL | impl ::foo::SomeTrait for u32 {}
| ^^^^^^^^^^^^^^^^ help: use `crate`: `crate::foo::SomeTrait` | ^^^^^^^^^^^^^^^^ help: use `crate`: `crate::foo::SomeTrait`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130> = note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130>
error: absolute paths must start with `self`, `super`, `crate`, or an external crate name in the 2018 edition error: absolute paths must start with `self`, `super`, `crate`, or an external crate name in the 2018 edition
--> $DIR/edition-lint-paths.rs:57:13 --> $DIR/edition-lint-paths.rs:56:13
| |
LL | let x = ::bar::Bar; LL | let x = ::bar::Bar;
| ^^^^^^^^^^ help: use `crate`: `crate::bar::Bar` | ^^^^^^^^^^ help: use `crate`: `crate::bar::Bar`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130> = note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130>
error: aborting due to 7 previous errors error: aborting due to 7 previous errors

View file

@ -11,7 +11,7 @@ extern crate edition_lint_paths as my_crate;
use crate::my_crate::foo; use crate::my_crate::foo;
//~^ ERROR absolute paths must start //~^ ERROR absolute paths must start
//~| WARNING this is valid in the current edition //~| WARNING this is accepted in the current edition
fn main() { fn main() {
foo(); foo();

View file

@ -11,7 +11,7 @@ extern crate edition_lint_paths as my_crate;
use my_crate::foo; use my_crate::foo;
//~^ ERROR absolute paths must start //~^ ERROR absolute paths must start
//~| WARNING this is valid in the current edition //~| WARNING this is accepted in the current edition
fn main() { fn main() {
foo(); foo();

View file

@ -9,7 +9,7 @@ note: the lint level is defined here
| |
LL | #![deny(absolute_paths_not_starting_with_crate)] LL | #![deny(absolute_paths_not_starting_with_crate)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130> = note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130>
error: aborting due to previous error error: aborting due to previous error

View file

@ -18,7 +18,7 @@ mod m {
// *could* rewrite it to `use edition_lint_paths::foo` // *could* rewrite it to `use edition_lint_paths::foo`
use crate::m::edition_lint_paths::foo; use crate::m::edition_lint_paths::foo;
//~^ ERROR absolute paths must start //~^ ERROR absolute paths must start
//~| WARNING this is valid in the current edition //~| WARNING this is accepted in the current edition
fn main() { fn main() {
foo(); foo();

View file

@ -18,7 +18,7 @@ mod m {
// *could* rewrite it to `use edition_lint_paths::foo` // *could* rewrite it to `use edition_lint_paths::foo`
use m::edition_lint_paths::foo; use m::edition_lint_paths::foo;
//~^ ERROR absolute paths must start //~^ ERROR absolute paths must start
//~| WARNING this is valid in the current edition //~| WARNING this is accepted in the current edition
fn main() { fn main() {
foo(); foo();

View file

@ -9,7 +9,7 @@ note: the lint level is defined here
| |
LL | #![deny(absolute_paths_not_starting_with_crate)] LL | #![deny(absolute_paths_not_starting_with_crate)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130> = note: for more information, see issue #53130 <https://github.com/rust-lang/rust/issues/53130>
error: aborting due to previous error error: aborting due to previous error

View file

@ -6,10 +6,10 @@
fn main() { fn main() {
r#try(); r#try();
//~^ WARNING `try` is a keyword in the 2018 edition //~^ WARNING `try` is a keyword in the 2018 edition
//~| WARNING this is valid in the current edition //~| WARNING this is accepted in the current edition
} }
fn r#try() { fn r#try() {
//~^ WARNING `try` is a keyword in the 2018 edition //~^ WARNING `try` is a keyword in the 2018 edition
//~| WARNING this is valid in the current edition //~| WARNING this is accepted in the current edition
} }

View file

@ -6,10 +6,10 @@
fn main() { fn main() {
try(); try();
//~^ WARNING `try` is a keyword in the 2018 edition //~^ WARNING `try` is a keyword in the 2018 edition
//~| WARNING this is valid in the current edition //~| WARNING this is accepted in the current edition
} }
fn try() { fn try() {
//~^ WARNING `try` is a keyword in the 2018 edition //~^ WARNING `try` is a keyword in the 2018 edition
//~| WARNING this is valid in the current edition //~| WARNING this is accepted in the current edition
} }

View file

@ -10,7 +10,7 @@ note: the lint level is defined here
LL | #![warn(rust_2018_compatibility)] LL | #![warn(rust_2018_compatibility)]
| ^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^
= note: `#[warn(keyword_idents)]` implied by `#[warn(rust_2018_compatibility)]` = note: `#[warn(keyword_idents)]` implied by `#[warn(rust_2018_compatibility)]`
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
warning: `try` is a keyword in the 2018 edition warning: `try` is a keyword in the 2018 edition
@ -19,7 +19,7 @@ warning: `try` is a keyword in the 2018 edition
LL | fn try() { LL | fn try() {
| ^^^ help: you can use a raw identifier to stay compatible: `r#try` | ^^^ help: you can use a raw identifier to stay compatible: `r#try`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
warning: 2 warnings emitted warning: 2 warnings emitted

View file

@ -11,8 +11,8 @@ fn foo() -> Result<usize, ()> {
let x: Result<usize, ()> = Ok(22); let x: Result<usize, ()> = Ok(22);
r#try!(x); r#try!(x);
//~^ WARNING `try` is a keyword in the 2018 edition //~^ WARNING `try` is a keyword in the 2018 edition
//~| WARNING this is valid in the current edition //~| WARNING this is accepted in the current edition
Ok(44) Ok(44)
} }
fn main() { } fn main() {}

View file

@ -11,8 +11,8 @@ fn foo() -> Result<usize, ()> {
let x: Result<usize, ()> = Ok(22); let x: Result<usize, ()> = Ok(22);
try!(x); try!(x);
//~^ WARNING `try` is a keyword in the 2018 edition //~^ WARNING `try` is a keyword in the 2018 edition
//~| WARNING this is valid in the current edition //~| WARNING this is accepted in the current edition
Ok(44) Ok(44)
} }
fn main() { } fn main() {}

View file

@ -10,7 +10,7 @@ note: the lint level is defined here
LL | #![warn(rust_2018_compatibility)] LL | #![warn(rust_2018_compatibility)]
| ^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^
= note: `#[warn(keyword_idents)]` implied by `#[warn(rust_2018_compatibility)]` = note: `#[warn(keyword_idents)]` implied by `#[warn(rust_2018_compatibility)]`
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2018 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716> = note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
warning: 1 warning emitted warning: 1 warning emitted

View file

@ -17,11 +17,11 @@ pub struct Qux<T>(T);
#[dom_struct] #[dom_struct]
pub struct Foo { pub struct Foo {
//~^ ERROR trait objects without an explicit `dyn` are deprecated [bare_trait_objects] //~^ ERROR trait objects without an explicit `dyn` are deprecated [bare_trait_objects]
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
qux: Qux<Qux<Baz>>, qux: Qux<Qux<Baz>>,
bar: Box<Bar>, bar: Box<Bar>,
//~^ ERROR trait objects without an explicit `dyn` are deprecated [bare_trait_objects] //~^ ERROR trait objects without an explicit `dyn` are deprecated [bare_trait_objects]
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }
fn main() {} fn main() {}

View file

@ -9,7 +9,7 @@ note: the lint level is defined here
| |
LL | #![deny(bare_trait_objects)] LL | #![deny(bare_trait_objects)]
| ^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
error: trait objects without an explicit `dyn` are deprecated error: trait objects without an explicit `dyn` are deprecated
@ -18,7 +18,7 @@ error: trait objects without an explicit `dyn` are deprecated
LL | pub struct Foo { LL | pub struct Foo {
| ^^^ help: use `dyn`: `dyn pub` | ^^^ help: use `dyn`: `dyn pub`
| |
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
error: aborting due to 2 previous errors error: aborting due to 2 previous errors

View file

@ -7,7 +7,7 @@ trait Foo {
fn foo(_x: Foo + Send) { fn foo(_x: Foo + Send) {
//~^ ERROR the size for values of type //~^ ERROR the size for values of type
//~| WARN trait objects without an explicit `dyn` are deprecated //~| WARN trait objects without an explicit `dyn` are deprecated
//~| WARN this is valid in the current edition //~| WARN this is accepted in the current edition
} }
fn main() {} fn main() {}

View file

@ -5,7 +5,7 @@ LL | fn foo(_x: Foo + Send) {
| ^^^^^^^^^^ help: use `dyn`: `dyn Foo + Send` | ^^^^^^^^^^ help: use `dyn`: `dyn Foo + Send`
| |
= note: `#[warn(bare_trait_objects)]` on by default = note: `#[warn(bare_trait_objects)]` on by default
= warning: this is valid in the current edition (Rust 2015) but is not accepted in the Rust 2021 edition! = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
= note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165> = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
error[E0277]: the size for values of type `(dyn Foo + Send + 'static)` cannot be known at compilation time error[E0277]: the size for values of type `(dyn Foo + Send + 'static)` cannot be known at compilation time