Remove proc keyword
This commit is contained in:
parent
d30609ffd7
commit
4e877adddf
@ -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 => (
|
||||
|
@ -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 `<TYPE as TRAIT_REF>::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<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();
|
||||
|
@ -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");
|
||||
|
@ -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() { }
|
Loading…
x
Reference in New Issue
Block a user