From ef9aa80438c61c1080269ca8b379decc96b49dd5 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Sun, 9 Sep 2012 23:03:46 -0700 Subject: [PATCH] Promote most restricted keywords to strict keywords --- src/libsyntax/parse/token.rs | 32 +++++++++++-------- .../compile-fail/bad-value-ident-false.rs | 2 +- src/test/compile-fail/bad-value-ident-true.rs | 2 +- src/test/compile-fail/keyword.rs | 3 ++ src/test/compile-fail/restricted-keyword1.rs | 4 +-- src/test/compile-fail/restricted-keyword2.rs | 4 +-- .../{trait.rs => trait_.rs} | 0 src/test/run-pass/module-polymorphism4.rc | 8 ++--- 8 files changed, 31 insertions(+), 24 deletions(-) create mode 100644 src/test/compile-fail/keyword.rs rename src/test/run-pass/module-polymorphism4-files/{trait.rs => trait_.rs} (100%) diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs index 220fc7cf564e..6e82e6d11b84 100644 --- a/src/libsyntax/parse/token.rs +++ b/src/libsyntax/parse/token.rs @@ -411,22 +411,13 @@ fn contextual_keyword_table() -> hashmap<~str, ()> { fn restricted_keyword_table() -> hashmap<~str, ()> { let words = str_hash(); let keys = ~[ - ~"as", - ~"assert", - ~"break", ~"const", ~"copy", - ~"do", ~"drop", - ~"else", ~"enum", ~"export", ~"extern", - ~"fail", ~"false", ~"fn", ~"for", - ~"if", ~"impl", ~"import", - ~"let", ~"log", ~"loop", - ~"match", ~"mod", ~"move", ~"mut", - ~"priv", ~"pub", ~"pure", - ~"ref", ~"return", + ~"fail", ~"fn", + ~"impl", + ~"priv", ~"pub", + ~"return", ~"struct", - ~"true", ~"trait", ~"type", - ~"unchecked", ~"unsafe", ~"use", - ~"while" + ~"unsafe" ]; for keys.each |word| { words.insert(word, ()); @@ -438,6 +429,19 @@ fn restricted_keyword_table() -> hashmap<~str, ()> { fn strict_keyword_table() -> hashmap<~str, ()> { let words = str_hash(); let keys = ~[ + ~"as", ~"assert", + ~"break", + ~"do", ~"drop", + ~"else", ~"enum", ~"export", ~"extern", + ~"false", ~"for", + ~"if", ~"import", + ~"let", ~"log", ~"loop", + ~"match", ~"mod", ~"move", ~"mut", + ~"pure", + ~"ref", + ~"true", ~"trait", ~"type", + ~"unchecked", ~"use", + ~"while" ]; for keys.each |word| { words.insert(word, ()); diff --git a/src/test/compile-fail/bad-value-ident-false.rs b/src/test/compile-fail/bad-value-ident-false.rs index 9498f1c341fd..4e0dd93cb040 100644 --- a/src/test/compile-fail/bad-value-ident-false.rs +++ b/src/test/compile-fail/bad-value-ident-false.rs @@ -1,2 +1,2 @@ -fn false() { } //~ ERROR found `false` in restricted position +fn false() { } //~ ERROR found `false` in ident position fn main() { } \ No newline at end of file diff --git a/src/test/compile-fail/bad-value-ident-true.rs b/src/test/compile-fail/bad-value-ident-true.rs index 96f172b3285a..a99e5eecaca6 100644 --- a/src/test/compile-fail/bad-value-ident-true.rs +++ b/src/test/compile-fail/bad-value-ident-true.rs @@ -1,2 +1,2 @@ -fn true() { } //~ ERROR found `true` in restricted position +fn true() { } //~ ERROR found `true` in ident position fn main() { } \ No newline at end of file diff --git a/src/test/compile-fail/keyword.rs b/src/test/compile-fail/keyword.rs new file mode 100644 index 000000000000..02d0b0891992 --- /dev/null +++ b/src/test/compile-fail/keyword.rs @@ -0,0 +1,3 @@ +mod break { + //~^ ERROR found `break` in ident position +} \ No newline at end of file diff --git a/src/test/compile-fail/restricted-keyword1.rs b/src/test/compile-fail/restricted-keyword1.rs index c301d8199ded..36d472bc4a2c 100644 --- a/src/test/compile-fail/restricted-keyword1.rs +++ b/src/test/compile-fail/restricted-keyword1.rs @@ -1,7 +1,7 @@ -// error-pattern:found `let` in restricted position +// error-pattern:found `fail` in restricted position fn main() { match true { - {let} { } + {fail} { } } } diff --git a/src/test/compile-fail/restricted-keyword2.rs b/src/test/compile-fail/restricted-keyword2.rs index 665700386b8d..76d258ef1966 100644 --- a/src/test/compile-fail/restricted-keyword2.rs +++ b/src/test/compile-fail/restricted-keyword2.rs @@ -1,5 +1,5 @@ -// error-pattern:found `let` in restricted position +// error-pattern:found `fail` in restricted position fn main() { - enum let = int; + enum fail = int; } diff --git a/src/test/run-pass/module-polymorphism4-files/trait.rs b/src/test/run-pass/module-polymorphism4-files/trait_.rs similarity index 100% rename from src/test/run-pass/module-polymorphism4-files/trait.rs rename to src/test/run-pass/module-polymorphism4-files/trait_.rs diff --git a/src/test/run-pass/module-polymorphism4.rc b/src/test/run-pass/module-polymorphism4.rc index bbca74cd397c..b6be5ae8086c 100644 --- a/src/test/run-pass/module-polymorphism4.rc +++ b/src/test/run-pass/module-polymorphism4.rc @@ -7,8 +7,8 @@ mod cat { #[path = "cat.rs"] mod inst; - #[path = "trait.rs"] - mod trait; + #[path = "trait_.rs"] + mod trait_; } @@ -20,7 +20,7 @@ mod dog { #[path = "dog.rs"] mod inst; - #[path = "trait.rs"] - mod trait; + #[path = "trait_.rs"] + mod trait_; }