about summary refs log tree commit diff
path: root/src/libsyntax/parse
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-07-31 22:52:31 -0700
committerbors <bors@rust-lang.org>2013-07-31 22:52:31 -0700
commit8ec70ae5de0e33ab62732c59b0b2b0620cb8dce9 (patch)
treed3ec524a3c9192408a0400e723a5f59388774c9f /src/libsyntax/parse
parent0c716c66fbd164bf0d96a77e2c6389f8f6702b23 (diff)
parentb57ffef37e6e2196ad948ab2f6944d242c3aaaf1 (diff)
downloadrust-8ec70ae5de0e33ab62732c59b0b2b0620cb8dce9.tar.gz
rust-8ec70ae5de0e33ab62732c59b0b2b0620cb8dce9.zip
auto merge of #8162 : thestinger/rust/no-copy, r=brson
Diffstat (limited to 'src/libsyntax/parse')
-rw-r--r--src/libsyntax/parse/obsolete.rs7
-rw-r--r--src/libsyntax/parse/parser.rs28
-rw-r--r--src/libsyntax/parse/token.rs138
3 files changed, 71 insertions, 102 deletions
diff --git a/src/libsyntax/parse/obsolete.rs b/src/libsyntax/parse/obsolete.rs
index 7e0081bdb68..3472b9f1d67 100644
--- a/src/libsyntax/parse/obsolete.rs
+++ b/src/libsyntax/parse/obsolete.rs
@@ -30,7 +30,6 @@ use std::to_bytes;
 /// The specific types of unsupported syntax
 #[deriving(Eq)]
 pub enum ObsoleteSyntax {
-    ObsoleteLowerCaseKindBounds,
     ObsoleteLet,
     ObsoleteFieldTerminator,
     ObsoleteStructCtor,
@@ -96,12 +95,6 @@ impl ParserObsoleteMethods for Parser {
     /// Reports an obsolete syntax non-fatal error.
     pub fn obsolete(&self, sp: span, kind: ObsoleteSyntax) {
         let (kind_str, desc) = match kind {
-            ObsoleteLowerCaseKindBounds => (
-                "lower-case kind bounds",
-                "the `send`, `copy`, `const`, and `owned` \
-                 kinds are represented as traits now, and \
-                 should be camel cased"
-            ),
             ObsoleteLet => (
                 "`let` in field declaration",
                 "declare fields as `field: Type`"
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index 6ff4b91ec97..9444c463686 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -71,7 +71,7 @@ use parse::lexer::TokenAndSpan;
 use parse::obsolete::{ObsoleteClassTraits};
 use parse::obsolete::{ObsoleteLet, ObsoleteFieldTerminator};
 use parse::obsolete::{ObsoleteMoveInit, ObsoleteBinaryMove, ObsoleteSwap};
-use parse::obsolete::{ObsoleteSyntax, ObsoleteLowerCaseKindBounds};
+use parse::obsolete::ObsoleteSyntax;
 use parse::obsolete::{ObsoleteUnsafeBlock, ObsoleteImplSyntax};
 use parse::obsolete::{ObsoleteMutOwnedPointer};
 use parse::obsolete::{ObsoleteMutVector, ObsoleteImplVisibility};
@@ -3309,30 +3309,8 @@ impl Parser {
                     self.bump();
                 }
                 token::MOD_SEP | token::IDENT(*) => {
-                    let obsolete_bound = match *self.token {
-                        token::MOD_SEP => false,
-                        token::IDENT(sid, _) => {
-                            match self.id_to_str(sid).as_slice() {
-                                "send" |
-                                "copy" |
-                                "const" |
-                                "owned" => {
-                                    self.obsolete(
-                                        *self.span,
-                                        ObsoleteLowerCaseKindBounds);
-                                    self.bump();
-                                    true
-                                }
-                                _ => false
-                            }
-                        }
-                        _ => fail!()
-                    };
-
-                    if !obsolete_bound {
-                        let tref = self.parse_trait_ref();
-                        result.push(TraitTyParamBound(tref));
-                    }
+                    let tref = self.parse_trait_ref();
+                    result.push(TraitTyParamBound(tref));
                 }
                 _ => break,
             }
diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs
index a9f0db32d3e..3365222036c 100644
--- a/src/libsyntax/parse/token.rs
+++ b/src/libsyntax/parse/token.rs
@@ -125,7 +125,7 @@ pub fn binop_to_str(o: binop) -> ~str {
     }
 }
 
-pub fn to_str(in: @ident_interner, t: &Token) -> ~str {
+pub fn to_str(input: @ident_interner, t: &Token) -> ~str {
     match *t {
       EQ => ~"=",
       LT => ~"<",
@@ -195,8 +195,8 @@ pub fn to_str(in: @ident_interner, t: &Token) -> ~str {
       LIT_STR(ref s) => { fmt!("\"%s\"", ident_to_str(s).escape_default()) }
 
       /* Name components */
-      IDENT(s, _) => in.get(s.name).to_owned(),
-      LIFETIME(s) => fmt!("'%s", in.get(s.name)),
+      IDENT(s, _) => input.get(s.name).to_owned(),
+      LIFETIME(s) => fmt!("'%s", input.get(s.name)),
       UNDERSCORE => ~"_",
 
       /* Other */
@@ -204,7 +204,7 @@ pub fn to_str(in: @ident_interner, t: &Token) -> ~str {
       EOF => ~"<eof>",
       INTERPOLATED(ref nt) => {
         match nt {
-            &nt_expr(e) => ::print::pprust::expr_to_str(e, in),
+            &nt_expr(e) => ::print::pprust::expr_to_str(e, input),
             _ => {
                 ~"an interpolated " +
                     match (*nt) {
@@ -440,42 +440,41 @@ fn mk_fresh_ident_interner() -> @ident_interner {
         "as",                 // 32
         "break",              // 33
         "const",              // 34
-        "copy",               // 35
-        "do",                 // 36
-        "else",               // 37
-        "enum",               // 38
-        "extern",             // 39
-        "false",              // 40
-        "fn",                 // 41
-        "for",                // 42
-        "if",                 // 43
-        "impl",               // 44
-        "let",                // 45
-        "__log",              // 46
-        "loop",               // 47
-        "match",              // 48
-        "mod",                // 49
-        "mut",                // 50
-        "once",               // 51
-        "priv",               // 52
-        "pub",                // 53
-        "pure",               // 54
-        "ref",                // 55
-        "return",             // 56
+        "do",                 // 35
+        "else",               // 36
+        "enum",               // 37
+        "extern",             // 38
+        "false",              // 39
+        "fn",                 // 40
+        "for",                // 41
+        "if",                 // 42
+        "impl",               // 43
+        "let",                // 44
+        "__log",              // 45
+        "loop",               // 46
+        "match",              // 47
+        "mod",                // 48
+        "mut",                // 49
+        "once",               // 50
+        "priv",               // 51
+        "pub",                // 52
+        "ref",                // 53
+        "return",             // 54
         "static",             // 27 -- also a special ident
         "self",               //  8 -- also a special ident
-        "struct",             // 57
-        "super",              // 58
-        "true",               // 59
-        "trait",              // 60
-        "type",               // 61
-        "unsafe",             // 62
-        "use",                // 63
-        "while",              // 64
+        "struct",             // 55
+        "super",              // 56
+        "true",               // 57
+        "trait",              // 58
+        "type",               // 59
+        "unsafe",             // 60
+        "use",                // 61
+        "while",              // 62
+        "in",                 // 63
+        "foreach",            // 64
 
         "be",                 // 65
-        "in",                 // 66
-        "foreach",            // 67
+        "pure",               // 66
     ];
 
     @ident_interner {
@@ -609,39 +608,39 @@ pub mod keywords {
                 As => ident { name: 32, ctxt: 0 },
                 Break => ident { name: 33, ctxt: 0 },
                 Const => ident { name: 34, ctxt: 0 },
-                Do => ident { name: 36, ctxt: 0 },
-                Else => ident { name: 37, ctxt: 0 },
-                Enum => ident { name: 38, ctxt: 0 },
-                Extern => ident { name: 39, ctxt: 0 },
-                False => ident { name: 40, ctxt: 0 },
-                Fn => ident { name: 41, ctxt: 0 },
-                For => ident { name: 42, ctxt: 0 },
-                ForEach => ident { name: 67, ctxt: 0 },
-                If => ident { name: 43, ctxt: 0 },
-                Impl => ident { name: 44, ctxt: 0 },
-                In => ident { name: 66, ctxt: 0 },
-                Let => ident { name: 45, ctxt: 0 },
-                __Log => ident { name: 46, ctxt: 0 },
-                Loop => ident { name: 47, ctxt: 0 },
-                Match => ident { name: 48, ctxt: 0 },
-                Mod => ident { name: 49, ctxt: 0 },
-                Mut => ident { name: 50, ctxt: 0 },
-                Once => ident { name: 51, ctxt: 0 },
-                Priv => ident { name: 52, ctxt: 0 },
-                Pub => ident { name: 53, ctxt: 0 },
-                Pure => ident { name: 54, ctxt: 0 },
-                Ref => ident { name: 55, ctxt: 0 },
-                Return => ident { name: 56, ctxt: 0 },
+                Do => ident { name: 35, ctxt: 0 },
+                Else => ident { name: 36, ctxt: 0 },
+                Enum => ident { name: 37, ctxt: 0 },
+                Extern => ident { name: 38, ctxt: 0 },
+                False => ident { name: 39, ctxt: 0 },
+                Fn => ident { name: 40, ctxt: 0 },
+                For => ident { name: 41, ctxt: 0 },
+                ForEach => ident { name: 64, ctxt: 0 },
+                If => ident { name: 42, ctxt: 0 },
+                Impl => ident { name: 43, ctxt: 0 },
+                In => ident { name: 63, ctxt: 0 },
+                Let => ident { name: 44, ctxt: 0 },
+                __Log => ident { name: 45, ctxt: 0 },
+                Loop => ident { name: 46, ctxt: 0 },
+                Match => ident { name: 47, ctxt: 0 },
+                Mod => ident { name: 48, ctxt: 0 },
+                Mut => ident { name: 49, ctxt: 0 },
+                Once => ident { name: 50, ctxt: 0 },
+                Priv => ident { name: 51, ctxt: 0 },
+                Pub => ident { name: 52, ctxt: 0 },
+                Pure => ident { name: 66, ctxt: 0 },
+                Ref => ident { name: 53, ctxt: 0 },
+                Return => ident { name: 54, ctxt: 0 },
                 Static => ident { name: 27, ctxt: 0 },
                 Self => ident { name: 8, ctxt: 0 },
-                Struct => ident { name: 57, ctxt: 0 },
-                Super => ident { name: 58, ctxt: 0 },
-                True => ident { name: 59, ctxt: 0 },
-                Trait => ident { name: 60, ctxt: 0 },
-                Type => ident { name: 61, ctxt: 0 },
-                Unsafe => ident { name: 62, ctxt: 0 },
-                Use => ident { name: 63, ctxt: 0 },
-                While => ident { name: 64, ctxt: 0 },
+                Struct => ident { name: 55, ctxt: 0 },
+                Super => ident { name: 56, ctxt: 0 },
+                True => ident { name: 57, ctxt: 0 },
+                Trait => ident { name: 58, ctxt: 0 },
+                Type => ident { name: 59, ctxt: 0 },
+                Unsafe => ident { name: 60, ctxt: 0 },
+                Use => ident { name: 61, ctxt: 0 },
+                While => ident { name: 62, ctxt: 0 },
                 Be => ident { name: 65, ctxt: 0 },
             }
         }
@@ -658,7 +657,7 @@ pub fn is_keyword(kw: keywords::Keyword, tok: &Token) -> bool {
 pub fn is_any_keyword(tok: &Token) -> bool {
     match *tok {
         token::IDENT(sid, false) => match sid.name {
-            8 | 27 | 32 .. 65 => true,
+            8 | 27 | 32 .. 66 => true,
             _ => false,
         },
         _ => false
@@ -678,14 +677,13 @@ pub fn is_strict_keyword(tok: &Token) -> bool {
 pub fn is_reserved_keyword(tok: &Token) -> bool {
     match *tok {
         token::IDENT(sid, false) => match sid.name {
-            65 => true,
+            65 .. 66 => true,
             _ => false,
         },
         _ => false,
     }
 }
 
-
 #[cfg(test)]
 mod test {
     use super::*;