Skip to content

Commit

Permalink
Harden non-const items to not accept underscore names.
Browse files Browse the repository at this point in the history
  • Loading branch information
Centril committed Jun 10, 2019
1 parent 56d71c2 commit 48e863e
Show file tree
Hide file tree
Showing 4 changed files with 122 additions and 11 deletions.
30 changes: 30 additions & 0 deletions src/test/ui/parser/underscore_item_not_const.rs
Original file line number Diff line number Diff line change
@@ -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() {}
92 changes: 92 additions & 0 deletions src/test/ui/parser/underscore_item_not_const.stderr
Original file line number Diff line number Diff line change
@@ -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

3 changes: 0 additions & 3 deletions src/test/ui/parser/underscore_static.rs

This file was deleted.

8 changes: 0 additions & 8 deletions src/test/ui/parser/underscore_static.stderr

This file was deleted.

0 comments on commit 48e863e

Please sign in to comment.