From d1ef4fd08e60adcbcb4feeb55f767ff3d80b65a0 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Sat, 30 Nov 2019 00:15:29 +0900 Subject: Make single line pattern matching void expression Instead of returning `nil`, raise a syntax error if its value is used. [Feature #16355] --- parse.y | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'parse.y') diff --git a/parse.y b/parse.y index c1df3060bd..15c9b419d7 100644 --- a/parse.y +++ b/parse.y @@ -10740,6 +10740,17 @@ value_expr_check(struct parser_params *p, NODE *node) case NODE_RETRY: return void_node ? void_node : node; + case NODE_CASE3: + if (!node->nd_body || nd_type(node->nd_body) != NODE_IN) { + compile_error(p, "unexpected node"); + return NULL; + } + if (node->nd_body->nd_body) { + return NULL; + } + /* single line pattern matching */ + return void_node ? void_node : node; + case NODE_BLOCK: while (node->nd_next) { node = node->nd_next; -- cgit v1.2.3