From 08d0707556e5aafed0368350e4c1396b2507ece7 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Tue, 24 Apr 2012 21:47:22 -0700 Subject: [PATCH] syntax: Make 'true' and 'false' bad words When these are idents they are always shadowed by the boolean constants. --- src/librustsyntax/parse/token.rs | 8 +++----- src/test/compile-fail/bad-value-ident-false.rs | 2 ++ src/test/compile-fail/bad-value-ident-true.rs | 2 ++ 3 files changed, 7 insertions(+), 5 deletions(-) create mode 100644 src/test/compile-fail/bad-value-ident-false.rs create mode 100644 src/test/compile-fail/bad-value-ident-true.rs diff --git a/src/librustsyntax/parse/token.rs b/src/librustsyntax/parse/token.rs index 3212bdaab26..41720c95c71 100644 --- a/src/librustsyntax/parse/token.rs +++ b/src/librustsyntax/parse/token.rs @@ -213,7 +213,6 @@ fn keyword_table() -> hashmap { "as", "bind", "else", - "false", "implements", "move", "of", @@ -222,7 +221,6 @@ fn keyword_table() -> hashmap { "send", "static", "to", - "true", "use", "with" ]; @@ -241,9 +239,9 @@ fn bad_expr_word_table() -> hashmap { let words = str_hash(); let keys = ["alt", "assert", "be", "break", "check", "claim", "class", "const", "cont", "copy", "crust", "do", "else", - "enum", "export", "fail", "fn", "for", "if", "iface", - "impl", "import", "let", "log", "loop", "mod", - "mut", "native", "new", "pure", "resource", + "enum", "export", "fail", "false", "fn", "for", "if", + "iface", "impl", "import", "let", "log", "loop", "mod", + "mut", "native", "new", "pure", "resource", "true", "ret", "trait", "type", "unchecked", "unsafe", "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 new file mode 100644 index 00000000000..5548a08dc3d --- /dev/null +++ b/src/test/compile-fail/bad-value-ident-false.rs @@ -0,0 +1,2 @@ +fn false() { } //! ERROR found `false` in expression 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 new file mode 100644 index 00000000000..aca5a3c8a70 --- /dev/null +++ b/src/test/compile-fail/bad-value-ident-true.rs @@ -0,0 +1,2 @@ +fn true() { } //! ERROR found `true` in expression position +fn main() { } \ No newline at end of file