diff options
| author | bors <bors@rust-lang.org> | 2015-03-11 23:51:30 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2015-03-11 23:51:30 +0000 |
| commit | 425297a93035bc89663ff5f83d229f6c19341ffb (patch) | |
| tree | 5e2406b181498f03ec352b883f4be61862114f00 /src/libsyntax/parse/parser.rs | |
| parent | ae4812b6136797bbe3daec7fb8c6673a87998b37 (diff) | |
| parent | db726faf324c9258c3e93f15d41ada4f9d008f66 (diff) | |
| download | rust-425297a93035bc89663ff5f83d229f6c19341ffb.tar.gz rust-425297a93035bc89663ff5f83d229f6c19341ffb.zip | |
Auto merge of #23156 - GuillaumeGomez:remove-proc, r=alexcrichton
This is the implementation of the [RFC 584](https://github.com/rust-lang/rfcs/pull/584).
Diffstat (limited to 'src/libsyntax/parse/parser.rs')
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 58 |
1 files changed, 1 insertions, 57 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 28d757e9be9..b0ae612d4b0 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() || @@ -1121,35 +1119,6 @@ impl<'a> Parser<'a> { })) } - /// Parses a procedure type (`proc`). The initial `proc` keyword must - /// already have been parsed. - pub fn parse_proc_type(&mut self, lifetime_defs: Vec<ast::LifetimeDef>) -> Ty_ { - /* - - proc <'lt> (S) [:Bounds] -> T - ^~~^ ^~~~^ ^ ^~~~~~~~^ ^ - | | | | | - | | | | Return type - | | | Bounds - | | Argument types - | Legacy lifetimes - the `proc` keyword (already consumed) - - */ - - let proc_span = self.last_span; - - // To be helpful, parse the proc as ever - let _ = self.parse_legacy_lifetime_defs(lifetime_defs); - let _ = self.parse_fn_args(false, false); - let _ = self.parse_colon_then_ty_param_bounds(BoundParsingMode::Bare); - let _ = self.parse_ret_ty(); - - self.obsolete(proc_span, ObsoleteSyntax::ProcType); - - TyInfer - } - /// Parses an obsolete closure kind (`&:`, `&mut:`, or `:`). pub fn parse_obsolete_closure_kind(&mut self) { let lo = self.span.lo; @@ -1522,8 +1491,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(); @@ -2285,12 +2252,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 +4606,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(); |
