summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-11-03 11:35:01 +0800
committerJohn Hodge <tpg@mutabah.net>2016-11-03 11:35:01 +0800
commitde3d219f998e854091a0663c7e57cb1b3334e995 (patch)
tree489939524160781e2057e68a161861cd9633091c
parente636281390211dd8caf08b439ef7b46ea3434b29 (diff)
downloadmrust-de3d219f998e854091a0663c7e57cb1b3334e995.tar.gz
Parse Expr - Slight tweak to handling of ;
-rw-r--r--src/parse/expr.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/parse/expr.cpp b/src/parse/expr.cpp
index f2ec1857..17a40364 100644
--- a/src/parse/expr.cpp
+++ b/src/parse/expr.cpp
@@ -203,7 +203,8 @@ ExprNodeP Parse_ExprBlockLine(TokenStream& lex, bool *add_silence)
case TOK_INTERPOLATED_BLOCK:
return tok.take_frag_node();
case TOK_SEMICOLON:
- return NEWNODE(AST::ExprNode_Tuple, ::std::vector<AST::ExprNodeP>());
+ // Return a NULL expression, nothing here.
+ return nullptr;
// let binding
case TOK_RWORD_LET:
@@ -239,6 +240,12 @@ ExprNodeP Parse_ExprBlockLine(TokenStream& lex, bool *add_silence)
lex.putback( Token(Token::TagTakeIP(), InterpolatedFragment(InterpolatedFragment::EXPR, ret.release())) );
return Parse_ExprBlockLine_Stmt(lex, *add_silence);
}
+
+ if( LOOK_AHEAD(lex) == TOK_SEMICOLON ) {
+ GET_TOK(tok, lex);
+ *add_silence = true;
+ }
+
return ret;
// Flow control