diff --git a/doc/langref.md b/doc/langref.md index aa499e3338..a725424104 100644 --- a/doc/langref.md +++ b/doc/langref.md @@ -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 diff --git a/src/parser.cpp b/src/parser.cpp index 7a9d2a0eaa..b2da82eec9 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -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;