Skip to content

Commit

Permalink
Remove the proc keyword again
Browse files Browse the repository at this point in the history
  • Loading branch information
petrochenkov committed May 17, 2018
1 parent c4352ff commit dae5f05
Show file tree
Hide file tree
Showing 25 changed files with 31 additions and 451 deletions.
20 changes: 7 additions & 13 deletions src/libsyntax_pos/symbol.rs
Expand Up @@ -386,25 +386,20 @@ declare_keywords! {

// Edition-specific keywords reserved for future use.
(55, Async, "async") // >= 2018 Edition Only
(56, Proc, "proc") // <= 2015 Edition Only

// Special lifetime names
(57, UnderscoreLifetime, "'_")
(58, StaticLifetime, "'static")
(56, UnderscoreLifetime, "'_")
(57, StaticLifetime, "'static")

// Weak keywords, have special meaning only in specific contexts.
(59, Auto, "auto")
(60, Catch, "catch")
(61, Default, "default")
(62, Dyn, "dyn")
(63, Union, "union")
(58, Auto, "auto")
(59, Catch, "catch")
(60, Default, "default")
(61, Dyn, "dyn")
(62, Union, "union")
}

impl Symbol {
fn is_unused_keyword_2015(self) -> bool {
self == keywords::Proc.name()
}

fn is_unused_keyword_2018(self) -> bool {
self == keywords::Async.name()
}
Expand All @@ -426,7 +421,6 @@ impl Ident {
pub fn is_unused_keyword(self) -> bool {
// Note: `span.edition()` is relatively expensive, don't call it unless necessary.
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
}

Expand Down
27 changes: 0 additions & 27 deletions src/test/run-pass/auxiliary/edition-kw-macro-2015.rs
Expand Up @@ -12,7 +12,6 @@

#![feature(raw_identifiers)]

// `async`
#[macro_export]
macro_rules! produces_async {
() => (pub fn async() {})
Expand All @@ -37,29 +36,3 @@ macro_rules! consumes_async_raw {
macro_rules! passes_ident {
($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)
}
27 changes: 0 additions & 27 deletions src/test/run-pass/auxiliary/edition-kw-macro-2018.rs
Expand Up @@ -12,7 +12,6 @@

#![feature(raw_identifiers)]

// `async`
#[macro_export]
macro_rules! produces_async {
() => (pub fn async() {})
Expand All @@ -37,29 +36,3 @@ macro_rules! consumes_async_raw {
macro_rules! passes_ident {
($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)
}
26 changes: 0 additions & 26 deletions src/test/run-pass/edition-keywords-2015-2015.rs
Expand Up @@ -16,7 +16,6 @@
#[macro_use]
extern crate edition_kw_macro_2015;

// `async`
pub fn check_async() {
let mut async = 1; // OK
let mut r#async = 1; // OK
Expand All @@ -41,29 +40,4 @@ mod two_async {
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() {}
26 changes: 0 additions & 26 deletions src/test/run-pass/edition-keywords-2015-2018.rs
Expand Up @@ -16,7 +16,6 @@
#[macro_use]
extern crate edition_kw_macro_2018;

// `async`
pub fn check_async() {
let mut async = 1; // OK
let mut r#async = 1; // OK
Expand All @@ -41,29 +40,4 @@ mod two_async {
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() {}
26 changes: 0 additions & 26 deletions src/test/run-pass/edition-keywords-2018-2015.rs
Expand Up @@ -16,7 +16,6 @@
#[macro_use]
extern crate edition_kw_macro_2015;

// `async`
pub fn check_async() {
// let mut async = 1; // ERROR, reserved
let mut r#async = 1; // OK
Expand All @@ -41,29 +40,4 @@ mod two_async {
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() {}
26 changes: 0 additions & 26 deletions src/test/run-pass/edition-keywords-2018-2018.rs
Expand Up @@ -16,7 +16,6 @@
#[macro_use]
extern crate edition_kw_macro_2018;

// `async`
pub fn check_async() {
// let mut async = 1; // ERROR, reserved
let mut r#async = 1; // OK
Expand All @@ -41,29 +40,4 @@ mod two_async {
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() {}
27 changes: 0 additions & 27 deletions src/test/ui/auxiliary/edition-kw-macro-2015.rs
Expand Up @@ -12,7 +12,6 @@

#![feature(raw_identifiers)]

// `async`
#[macro_export]
macro_rules! produces_async {
() => (pub fn async() {})
Expand All @@ -37,29 +36,3 @@ macro_rules! consumes_async_raw {
macro_rules! passes_ident {
($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)
}
27 changes: 0 additions & 27 deletions src/test/ui/auxiliary/edition-kw-macro-2018.rs
Expand Up @@ -12,7 +12,6 @@

#![feature(raw_identifiers)]

// `async`
#[macro_export]
macro_rules! produces_async {
() => (pub fn async() {})
Expand All @@ -37,29 +36,3 @@ macro_rules! consumes_async_raw {
macro_rules! passes_ident {
($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 changes: 2 additions & 8 deletions src/test/ui/edition-keywords-2015-2015-expansion.rs
Expand Up @@ -10,24 +10,18 @@

// compile-flags: --edition=2015
// aux-build:edition-kw-macro-2015.rs
// compile-pass

#![feature(raw_identifiers)]

#[macro_use]
extern crate edition_kw_macro_2015;

// `async`
mod one_async {
produces_async! {} // OK
}
mod two_async {
produces_async_raw! {} // OK
}

// `proc`
mod one_proc {
produces_proc! {} // ERROR expected identifier, found reserved keyword `proc`
}
mod two_proc {
produces_proc_raw! {} // OK
}
fn main() {}
10 changes: 0 additions & 10 deletions src/test/ui/edition-keywords-2015-2015-expansion.stderr

This file was deleted.

0 comments on commit dae5f05

Please sign in to comment.