rhs of ?? and %% can be any expression

master
Andrew Kelley 2016-02-06 19:28:11 -07:00
parent 73727bd1c5
commit c4f5a00253
2 changed files with 3 additions and 3 deletions

View File

@ -67,9 +67,9 @@ AsmClobbers= ":" list("String", ",")
UnwrapExpression = BoolOrExpression (UnwrapMaybe | UnwrapError) | BoolOrExpression
UnwrapMaybe = "??" BoolOrExpression
UnwrapMaybe = "??" Expression
UnwrapError = "%%" option("|" "Symbol" "|") BoolOrExpression
UnwrapError = "%%" option("|" "Symbol" "|") Expression
AssignmentExpression = UnwrapExpression AssignmentOperator UnwrapExpression | UnwrapExpression

View File

@ -2048,7 +2048,7 @@ static AstNode *ast_parse_unwrap_expr(ParseContext *pc, int *token_index, bool m
if (token->id == TokenIdDoubleQuestion) {
*token_index += 1;
AstNode *rhs = ast_parse_bool_or_expr(pc, token_index, true);
AstNode *rhs = ast_parse_expression(pc, token_index, true);
AstNode *node = ast_create_node(pc, NodeTypeBinOpExpr, token);
node->data.bin_op_expr.op1 = lhs;