Remove the proc
keyword again
This commit is contained in:
parent
c4352ff198
commit
dae5f05f43
25 changed files with 31 additions and 451 deletions
|
@ -386,25 +386,20 @@ declare_keywords! {
|
||||||
|
|
||||||
// Edition-specific keywords reserved for future use.
|
// Edition-specific keywords reserved for future use.
|
||||||
(55, Async, "async") // >= 2018 Edition Only
|
(55, Async, "async") // >= 2018 Edition Only
|
||||||
(56, Proc, "proc") // <= 2015 Edition Only
|
|
||||||
|
|
||||||
// Special lifetime names
|
// Special lifetime names
|
||||||
(57, UnderscoreLifetime, "'_")
|
(56, UnderscoreLifetime, "'_")
|
||||||
(58, StaticLifetime, "'static")
|
(57, StaticLifetime, "'static")
|
||||||
|
|
||||||
// Weak keywords, have special meaning only in specific contexts.
|
// Weak keywords, have special meaning only in specific contexts.
|
||||||
(59, Auto, "auto")
|
(58, Auto, "auto")
|
||||||
(60, Catch, "catch")
|
(59, Catch, "catch")
|
||||||
(61, Default, "default")
|
(60, Default, "default")
|
||||||
(62, Dyn, "dyn")
|
(61, Dyn, "dyn")
|
||||||
(63, Union, "union")
|
(62, Union, "union")
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Symbol {
|
impl Symbol {
|
||||||
fn is_unused_keyword_2015(self) -> bool {
|
|
||||||
self == keywords::Proc.name()
|
|
||||||
}
|
|
||||||
|
|
||||||
fn is_unused_keyword_2018(self) -> bool {
|
fn is_unused_keyword_2018(self) -> bool {
|
||||||
self == keywords::Async.name()
|
self == keywords::Async.name()
|
||||||
}
|
}
|
||||||
|
@ -426,7 +421,6 @@ impl Ident {
|
||||||
pub fn is_unused_keyword(self) -> bool {
|
pub fn is_unused_keyword(self) -> bool {
|
||||||
// Note: `span.edition()` is relatively expensive, don't call it unless necessary.
|
// Note: `span.edition()` is relatively expensive, don't call it unless necessary.
|
||||||
self.name >= keywords::Abstract.name() && self.name <= keywords::Yield.name() ||
|
self.name >= keywords::Abstract.name() && self.name <= keywords::Yield.name() ||
|
||||||
self.name.is_unused_keyword_2015() && self.span.edition() == Edition::Edition2015 ||
|
|
||||||
self.name.is_unused_keyword_2018() && self.span.edition() == Edition::Edition2018
|
self.name.is_unused_keyword_2018() && self.span.edition() == Edition::Edition2018
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,6 @@
|
||||||
|
|
||||||
#![feature(raw_identifiers)]
|
#![feature(raw_identifiers)]
|
||||||
|
|
||||||
// `async`
|
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! produces_async {
|
macro_rules! produces_async {
|
||||||
() => (pub fn async() {})
|
() => (pub fn async() {})
|
||||||
|
@ -37,29 +36,3 @@ macro_rules! consumes_async_raw {
|
||||||
macro_rules! passes_ident {
|
macro_rules! passes_ident {
|
||||||
($i: ident) => ($i)
|
($i: ident) => ($i)
|
||||||
}
|
}
|
||||||
|
|
||||||
// `proc`
|
|
||||||
#[macro_export]
|
|
||||||
macro_rules! produces_proc {
|
|
||||||
() => (pub fn proc() {})
|
|
||||||
}
|
|
||||||
|
|
||||||
#[macro_export]
|
|
||||||
macro_rules! produces_proc_raw {
|
|
||||||
() => (pub fn r#proc() {})
|
|
||||||
}
|
|
||||||
|
|
||||||
#[macro_export]
|
|
||||||
macro_rules! consumes_proc {
|
|
||||||
(proc) => (1)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[macro_export]
|
|
||||||
macro_rules! consumes_proc_raw {
|
|
||||||
(r#proc) => (1)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[macro_export]
|
|
||||||
macro_rules! passes_ident {
|
|
||||||
($i: ident) => ($i)
|
|
||||||
}
|
|
||||||
|
|
|
@ -12,7 +12,6 @@
|
||||||
|
|
||||||
#![feature(raw_identifiers)]
|
#![feature(raw_identifiers)]
|
||||||
|
|
||||||
// `async`
|
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! produces_async {
|
macro_rules! produces_async {
|
||||||
() => (pub fn async() {})
|
() => (pub fn async() {})
|
||||||
|
@ -37,29 +36,3 @@ macro_rules! consumes_async_raw {
|
||||||
macro_rules! passes_ident {
|
macro_rules! passes_ident {
|
||||||
($i: ident) => ($i)
|
($i: ident) => ($i)
|
||||||
}
|
}
|
||||||
|
|
||||||
// `proc`
|
|
||||||
#[macro_export]
|
|
||||||
macro_rules! produces_proc {
|
|
||||||
() => (pub fn proc() {})
|
|
||||||
}
|
|
||||||
|
|
||||||
#[macro_export]
|
|
||||||
macro_rules! produces_proc_raw {
|
|
||||||
() => (pub fn r#proc() {})
|
|
||||||
}
|
|
||||||
|
|
||||||
#[macro_export]
|
|
||||||
macro_rules! consumes_proc {
|
|
||||||
(proc) => (1)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[macro_export]
|
|
||||||
macro_rules! consumes_proc_raw {
|
|
||||||
(r#proc) => (1)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[macro_export]
|
|
||||||
macro_rules! passes_ident {
|
|
||||||
($i: ident) => ($i)
|
|
||||||
}
|
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate edition_kw_macro_2015;
|
extern crate edition_kw_macro_2015;
|
||||||
|
|
||||||
// `async`
|
|
||||||
pub fn check_async() {
|
pub fn check_async() {
|
||||||
let mut async = 1; // OK
|
let mut async = 1; // OK
|
||||||
let mut r#async = 1; // OK
|
let mut r#async = 1; // OK
|
||||||
|
@ -41,29 +40,4 @@ mod two_async {
|
||||||
produces_async_raw! {} // OK
|
produces_async_raw! {} // OK
|
||||||
}
|
}
|
||||||
|
|
||||||
// `proc`
|
|
||||||
pub fn check_proc() {
|
|
||||||
// let mut proc = 1; // ERROR, reserved
|
|
||||||
let mut r#proc = 1; // OK
|
|
||||||
|
|
||||||
r#proc = consumes_proc!(proc); // OK
|
|
||||||
// r#proc = consumes_proc!(r#proc); // ERROR, not a match
|
|
||||||
// r#proc = consumes_proc_raw!(proc); // ERROR, not a match
|
|
||||||
r#proc = consumes_proc_raw!(r#proc); // OK
|
|
||||||
|
|
||||||
// if passes_ident!(proc) == 1 {} // ERROR, reserved
|
|
||||||
if passes_ident!(r#proc) == 1 {} // OK
|
|
||||||
// one_proc::proc(); // ERROR, reserved
|
|
||||||
// one_proc::r#proc(); // ERROR, unresolved name
|
|
||||||
// two_proc::proc(); // ERROR, reserved
|
|
||||||
two_proc::r#proc(); // OK
|
|
||||||
}
|
|
||||||
|
|
||||||
mod one_proc {
|
|
||||||
// produces_proc! {} // ERROR, reserved
|
|
||||||
}
|
|
||||||
mod two_proc {
|
|
||||||
produces_proc_raw! {} // OK
|
|
||||||
}
|
|
||||||
|
|
||||||
fn main() {}
|
fn main() {}
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate edition_kw_macro_2018;
|
extern crate edition_kw_macro_2018;
|
||||||
|
|
||||||
// `async`
|
|
||||||
pub fn check_async() {
|
pub fn check_async() {
|
||||||
let mut async = 1; // OK
|
let mut async = 1; // OK
|
||||||
let mut r#async = 1; // OK
|
let mut r#async = 1; // OK
|
||||||
|
@ -41,29 +40,4 @@ mod two_async {
|
||||||
produces_async_raw! {} // OK
|
produces_async_raw! {} // OK
|
||||||
}
|
}
|
||||||
|
|
||||||
// `proc`
|
|
||||||
pub fn check_proc() {
|
|
||||||
// let mut proc = 1; // ERROR, reserved
|
|
||||||
let mut r#proc = 1; // OK
|
|
||||||
|
|
||||||
r#proc = consumes_proc!(proc); // OK
|
|
||||||
// r#proc = consumes_proc!(r#proc); // ERROR, not a match
|
|
||||||
// r#proc = consumes_proc_raw!(proc); // ERROR, not a match
|
|
||||||
r#proc = consumes_proc_raw!(r#proc); // OK
|
|
||||||
|
|
||||||
// if passes_ident!(proc) == 1 {} // ERROR, reserved
|
|
||||||
if passes_ident!(r#proc) == 1 {} // OK
|
|
||||||
// one_proc::proc(); // ERROR, reserved
|
|
||||||
one_proc::r#proc(); // OK
|
|
||||||
// two_proc::proc(); // ERROR, reserved
|
|
||||||
two_proc::r#proc(); // OK
|
|
||||||
}
|
|
||||||
|
|
||||||
mod one_proc {
|
|
||||||
produces_proc! {} // OK
|
|
||||||
}
|
|
||||||
mod two_proc {
|
|
||||||
produces_proc_raw! {} // OK
|
|
||||||
}
|
|
||||||
|
|
||||||
fn main() {}
|
fn main() {}
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate edition_kw_macro_2015;
|
extern crate edition_kw_macro_2015;
|
||||||
|
|
||||||
// `async`
|
|
||||||
pub fn check_async() {
|
pub fn check_async() {
|
||||||
// let mut async = 1; // ERROR, reserved
|
// let mut async = 1; // ERROR, reserved
|
||||||
let mut r#async = 1; // OK
|
let mut r#async = 1; // OK
|
||||||
|
@ -41,29 +40,4 @@ mod two_async {
|
||||||
produces_async_raw! {} // OK
|
produces_async_raw! {} // OK
|
||||||
}
|
}
|
||||||
|
|
||||||
// `proc`
|
|
||||||
pub fn check_proc() {
|
|
||||||
let mut proc = 1; // OK
|
|
||||||
let mut r#proc = 1; // OK
|
|
||||||
|
|
||||||
r#proc = consumes_proc!(proc); // OK
|
|
||||||
// r#proc = consumes_proc!(r#proc); // ERROR, not a match
|
|
||||||
// r#proc = consumes_proc_raw!(proc); // ERROR, not a match
|
|
||||||
r#proc = consumes_proc_raw!(r#proc); // OK
|
|
||||||
|
|
||||||
if passes_ident!(proc) == 1 {} // OK
|
|
||||||
if passes_ident!(r#proc) == 1 {} // OK
|
|
||||||
// one_proc::proc(); // ERROR, unresolved name
|
|
||||||
// one_proc::r#proc(); // ERROR, unresolved name
|
|
||||||
two_proc::proc(); // OK
|
|
||||||
two_proc::r#proc(); // OK
|
|
||||||
}
|
|
||||||
|
|
||||||
mod one_proc {
|
|
||||||
// produces_proc! {} // ERROR, reserved
|
|
||||||
}
|
|
||||||
mod two_proc {
|
|
||||||
produces_proc_raw! {} // OK
|
|
||||||
}
|
|
||||||
|
|
||||||
fn main() {}
|
fn main() {}
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate edition_kw_macro_2018;
|
extern crate edition_kw_macro_2018;
|
||||||
|
|
||||||
// `async`
|
|
||||||
pub fn check_async() {
|
pub fn check_async() {
|
||||||
// let mut async = 1; // ERROR, reserved
|
// let mut async = 1; // ERROR, reserved
|
||||||
let mut r#async = 1; // OK
|
let mut r#async = 1; // OK
|
||||||
|
@ -41,29 +40,4 @@ mod two_async {
|
||||||
produces_async_raw! {} // OK
|
produces_async_raw! {} // OK
|
||||||
}
|
}
|
||||||
|
|
||||||
// `proc`
|
|
||||||
pub fn check_proc() {
|
|
||||||
let mut proc = 1; // OK
|
|
||||||
let mut r#proc = 1; // OK
|
|
||||||
|
|
||||||
r#proc = consumes_proc!(proc); // OK
|
|
||||||
// r#proc = consumes_proc!(r#proc); // ERROR, not a match
|
|
||||||
// r#proc = consumes_proc_raw!(proc); // ERROR, not a match
|
|
||||||
r#proc = consumes_proc_raw!(r#proc); // OK
|
|
||||||
|
|
||||||
if passes_ident!(proc) == 1 {} // OK
|
|
||||||
if passes_ident!(r#proc) == 1 {} // OK
|
|
||||||
one_proc::proc(); // OK
|
|
||||||
one_proc::r#proc(); // OK
|
|
||||||
two_proc::proc(); // OK
|
|
||||||
two_proc::r#proc(); // OK
|
|
||||||
}
|
|
||||||
|
|
||||||
mod one_proc {
|
|
||||||
produces_proc! {} // OK
|
|
||||||
}
|
|
||||||
mod two_proc {
|
|
||||||
produces_proc_raw! {} // OK
|
|
||||||
}
|
|
||||||
|
|
||||||
fn main() {}
|
fn main() {}
|
||||||
|
|
|
@ -12,7 +12,6 @@
|
||||||
|
|
||||||
#![feature(raw_identifiers)]
|
#![feature(raw_identifiers)]
|
||||||
|
|
||||||
// `async`
|
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! produces_async {
|
macro_rules! produces_async {
|
||||||
() => (pub fn async() {})
|
() => (pub fn async() {})
|
||||||
|
@ -37,29 +36,3 @@ macro_rules! consumes_async_raw {
|
||||||
macro_rules! passes_ident {
|
macro_rules! passes_ident {
|
||||||
($i: ident) => ($i)
|
($i: ident) => ($i)
|
||||||
}
|
}
|
||||||
|
|
||||||
// `proc`
|
|
||||||
#[macro_export]
|
|
||||||
macro_rules! produces_proc {
|
|
||||||
() => (pub fn proc() {})
|
|
||||||
}
|
|
||||||
|
|
||||||
#[macro_export]
|
|
||||||
macro_rules! produces_proc_raw {
|
|
||||||
() => (pub fn r#proc() {})
|
|
||||||
}
|
|
||||||
|
|
||||||
#[macro_export]
|
|
||||||
macro_rules! consumes_proc {
|
|
||||||
(proc) => (1)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[macro_export]
|
|
||||||
macro_rules! consumes_proc_raw {
|
|
||||||
(r#proc) => (1)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[macro_export]
|
|
||||||
macro_rules! passes_ident {
|
|
||||||
($i: ident) => ($i)
|
|
||||||
}
|
|
||||||
|
|
|
@ -12,7 +12,6 @@
|
||||||
|
|
||||||
#![feature(raw_identifiers)]
|
#![feature(raw_identifiers)]
|
||||||
|
|
||||||
// `async`
|
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! produces_async {
|
macro_rules! produces_async {
|
||||||
() => (pub fn async() {})
|
() => (pub fn async() {})
|
||||||
|
@ -37,29 +36,3 @@ macro_rules! consumes_async_raw {
|
||||||
macro_rules! passes_ident {
|
macro_rules! passes_ident {
|
||||||
($i: ident) => ($i)
|
($i: ident) => ($i)
|
||||||
}
|
}
|
||||||
|
|
||||||
// `proc`
|
|
||||||
#[macro_export]
|
|
||||||
macro_rules! produces_proc {
|
|
||||||
() => (pub fn proc() {})
|
|
||||||
}
|
|
||||||
|
|
||||||
#[macro_export]
|
|
||||||
macro_rules! produces_proc_raw {
|
|
||||||
() => (pub fn r#proc() {})
|
|
||||||
}
|
|
||||||
|
|
||||||
#[macro_export]
|
|
||||||
macro_rules! consumes_proc {
|
|
||||||
(proc) => (1)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[macro_export]
|
|
||||||
macro_rules! consumes_proc_raw {
|
|
||||||
(r#proc) => (1)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[macro_export]
|
|
||||||
macro_rules! passes_ident {
|
|
||||||
($i: ident) => ($i)
|
|
||||||
}
|
|
||||||
|
|
|
@ -10,13 +10,13 @@
|
||||||
|
|
||||||
// compile-flags: --edition=2015
|
// compile-flags: --edition=2015
|
||||||
// aux-build:edition-kw-macro-2015.rs
|
// aux-build:edition-kw-macro-2015.rs
|
||||||
|
// compile-pass
|
||||||
|
|
||||||
#![feature(raw_identifiers)]
|
#![feature(raw_identifiers)]
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate edition_kw_macro_2015;
|
extern crate edition_kw_macro_2015;
|
||||||
|
|
||||||
// `async`
|
|
||||||
mod one_async {
|
mod one_async {
|
||||||
produces_async! {} // OK
|
produces_async! {} // OK
|
||||||
}
|
}
|
||||||
|
@ -24,10 +24,4 @@ mod two_async {
|
||||||
produces_async_raw! {} // OK
|
produces_async_raw! {} // OK
|
||||||
}
|
}
|
||||||
|
|
||||||
// `proc`
|
fn main() {}
|
||||||
mod one_proc {
|
|
||||||
produces_proc! {} // ERROR expected identifier, found reserved keyword `proc`
|
|
||||||
}
|
|
||||||
mod two_proc {
|
|
||||||
produces_proc_raw! {} // OK
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
error: expected identifier, found reserved keyword `proc`
|
|
||||||
--> $DIR/edition-keywords-2015-2015-expansion.rs:29:5
|
|
||||||
|
|
|
||||||
LL | produces_proc! {} // ERROR expected identifier, found reserved keyword `proc`
|
|
||||||
| ^^^^^^^^^^^^^^^^^ expected identifier, found reserved keyword
|
|
||||||
|
|
|
||||||
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
|
|
||||||
|
|
||||||
error: aborting due to previous error
|
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate edition_kw_macro_2015;
|
extern crate edition_kw_macro_2015;
|
||||||
|
|
||||||
// `async`
|
|
||||||
pub fn check_async() {
|
pub fn check_async() {
|
||||||
let mut async = 1; // OK
|
let mut async = 1; // OK
|
||||||
let mut r#async = 1; // OK
|
let mut r#async = 1; // OK
|
||||||
|
@ -31,19 +30,3 @@ pub fn check_async() {
|
||||||
module::async(); // OK
|
module::async(); // OK
|
||||||
module::r#async(); // OK
|
module::r#async(); // OK
|
||||||
}
|
}
|
||||||
|
|
||||||
// `proc`
|
|
||||||
pub fn check_proc() {
|
|
||||||
let mut proc = 1; //~ ERROR expected identifier, found reserved keyword `proc`
|
|
||||||
let mut r#proc = 1; // OK
|
|
||||||
|
|
||||||
r#proc = consumes_proc!(proc); // OK
|
|
||||||
r#proc = consumes_proc!(r#proc); //~ ERROR no rules expected the token `r#proc`
|
|
||||||
r#proc = consumes_proc_raw!(proc); //~ ERROR no rules expected the token `proc`
|
|
||||||
r#proc = consumes_proc_raw!(r#proc); // OK
|
|
||||||
|
|
||||||
if passes_ident!(proc) == 1 {} //~ ERROR expected expression, found reserved keyword `proc`
|
|
||||||
if passes_ident!(r#proc) == 1 {} // OK
|
|
||||||
module::proc(); //~ ERROR expected identifier, found reserved keyword `proc`
|
|
||||||
module::r#proc(); // OK
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,44 +1,14 @@
|
||||||
error: expected identifier, found reserved keyword `proc`
|
|
||||||
--> $DIR/edition-keywords-2015-2015-parsing.rs:37:13
|
|
||||||
|
|
|
||||||
LL | let mut proc = 1; //~ ERROR expected identifier, found reserved keyword `proc`
|
|
||||||
| ^^^^ expected identifier, found reserved keyword
|
|
||||||
|
|
||||||
error: expected identifier, found reserved keyword `proc`
|
|
||||||
--> $DIR/edition-keywords-2015-2015-parsing.rs:47:13
|
|
||||||
|
|
|
||||||
LL | module::proc(); //~ ERROR expected identifier, found reserved keyword `proc`
|
|
||||||
| ^^^^ expected identifier, found reserved keyword
|
|
||||||
|
|
||||||
error: no rules expected the token `r#async`
|
error: no rules expected the token `r#async`
|
||||||
--> $DIR/edition-keywords-2015-2015-parsing.rs:25:31
|
--> $DIR/edition-keywords-2015-2015-parsing.rs:24:31
|
||||||
|
|
|
|
||||||
LL | r#async = consumes_async!(r#async); //~ ERROR no rules expected the token `r#async`
|
LL | r#async = consumes_async!(r#async); //~ ERROR no rules expected the token `r#async`
|
||||||
| ^^^^^^^
|
| ^^^^^^^
|
||||||
|
|
||||||
error: no rules expected the token `async`
|
error: no rules expected the token `async`
|
||||||
--> $DIR/edition-keywords-2015-2015-parsing.rs:26:35
|
--> $DIR/edition-keywords-2015-2015-parsing.rs:25:35
|
||||||
|
|
|
|
||||||
LL | r#async = consumes_async_raw!(async); //~ ERROR no rules expected the token `async`
|
LL | r#async = consumes_async_raw!(async); //~ ERROR no rules expected the token `async`
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
||||||
error: no rules expected the token `r#proc`
|
error: aborting due to 2 previous errors
|
||||||
--> $DIR/edition-keywords-2015-2015-parsing.rs:41:29
|
|
||||||
|
|
|
||||||
LL | r#proc = consumes_proc!(r#proc); //~ ERROR no rules expected the token `r#proc`
|
|
||||||
| ^^^^^^
|
|
||||||
|
|
||||||
error: no rules expected the token `proc`
|
|
||||||
--> $DIR/edition-keywords-2015-2015-parsing.rs:42:33
|
|
||||||
|
|
|
||||||
LL | r#proc = consumes_proc_raw!(proc); //~ ERROR no rules expected the token `proc`
|
|
||||||
| ^^^^
|
|
||||||
|
|
||||||
error: expected expression, found reserved keyword `proc`
|
|
||||||
--> $DIR/edition-keywords-2015-2015-parsing.rs:45:22
|
|
||||||
|
|
|
||||||
LL | if passes_ident!(proc) == 1 {} //~ ERROR expected expression, found reserved keyword `proc`
|
|
||||||
| ^^^^ expected expression
|
|
||||||
|
|
||||||
error: aborting due to 7 previous errors
|
|
||||||
|
|
||||||
|
|
|
@ -16,18 +16,9 @@
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate edition_kw_macro_2018;
|
extern crate edition_kw_macro_2018;
|
||||||
|
|
||||||
// `async`
|
|
||||||
mod one_async {
|
mod one_async {
|
||||||
produces_async! {} // ERROR expected identifier, found reserved keyword
|
produces_async! {} // ERROR expected identifier, found reserved keyword
|
||||||
}
|
}
|
||||||
mod two_async {
|
mod two_async {
|
||||||
produces_async_raw! {} // OK
|
produces_async_raw! {} // OK
|
||||||
}
|
}
|
||||||
|
|
||||||
// `proc`
|
|
||||||
mod one_proc {
|
|
||||||
produces_proc! {} // OK
|
|
||||||
}
|
|
||||||
mod two_proc {
|
|
||||||
produces_proc_raw! {} // OK
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
error: expected identifier, found reserved keyword `async`
|
error: expected identifier, found reserved keyword `async`
|
||||||
--> $DIR/edition-keywords-2015-2018-expansion.rs:21:5
|
--> $DIR/edition-keywords-2015-2018-expansion.rs:20:5
|
||||||
|
|
|
|
||||||
LL | produces_async! {} // ERROR expected identifier, found reserved keyword
|
LL | produces_async! {} // ERROR expected identifier, found reserved keyword
|
||||||
| ^^^^^^^^^^^^^^^^^^ expected identifier, found reserved keyword
|
| ^^^^^^^^^^^^^^^^^^ expected identifier, found reserved keyword
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate edition_kw_macro_2018;
|
extern crate edition_kw_macro_2018;
|
||||||
|
|
||||||
// `async`
|
|
||||||
pub fn check_async() {
|
pub fn check_async() {
|
||||||
let mut async = 1; // OK
|
let mut async = 1; // OK
|
||||||
let mut r#async = 1; // OK
|
let mut r#async = 1; // OK
|
||||||
|
@ -31,19 +30,3 @@ pub fn check_async() {
|
||||||
module::async(); // OK
|
module::async(); // OK
|
||||||
module::r#async(); // OK
|
module::r#async(); // OK
|
||||||
}
|
}
|
||||||
|
|
||||||
// `proc`
|
|
||||||
pub fn check_proc() {
|
|
||||||
let mut proc = 1; //~ ERROR expected identifier, found reserved keyword `proc`
|
|
||||||
let mut r#proc = 1; // OK
|
|
||||||
|
|
||||||
r#proc = consumes_proc!(proc); // OK
|
|
||||||
r#proc = consumes_proc!(r#proc); //~ ERROR no rules expected the token `r#proc`
|
|
||||||
r#proc = consumes_proc_raw!(proc); //~ ERROR no rules expected the token `proc`
|
|
||||||
r#proc = consumes_proc_raw!(r#proc); // OK
|
|
||||||
|
|
||||||
if passes_ident!(proc) == 1 {} //~ ERROR expected expression, found reserved keyword `proc`
|
|
||||||
if passes_ident!(r#proc) == 1 {} // OK
|
|
||||||
module::proc(); //~ ERROR expected identifier, found reserved keyword `proc`
|
|
||||||
module::r#proc(); // OK
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,44 +1,14 @@
|
||||||
error: expected identifier, found reserved keyword `proc`
|
|
||||||
--> $DIR/edition-keywords-2015-2018-parsing.rs:37:13
|
|
||||||
|
|
|
||||||
LL | let mut proc = 1; //~ ERROR expected identifier, found reserved keyword `proc`
|
|
||||||
| ^^^^ expected identifier, found reserved keyword
|
|
||||||
|
|
||||||
error: expected identifier, found reserved keyword `proc`
|
|
||||||
--> $DIR/edition-keywords-2015-2018-parsing.rs:47:13
|
|
||||||
|
|
|
||||||
LL | module::proc(); //~ ERROR expected identifier, found reserved keyword `proc`
|
|
||||||
| ^^^^ expected identifier, found reserved keyword
|
|
||||||
|
|
||||||
error: no rules expected the token `r#async`
|
error: no rules expected the token `r#async`
|
||||||
--> $DIR/edition-keywords-2015-2018-parsing.rs:25:31
|
--> $DIR/edition-keywords-2015-2018-parsing.rs:24:31
|
||||||
|
|
|
|
||||||
LL | r#async = consumes_async!(r#async); //~ ERROR no rules expected the token `r#async`
|
LL | r#async = consumes_async!(r#async); //~ ERROR no rules expected the token `r#async`
|
||||||
| ^^^^^^^
|
| ^^^^^^^
|
||||||
|
|
||||||
error: no rules expected the token `async`
|
error: no rules expected the token `async`
|
||||||
--> $DIR/edition-keywords-2015-2018-parsing.rs:26:35
|
--> $DIR/edition-keywords-2015-2018-parsing.rs:25:35
|
||||||
|
|
|
|
||||||
LL | r#async = consumes_async_raw!(async); //~ ERROR no rules expected the token `async`
|
LL | r#async = consumes_async_raw!(async); //~ ERROR no rules expected the token `async`
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
||||||
error: no rules expected the token `r#proc`
|
error: aborting due to 2 previous errors
|
||||||
--> $DIR/edition-keywords-2015-2018-parsing.rs:41:29
|
|
||||||
|
|
|
||||||
LL | r#proc = consumes_proc!(r#proc); //~ ERROR no rules expected the token `r#proc`
|
|
||||||
| ^^^^^^
|
|
||||||
|
|
||||||
error: no rules expected the token `proc`
|
|
||||||
--> $DIR/edition-keywords-2015-2018-parsing.rs:42:33
|
|
||||||
|
|
|
||||||
LL | r#proc = consumes_proc_raw!(proc); //~ ERROR no rules expected the token `proc`
|
|
||||||
| ^^^^
|
|
||||||
|
|
||||||
error: expected expression, found reserved keyword `proc`
|
|
||||||
--> $DIR/edition-keywords-2015-2018-parsing.rs:45:22
|
|
||||||
|
|
|
||||||
LL | if passes_ident!(proc) == 1 {} //~ ERROR expected expression, found reserved keyword `proc`
|
|
||||||
| ^^^^ expected expression
|
|
||||||
|
|
||||||
error: aborting due to 7 previous errors
|
|
||||||
|
|
||||||
|
|
|
@ -10,13 +10,13 @@
|
||||||
|
|
||||||
// compile-flags: --edition=2018
|
// compile-flags: --edition=2018
|
||||||
// aux-build:edition-kw-macro-2015.rs
|
// aux-build:edition-kw-macro-2015.rs
|
||||||
|
// compile-pass
|
||||||
|
|
||||||
#![feature(raw_identifiers)]
|
#![feature(raw_identifiers)]
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate edition_kw_macro_2015;
|
extern crate edition_kw_macro_2015;
|
||||||
|
|
||||||
// `async`
|
|
||||||
mod one_async {
|
mod one_async {
|
||||||
produces_async! {} // OK
|
produces_async! {} // OK
|
||||||
}
|
}
|
||||||
|
@ -24,10 +24,4 @@ mod two_async {
|
||||||
produces_async_raw! {} // OK
|
produces_async_raw! {} // OK
|
||||||
}
|
}
|
||||||
|
|
||||||
// `proc`
|
fn main() {}
|
||||||
mod one_proc {
|
|
||||||
produces_proc! {} // ERROR expected identifier, found reserved keyword
|
|
||||||
}
|
|
||||||
mod two_proc {
|
|
||||||
produces_proc_raw! {} // OK
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
error: expected identifier, found reserved keyword `proc`
|
|
||||||
--> $DIR/edition-keywords-2018-2015-expansion.rs:29:5
|
|
||||||
|
|
|
||||||
LL | produces_proc! {} // ERROR expected identifier, found reserved keyword
|
|
||||||
| ^^^^^^^^^^^^^^^^^ expected identifier, found reserved keyword
|
|
||||||
|
|
|
||||||
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
|
|
||||||
|
|
||||||
error: aborting due to previous error
|
|
||||||
|
|
|
@ -16,23 +16,6 @@
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate edition_kw_macro_2015;
|
extern crate edition_kw_macro_2015;
|
||||||
|
|
||||||
// `proc`
|
|
||||||
pub fn check_proc() {
|
|
||||||
let mut proc = 1; // OK
|
|
||||||
let mut r#proc = 1; // OK
|
|
||||||
|
|
||||||
r#proc = consumes_proc!(proc); // OK
|
|
||||||
r#proc = consumes_proc!(r#proc); //~ ERROR no rules expected the token `r#proc`
|
|
||||||
r#proc = consumes_proc_raw!(proc); //~ ERROR no rules expected the token `proc`
|
|
||||||
r#proc = consumes_proc_raw!(r#proc); // OK
|
|
||||||
|
|
||||||
if passes_ident!(proc) == 1 {} // OK
|
|
||||||
if passes_ident!(r#proc) == 1 {} // OK
|
|
||||||
module::proc(); // OK
|
|
||||||
module::r#proc(); // OK
|
|
||||||
}
|
|
||||||
|
|
||||||
// `async`
|
|
||||||
pub fn check_async() {
|
pub fn check_async() {
|
||||||
let mut async = 1; //~ ERROR expected identifier, found reserved keyword `async`
|
let mut async = 1; //~ ERROR expected identifier, found reserved keyword `async`
|
||||||
let mut r#async = 1; // OK
|
let mut r#async = 1; // OK
|
||||||
|
|
|
@ -1,44 +1,32 @@
|
||||||
error: expected identifier, found reserved keyword `async`
|
error: expected identifier, found reserved keyword `async`
|
||||||
--> $DIR/edition-keywords-2018-2015-parsing.rs:37:13
|
--> $DIR/edition-keywords-2018-2015-parsing.rs:20:13
|
||||||
|
|
|
|
||||||
LL | let mut async = 1; //~ ERROR expected identifier, found reserved keyword `async`
|
LL | let mut async = 1; //~ ERROR expected identifier, found reserved keyword `async`
|
||||||
| ^^^^^ expected identifier, found reserved keyword
|
| ^^^^^ expected identifier, found reserved keyword
|
||||||
|
|
||||||
error: expected identifier, found reserved keyword `async`
|
error: expected identifier, found reserved keyword `async`
|
||||||
--> $DIR/edition-keywords-2018-2015-parsing.rs:47:13
|
--> $DIR/edition-keywords-2018-2015-parsing.rs:30:13
|
||||||
|
|
|
|
||||||
LL | module::async(); //~ ERROR expected identifier, found reserved keyword `async`
|
LL | module::async(); //~ ERROR expected identifier, found reserved keyword `async`
|
||||||
| ^^^^^ expected identifier, found reserved keyword
|
| ^^^^^ expected identifier, found reserved keyword
|
||||||
|
|
||||||
error: no rules expected the token `r#proc`
|
|
||||||
--> $DIR/edition-keywords-2018-2015-parsing.rs:25:29
|
|
||||||
|
|
|
||||||
LL | r#proc = consumes_proc!(r#proc); //~ ERROR no rules expected the token `r#proc`
|
|
||||||
| ^^^^^^
|
|
||||||
|
|
||||||
error: no rules expected the token `proc`
|
|
||||||
--> $DIR/edition-keywords-2018-2015-parsing.rs:26:33
|
|
||||||
|
|
|
||||||
LL | r#proc = consumes_proc_raw!(proc); //~ ERROR no rules expected the token `proc`
|
|
||||||
| ^^^^
|
|
||||||
|
|
||||||
error: no rules expected the token `r#async`
|
error: no rules expected the token `r#async`
|
||||||
--> $DIR/edition-keywords-2018-2015-parsing.rs:41:31
|
--> $DIR/edition-keywords-2018-2015-parsing.rs:24:31
|
||||||
|
|
|
|
||||||
LL | r#async = consumes_async!(r#async); //~ ERROR no rules expected the token `r#async`
|
LL | r#async = consumes_async!(r#async); //~ ERROR no rules expected the token `r#async`
|
||||||
| ^^^^^^^
|
| ^^^^^^^
|
||||||
|
|
||||||
error: no rules expected the token `async`
|
error: no rules expected the token `async`
|
||||||
--> $DIR/edition-keywords-2018-2015-parsing.rs:42:35
|
--> $DIR/edition-keywords-2018-2015-parsing.rs:25:35
|
||||||
|
|
|
|
||||||
LL | r#async = consumes_async_raw!(async); //~ ERROR no rules expected the token `async`
|
LL | r#async = consumes_async_raw!(async); //~ ERROR no rules expected the token `async`
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
||||||
error: expected expression, found reserved keyword `async`
|
error: expected expression, found reserved keyword `async`
|
||||||
--> $DIR/edition-keywords-2018-2015-parsing.rs:45:22
|
--> $DIR/edition-keywords-2018-2015-parsing.rs:28:22
|
||||||
|
|
|
|
||||||
LL | if passes_ident!(async) == 1 {} //~ ERROR expected expression, found reserved keyword `async`
|
LL | if passes_ident!(async) == 1 {} //~ ERROR expected expression, found reserved keyword `async`
|
||||||
| ^^^^^ expected expression
|
| ^^^^^ expected expression
|
||||||
|
|
||||||
error: aborting due to 7 previous errors
|
error: aborting due to 5 previous errors
|
||||||
|
|
||||||
|
|
|
@ -16,18 +16,9 @@
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate edition_kw_macro_2018;
|
extern crate edition_kw_macro_2018;
|
||||||
|
|
||||||
// `async`
|
|
||||||
mod one_async {
|
mod one_async {
|
||||||
produces_async! {} // ERROR expected identifier, found reserved keyword `async`
|
produces_async! {} // ERROR expected identifier, found reserved keyword `async`
|
||||||
}
|
}
|
||||||
mod two_async {
|
mod two_async {
|
||||||
produces_async_raw! {} // OK
|
produces_async_raw! {} // OK
|
||||||
}
|
}
|
||||||
|
|
||||||
// `proc`
|
|
||||||
mod one_proc {
|
|
||||||
produces_proc! {} // OK
|
|
||||||
}
|
|
||||||
mod two_proc {
|
|
||||||
produces_proc_raw! {} // OK
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
error: expected identifier, found reserved keyword `async`
|
error: expected identifier, found reserved keyword `async`
|
||||||
--> $DIR/edition-keywords-2018-2018-expansion.rs:21:5
|
--> $DIR/edition-keywords-2018-2018-expansion.rs:20:5
|
||||||
|
|
|
|
||||||
LL | produces_async! {} // ERROR expected identifier, found reserved keyword `async`
|
LL | produces_async! {} // ERROR expected identifier, found reserved keyword `async`
|
||||||
| ^^^^^^^^^^^^^^^^^^ expected identifier, found reserved keyword
|
| ^^^^^^^^^^^^^^^^^^ expected identifier, found reserved keyword
|
||||||
|
|
|
@ -16,23 +16,6 @@
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate edition_kw_macro_2018;
|
extern crate edition_kw_macro_2018;
|
||||||
|
|
||||||
// `proc`
|
|
||||||
pub fn check_proc() {
|
|
||||||
let mut proc = 1; // OK
|
|
||||||
let mut r#proc = 1; // OK
|
|
||||||
|
|
||||||
r#proc = consumes_proc!(proc); // OK
|
|
||||||
r#proc = consumes_proc!(r#proc); //~ ERROR no rules expected the token `r#proc`
|
|
||||||
r#proc = consumes_proc_raw!(proc); //~ ERROR no rules expected the token `proc`
|
|
||||||
r#proc = consumes_proc_raw!(r#proc); // OK
|
|
||||||
|
|
||||||
if passes_ident!(proc) == 1 {} // OK
|
|
||||||
if passes_ident!(r#proc) == 1 {} // OK
|
|
||||||
module::proc(); // OK
|
|
||||||
module::r#proc(); // OK
|
|
||||||
}
|
|
||||||
|
|
||||||
// `async`
|
|
||||||
pub fn check_async() {
|
pub fn check_async() {
|
||||||
let mut async = 1; //~ ERROR expected identifier, found reserved keyword `async`
|
let mut async = 1; //~ ERROR expected identifier, found reserved keyword `async`
|
||||||
let mut r#async = 1; // OK
|
let mut r#async = 1; // OK
|
||||||
|
|
|
@ -1,44 +1,32 @@
|
||||||
error: expected identifier, found reserved keyword `async`
|
error: expected identifier, found reserved keyword `async`
|
||||||
--> $DIR/edition-keywords-2018-2018-parsing.rs:37:13
|
--> $DIR/edition-keywords-2018-2018-parsing.rs:20:13
|
||||||
|
|
|
|
||||||
LL | let mut async = 1; //~ ERROR expected identifier, found reserved keyword `async`
|
LL | let mut async = 1; //~ ERROR expected identifier, found reserved keyword `async`
|
||||||
| ^^^^^ expected identifier, found reserved keyword
|
| ^^^^^ expected identifier, found reserved keyword
|
||||||
|
|
||||||
error: expected identifier, found reserved keyword `async`
|
error: expected identifier, found reserved keyword `async`
|
||||||
--> $DIR/edition-keywords-2018-2018-parsing.rs:47:13
|
--> $DIR/edition-keywords-2018-2018-parsing.rs:30:13
|
||||||
|
|
|
|
||||||
LL | module::async(); //~ ERROR expected identifier, found reserved keyword `async`
|
LL | module::async(); //~ ERROR expected identifier, found reserved keyword `async`
|
||||||
| ^^^^^ expected identifier, found reserved keyword
|
| ^^^^^ expected identifier, found reserved keyword
|
||||||
|
|
||||||
error: no rules expected the token `r#proc`
|
|
||||||
--> $DIR/edition-keywords-2018-2018-parsing.rs:25:29
|
|
||||||
|
|
|
||||||
LL | r#proc = consumes_proc!(r#proc); //~ ERROR no rules expected the token `r#proc`
|
|
||||||
| ^^^^^^
|
|
||||||
|
|
||||||
error: no rules expected the token `proc`
|
|
||||||
--> $DIR/edition-keywords-2018-2018-parsing.rs:26:33
|
|
||||||
|
|
|
||||||
LL | r#proc = consumes_proc_raw!(proc); //~ ERROR no rules expected the token `proc`
|
|
||||||
| ^^^^
|
|
||||||
|
|
||||||
error: no rules expected the token `r#async`
|
error: no rules expected the token `r#async`
|
||||||
--> $DIR/edition-keywords-2018-2018-parsing.rs:41:31
|
--> $DIR/edition-keywords-2018-2018-parsing.rs:24:31
|
||||||
|
|
|
|
||||||
LL | r#async = consumes_async!(r#async); //~ ERROR no rules expected the token `r#async`
|
LL | r#async = consumes_async!(r#async); //~ ERROR no rules expected the token `r#async`
|
||||||
| ^^^^^^^
|
| ^^^^^^^
|
||||||
|
|
||||||
error: no rules expected the token `async`
|
error: no rules expected the token `async`
|
||||||
--> $DIR/edition-keywords-2018-2018-parsing.rs:42:35
|
--> $DIR/edition-keywords-2018-2018-parsing.rs:25:35
|
||||||
|
|
|
|
||||||
LL | r#async = consumes_async_raw!(async); //~ ERROR no rules expected the token `async`
|
LL | r#async = consumes_async_raw!(async); //~ ERROR no rules expected the token `async`
|
||||||
| ^^^^^
|
| ^^^^^
|
||||||
|
|
||||||
error: expected expression, found reserved keyword `async`
|
error: expected expression, found reserved keyword `async`
|
||||||
--> $DIR/edition-keywords-2018-2018-parsing.rs:45:22
|
--> $DIR/edition-keywords-2018-2018-parsing.rs:28:22
|
||||||
|
|
|
|
||||||
LL | if passes_ident!(async) == 1 {} //~ ERROR expected expression, found reserved keyword `async`
|
LL | if passes_ident!(async) == 1 {} //~ ERROR expected expression, found reserved keyword `async`
|
||||||
| ^^^^^ expected expression
|
| ^^^^^ expected expression
|
||||||
|
|
||||||
error: aborting due to 7 previous errors
|
error: aborting due to 5 previous errors
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue