From f60cdf27e76f9e8c195246e90bfd944680cd7617 Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Fri, 22 Jun 2012 18:19:35 -0700 Subject: Remove 'implements' keyword in favour of :, part of #2301. --- src/libsyntax/parse/parser.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/libsyntax/parse/parser.rs') diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 46e838fd4be..28fee93fad7 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -1979,7 +1979,7 @@ class parser { let rp = self.parse_region_param(); let ty_params = self.parse_ty_params(); let class_path = self.ident_to_path_tys(class_name, rp, ty_params); - let ifaces : [@iface_ref] = if self.eat_keyword("implements") + let ifaces : [@iface_ref] = if self.eat(token::COLON) { self.parse_iface_ref_list() } else { [] }; self.expect(token::LBRACE); -- cgit 1.4.1-3-g733a5 From 20b5ca3d2ffaf7b26a0f13c5490d06a889455f07 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Sun, 24 Jun 2012 17:07:42 -0700 Subject: syntax: Merge parse_for_expr, parse_do_expr --- src/libsyntax/parse/parser.rs | 28 ++++++---------------------- 1 file changed, 6 insertions(+), 22 deletions(-) (limited to 'src/libsyntax/parse/parser.rs') diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 28fee93fad7..ddd44b1abe6 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -771,9 +771,9 @@ class parser { } else if self.eat_keyword("if") { ret pexpr(self.parse_if_expr()); } else if self.eat_keyword("for") { - ret pexpr(self.parse_for_expr()); + ret pexpr(self.parse_sugary_call_expr("for", expr_loop_body)); } else if self.eat_keyword("do") { - ret pexpr(self.parse_do_expr()); + ret pexpr(self.parse_sugary_call_expr("do", expr_do_body)); } else if self.eat_keyword("while") { ret pexpr(self.parse_while_expr()); } else if self.eat_keyword("loop") { @@ -1283,36 +1283,20 @@ class parser { } } - fn parse_for_expr() -> @expr { + fn parse_sugary_call_expr(keyword: str, ctor: fn(+@expr) -> expr_) -> @expr { let lo = self.last_span; let call = self.parse_expr_res(RESTRICT_STMT_EXPR); alt call.node { expr_call(f, args, true) { let b_arg = vec::last(args); let last = self.mk_expr(b_arg.span.lo, b_arg.span.hi, - expr_loop_body(b_arg)); + ctor(b_arg)); @{node: expr_call(f, vec::init(args) + [last], true) with *call} } _ { - self.span_fatal(lo, "`for` must be followed by a block call"); - } - } - } - - fn parse_do_expr() -> @expr { - let lo = self.last_span; - let call = self.parse_expr_res(RESTRICT_STMT_EXPR); - alt call.node { - expr_call(f, args, true) { - let b_arg = vec::last(args); - let last = self.mk_expr(b_arg.span.lo, b_arg.span.hi, - expr_do_body(b_arg)); - @{node: expr_call(f, vec::init(args) + [last], true) - with *call} - } - _ { - self.span_fatal(lo, "`do` must be followed by a block call"); + self.span_fatal( + lo, #fmt("`%s` must be followed by a block call", keyword)); } } } -- cgit 1.4.1-3-g733a5 From c01f5ef034368f035270f083ad9ba0fe6aa27a1c Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Sun, 24 Jun 2012 17:46:12 -0700 Subject: Long lines --- src/libsyntax/parse/parser.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/libsyntax/parse/parser.rs') diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index ddd44b1abe6..b05db8cfa6d 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -1283,7 +1283,8 @@ class parser { } } - fn parse_sugary_call_expr(keyword: str, ctor: fn(+@expr) -> expr_) -> @expr { + fn parse_sugary_call_expr(keyword: str, + ctor: fn(+@expr) -> expr_) -> @expr { let lo = self.last_span; let call = self.parse_expr_res(RESTRICT_STMT_EXPR); alt call.node { -- cgit 1.4.1-3-g733a5