diff options
| author | bors <bors@rust-lang.org> | 2015-01-19 08:22:58 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2015-01-19 08:22:58 +0000 |
| commit | 135cac852822afe822cc1e4eb9546b96eb2cb35d (patch) | |
| tree | cc6382f0c7d92c7755151887657ad80a53dd8694 /src/libsyntax/parse | |
| parent | bd8a43c668ba93d29e9671c0c8dc6b67428bf492 (diff) | |
| parent | 3f0cc8011aef3f530663302d525bd2d8cb493db5 (diff) | |
| download | rust-135cac852822afe822cc1e4eb9546b96eb2cb35d.tar.gz rust-135cac852822afe822cc1e4eb9546b96eb2cb35d.zip | |
Auto merge of #21099 - sanxiyn:opt-return-ty, r=alexcrichton
This avoids having ast::Ty nodes which have no counterpart in the source.
Diffstat (limited to 'src/libsyntax/parse')
| -rw-r--r-- | src/libsyntax/parse/mod.rs | 4 | ||||
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 29 |
2 files changed, 6 insertions, 27 deletions
diff --git a/src/libsyntax/parse/mod.rs b/src/libsyntax/parse/mod.rs index f1f547ba0c7..90e236dfde3 100644 --- a/src/libsyntax/parse/mod.rs +++ b/src/libsyntax/parse/mod.rs @@ -1066,9 +1066,7 @@ mod test { }), id: ast::DUMMY_NODE_ID }), - output: ast::Return(P(ast::Ty{id: ast::DUMMY_NODE_ID, - node: ast::TyTup(vec![]), - span:sp(15,15)})), // not sure + output: ast::DefaultReturn(sp(15, 15)), variadic: false }), ast::Unsafety::Normal, diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 130972b4582..b2f6938f513 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -19,7 +19,8 @@ use ast::{Mod, BiAdd, Arg, Arm, Attribute, BindByRef, BindByValue}; use ast::{BiBitAnd, BiBitOr, BiBitXor, BiRem, BiLt, BiGt, Block}; use ast::{BlockCheckMode, CaptureByRef, CaptureByValue, CaptureClause}; use ast::{Crate, CrateConfig, Decl, DeclItem}; -use ast::{DeclLocal, DefaultBlock, UnDeref, BiDiv, EMPTY_CTXT, EnumDef, ExplicitSelf}; +use ast::{DeclLocal, DefaultBlock, DefaultReturn}; +use ast::{UnDeref, BiDiv, EMPTY_CTXT, EnumDef, ExplicitSelf}; use ast::{Expr, Expr_, ExprAddrOf, ExprMatch, ExprAgain}; use ast::{ExprAssign, ExprAssignOp, ExprBinary, ExprBlock, ExprBox}; use ast::{ExprBreak, ExprCall, ExprCast}; @@ -1426,11 +1427,7 @@ impl<'a> Parser<'a> { } } else { let pos = self.span.lo; - Return(P(Ty { - id: ast::DUMMY_NODE_ID, - node: TyTup(vec![]), - span: mk_sp(pos, pos), - })) + DefaultReturn(mk_sp(pos, pos)) } } @@ -4550,15 +4547,7 @@ impl<'a> Parser<'a> { (optional_unboxed_closure_kind, args) } }; - let output = if self.check(&token::RArrow) { - self.parse_ret_ty() - } else { - Return(P(Ty { - id: ast::DUMMY_NODE_ID, - node: TyInfer, - span: self.span, - })) - }; + let output = self.parse_ret_ty(); (P(FnDecl { inputs: inputs_captures, @@ -4575,15 +4564,7 @@ impl<'a> Parser<'a> { seq_sep_trailing_allowed(token::Comma), |p| p.parse_fn_block_arg()); - let output = if self.check(&token::RArrow) { - self.parse_ret_ty() - } else { - Return(P(Ty { - id: ast::DUMMY_NODE_ID, - node: TyInfer, - span: self.span, - })) - }; + let output = self.parse_ret_ty(); P(FnDecl { inputs: inputs, |
