From 2ab278f130cb206ce9117145ddefbbb650ba8c68 Mon Sep 17 00:00:00 2001 From: Birunthan Mohanathas Date: Sat, 21 Sep 2013 16:31:57 +0300 Subject: [PATCH] Reserve the `alignof`, `offsetof`, and `sizeof` keywords Closes #9333. --- src/etc/vim/syntax/rust.vim | 2 +- src/libsyntax/parse/token.rs | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/etc/vim/syntax/rust.vim b/src/etc/vim/syntax/rust.vim index e5d2d542c0f..689af99b5c4 100644 --- a/src/etc/vim/syntax/rust.vim +++ b/src/etc/vim/syntax/rust.vim @@ -34,7 +34,7 @@ syn match rustIdentifier contains=rustIdentifierPrime "\%([^[:cntrl:][:spac syn match rustFuncName "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained " Reserved (but not yet used) keywords {{{2 -syn keyword rustKeyword be yield typeof +syn keyword rustKeyword alignof be offsetof pure sizeof typeof yield " Built-in types {{{2 syn keyword rustType int uint float char bool u8 u16 u32 u64 f32 diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs index a8df737e49f..6cc1058954c 100644 --- a/src/libsyntax/parse/token.rs +++ b/src/libsyntax/parse/token.rs @@ -482,6 +482,9 @@ fn mk_fresh_ident_interner() -> @ident_interner { "pure", // 65 "yield", // 66 "typeof", // 67 + "alignof", // 68 + "offsetof", // 69 + "sizeof", // 70 ]; @interner::StrInterner::prefill(init_vec) @@ -622,14 +625,17 @@ pub mod keywords { True, Trait, Type, - Typeof, Unsafe, Use, While, // Reserved keywords + Alignof, Be, + Offsetof, Pure, + Sizeof, + Typeof, Yield, } @@ -667,12 +673,16 @@ pub mod keywords { True => Ident { name: 57, ctxt: 0 }, Trait => Ident { name: 58, ctxt: 0 }, Type => Ident { name: 59, ctxt: 0 }, - Typeof => Ident { name: 67, ctxt: 0 }, Unsafe => Ident { name: 60, ctxt: 0 }, Use => Ident { name: 61, ctxt: 0 }, While => Ident { name: 62, ctxt: 0 }, + + Alignof => Ident { name: 68, ctxt: 0 }, Be => Ident { name: 64, ctxt: 0 }, + Offsetof => Ident { name: 69, ctxt: 0 }, Pure => Ident { name: 65, ctxt: 0 }, + Sizeof => Ident { name: 70, ctxt: 0 }, + Typeof => Ident { name: 67, ctxt: 0 }, Yield => Ident { name: 66, ctxt: 0 }, } } @@ -689,7 +699,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 .. 67 => true, + 8 | 27 | 32 .. 70 => true, _ => false, }, _ => false @@ -709,7 +719,7 @@ 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 { - 64 .. 67 => true, + 64 .. 70 => true, _ => false, }, _ => false,