Skip to content

Commit

Permalink
Remove proc keyword
Browse files Browse the repository at this point in the history
  • Loading branch information
GuillaumeGomez committed Mar 10, 2015
1 parent d30609f commit 4e877ad
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 37 deletions.
4 changes: 2 additions & 2 deletions src/libsyntax/parse/obsolete.rs
Expand Up @@ -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 => (
Expand Down
29 changes: 1 addition & 28 deletions src/libsyntax/parse/parser.rs
Expand Up @@ -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() ||
Expand Down Expand Up @@ -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 `<TYPE as TRAIT_REF>::item`
let self_type = self.parse_ty_sum();
Expand Down Expand Up @@ -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();
}
Expand Down Expand Up @@ -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<FnDecl> {
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();
Expand Down
8 changes: 4 additions & 4 deletions src/libsyntax/parse/token.rs
Expand Up @@ -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");
Expand Down
6 changes: 3 additions & 3 deletions src/test/parse-fail/obsolete-proc.rs
Expand Up @@ -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() { }

0 comments on commit 4e877ad

Please sign in to comment.