Rollup merge of #54261 - varkor:dyn-keyword-2018, r=petrochenkov

Make `dyn` a keyword in the 2018 edition

Proposed in https://github.com/rust-lang/rust/issues/44662#issuecomment-421596088.
This commit is contained in:
Pietro Albini 2018-09-22 09:56:27 +02:00 committed by GitHub
commit 822c51121e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 72 additions and 14 deletions

View file

@ -0,0 +1,10 @@
// edition:2015
// run-rustfix
#![allow(unused_variables)]
#![deny(keyword_idents)]
fn main() {
let r#dyn = (); //~ ERROR dyn
//~^ WARN hard error in the 2018 edition
}

View file

@ -0,0 +1,10 @@
// edition:2015
// run-rustfix
#![allow(unused_variables)]
#![deny(keyword_idents)]
fn main() {
let dyn = (); //~ ERROR dyn
//~^ WARN hard error in the 2018 edition
}

View file

@ -0,0 +1,16 @@
error: `dyn` is a keyword in the 2018 edition
--> $DIR/dyn-keyword.rs:8:9
|
LL | let dyn = (); //~ ERROR dyn
| ^^^ help: you can use a raw identifier to stay compatible: `r#dyn`
|
note: lint level defined here
--> $DIR/dyn-keyword.rs:5:9
|
LL | #![deny(keyword_idents)]
| ^^^^^^^^^^^^^^
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2018 edition!
= note: for more information, see issue #49716 <https://github.com/rust-lang/rust/issues/49716>
error: aborting due to previous error

View file

@ -0,0 +1,8 @@
// edition:2018
type A0 = dyn;
type A1 = dyn::dyn; //~ERROR expected identifier, found reserved keyword
type A2 = dyn<dyn, dyn>; //~ERROR expected identifier, found `<`
type A3 = dyn<<dyn as dyn>::dyn>;
fn main() {}

View file

@ -0,0 +1,14 @@
error: expected identifier, found reserved keyword `dyn`
--> $DIR/dyn-trait-compatibility.rs:4:16
|
LL | type A1 = dyn::dyn; //~ERROR expected identifier, found reserved keyword
| ^^^ expected identifier, found reserved keyword
error: expected identifier, found `<`
--> $DIR/dyn-trait-compatibility.rs:5:14
|
LL | type A2 = dyn<dyn, dyn>; //~ERROR expected identifier, found `<`
| ^ expected identifier
error: aborting due to 2 previous errors