Harden non-const items to not accept underscore names.

This commit is contained in:
Mazdak Farrokhzad 2019-05-30 15:37:10 +02:00
parent 56d71c2910
commit 48e863ed69
4 changed files with 122 additions and 11 deletions

View file

@ -0,0 +1,30 @@
// Test that various non-const items and associated consts do not permit `_` as a name.
// Associated `const`s:
pub trait A {
const _: () = (); //~ ERROR expected identifier, found reserved identifier `_`
}
impl A for () {
const _: () = (); //~ ERROR expected identifier, found reserved identifier `_`
}
impl dyn A {
const _: () = (); //~ ERROR expected identifier, found reserved identifier `_`
}
// Other kinds of items:
static _: () = (); //~ ERROR expected identifier, found reserved identifier `_`
struct _(); //~ ERROR expected identifier, found reserved identifier `_`
enum _ {} //~ ERROR expected identifier, found reserved identifier `_`
fn _() {} //~ ERROR expected identifier, found reserved identifier `_`
mod _ {} //~ ERROR expected identifier, found reserved identifier `_`
type _ = (); //~ ERROR expected identifier, found reserved identifier `_`
use _; //~ ERROR expected identifier, found reserved identifier `_`
use _ as g; //~ ERROR expected identifier, found reserved identifier `_`
trait _ {} //~ ERROR expected identifier, found reserved identifier `_`
trait _ = Copy; //~ ERROR expected identifier, found reserved identifier `_`
macro_rules! _ { () => {} } //~ ERROR expected identifier, found reserved identifier `_`
union _ { f: u8 } //~ ERROR expected one of `!` or `::`, found `_`
fn main() {}

View file

@ -0,0 +1,92 @@
error: expected identifier, found reserved identifier `_`
--> $DIR/underscore_item_not_const.rs:6:11
|
LL | const _: () = ();
| ^ expected identifier, found reserved identifier
error: expected identifier, found reserved identifier `_`
--> $DIR/underscore_item_not_const.rs:9:11
|
LL | const _: () = ();
| ^ expected identifier, found reserved identifier
error: expected identifier, found reserved identifier `_`
--> $DIR/underscore_item_not_const.rs:12:11
|
LL | const _: () = ();
| ^ expected identifier, found reserved identifier
error: expected identifier, found reserved identifier `_`
--> $DIR/underscore_item_not_const.rs:17:8
|
LL | static _: () = ();
| ^ expected identifier, found reserved identifier
error: expected identifier, found reserved identifier `_`
--> $DIR/underscore_item_not_const.rs:18:8
|
LL | struct _();
| ^ expected identifier, found reserved identifier
error: expected identifier, found reserved identifier `_`
--> $DIR/underscore_item_not_const.rs:19:6
|
LL | enum _ {}
| ^ expected identifier, found reserved identifier
error: expected identifier, found reserved identifier `_`
--> $DIR/underscore_item_not_const.rs:20:4
|
LL | fn _() {}
| ^ expected identifier, found reserved identifier
error: expected identifier, found reserved identifier `_`
--> $DIR/underscore_item_not_const.rs:21:5
|
LL | mod _ {}
| ^ expected identifier, found reserved identifier
error: expected identifier, found reserved identifier `_`
--> $DIR/underscore_item_not_const.rs:22:6
|
LL | type _ = ();
| ^ expected identifier, found reserved identifier
error: expected identifier, found reserved identifier `_`
--> $DIR/underscore_item_not_const.rs:23:5
|
LL | use _;
| ^ expected identifier, found reserved identifier
error: expected identifier, found reserved identifier `_`
--> $DIR/underscore_item_not_const.rs:24:5
|
LL | use _ as g;
| ^ expected identifier, found reserved identifier
error: expected identifier, found reserved identifier `_`
--> $DIR/underscore_item_not_const.rs:25:7
|
LL | trait _ {}
| ^ expected identifier, found reserved identifier
error: expected identifier, found reserved identifier `_`
--> $DIR/underscore_item_not_const.rs:26:7
|
LL | trait _ = Copy;
| ^ expected identifier, found reserved identifier
error: expected identifier, found reserved identifier `_`
--> $DIR/underscore_item_not_const.rs:27:14
|
LL | macro_rules! _ { () => {} }
| ^ expected identifier, found reserved identifier
error: expected one of `!` or `::`, found `_`
--> $DIR/underscore_item_not_const.rs:28:7
|
LL | union _ { f: u8 }
| ^ expected one of `!` or `::` here
error: aborting due to 15 previous errors

View file

@ -1,3 +0,0 @@
static _: () = (); //~ ERROR expected identifier, found reserved identifier `_`
fn main() {}

View file

@ -1,8 +0,0 @@
error: expected identifier, found reserved identifier `_`
--> $DIR/underscore_static.rs:1:8
|
LL | static _: () = ();
| ^ expected identifier, found reserved identifier
error: aborting due to previous error