From 4e877adddf7b2f7d9093bf26cd8649f30c04b834 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Sun, 8 Mar 2015 00:58:45 +0100 Subject: [PATCH] Remove proc keyword --- src/libsyntax/parse/obsolete.rs | 4 ++-- src/libsyntax/parse/parser.rs | 29 +--------------------------- src/libsyntax/parse/token.rs | 8 ++++---- src/test/parse-fail/obsolete-proc.rs | 6 +++--- 4 files changed, 10 insertions(+), 37 deletions(-) diff --git a/src/libsyntax/parse/obsolete.rs b/src/libsyntax/parse/obsolete.rs index e6bcb8ac74567..d853fbba8d4bd 100644 --- a/src/libsyntax/parse/obsolete.rs +++ b/src/libsyntax/parse/obsolete.rs @@ -59,12 +59,12 @@ impl<'a> ParserObsoleteMethods for parser::Parser<'a> { ), ObsoleteSyntax::ProcType => ( "the `proc` type", - "use unboxed closures instead", + "is not used for moment, use unboxed closures instead", true, ), ObsoleteSyntax::ProcExpr => ( "`proc` expression", - "use a `move ||` expression instead", + "is not used for the moment, use a `move ||` expression instead", true, ), ObsoleteSyntax::ClosureType => ( diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 28d757e9be963..7535e060c55e6 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -1051,9 +1051,7 @@ impl<'a> Parser<'a> { let lifetime_defs = self.parse_late_bound_lifetime_defs(); // examine next token to decide to do - if self.eat_keyword_noexpect(keywords::Proc) { - self.parse_proc_type(lifetime_defs) - } else if self.token_is_bare_fn_keyword() || self.token_is_closure_keyword() { + if self.token_is_bare_fn_keyword() || self.token_is_closure_keyword() { self.parse_ty_bare_fn_or_ty_closure(lifetime_defs) } else if self.check(&token::ModSep) || self.token.is_ident() || @@ -1522,8 +1520,6 @@ impl<'a> Parser<'a> { let e = self.parse_expr(); self.expect(&token::CloseDelim(token::Paren)); TyTypeof(e) - } else if self.eat_keyword_noexpect(keywords::Proc) { - self.parse_proc_type(Vec::new()) } else if self.eat_lt() { // QUALIFIED PATH `::item` let self_type = self.parse_ty_sum(); @@ -2285,12 +2281,6 @@ impl<'a> Parser<'a> { if self.eat_keyword(keywords::Move) { return self.parse_lambda_expr(CaptureByValue); } - if self.eat_keyword_noexpect(keywords::Proc) { - let span = self.last_span; - let _ = self.parse_proc_decl(); - let _ = self.parse_expr(); - return self.obsolete_expr(span, ObsoleteSyntax::ProcExpr); - } if self.eat_keyword(keywords::If) { return self.parse_if_expr(); } @@ -4645,23 +4635,6 @@ impl<'a> Parser<'a> { }) } - /// Parses the `(arg, arg) -> return_type` header on a procedure. - fn parse_proc_decl(&mut self) -> P { - let inputs = - self.parse_unspanned_seq(&token::OpenDelim(token::Paren), - &token::CloseDelim(token::Paren), - seq_sep_trailing_allowed(token::Comma), - |p| p.parse_fn_block_arg()); - - let output = self.parse_ret_ty(); - - P(FnDecl { - inputs: inputs, - output: output, - variadic: false - }) - } - /// Parse the name and optional generic types of a function header. fn parse_fn_header(&mut self) -> (Ident, ast::Generics) { let id = self.parse_ident(); diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs index 61a3a5ca82a32..4a3ea971c7a36 100644 --- a/src/libsyntax/parse/token.rs +++ b/src/libsyntax/parse/token.rs @@ -561,11 +561,11 @@ declare_special_idents_and_keywords! { (39, Virtual, "virtual"); (40, While, "while"); (41, Continue, "continue"); - (42, Proc, "proc"); - (43, Box, "box"); - (44, Const, "const"); - (45, Where, "where"); + (42, Box, "box"); + (43, Const, "const"); + (44, Where, "where"); 'reserved: + (45, Proc, "proc"); (46, Alignof, "alignof"); (47, Become, "become"); (48, Offsetof, "offsetof"); diff --git a/src/test/parse-fail/obsolete-proc.rs b/src/test/parse-fail/obsolete-proc.rs index 5208cdb6ad231..e440280d7e4b2 100644 --- a/src/test/parse-fail/obsolete-proc.rs +++ b/src/test/parse-fail/obsolete-proc.rs @@ -10,8 +10,8 @@ // Test that we generate obsolete syntax errors around usages of `proc`. -fn foo(p: proc()) { } //~ ERROR obsolete syntax: the `proc` type +fn foo(p: proc()) { } //~ ERROR: the `proc` type isn't used for the moment -fn bar() { proc() 1; } //~ ERROR obsolete syntax: `proc` expression +fn bar() { proc() 1; } //~ ERROR: `proc` expression isn't used for the moment -fn main() { } +fn main() { } \ No newline at end of file