From 717e41c87d30e63ccc618ca50164d678c29defd7 Mon Sep 17 00:00:00 2001 From: Andrew Konchin Date: Mon, 7 Oct 2024 15:36:36 +0300 Subject: [PATCH] Set contains_keywords flag for implicit gets($/, chomp: true) method call to handle -l CLI option --- src/prism.c | 1 + test/prism/api/command_line_test.rb | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src/prism.c b/src/prism.c index b526b59914..ec2ea70bae 100644 --- a/src/prism.c +++ b/src/prism.c @@ -21905,6 +21905,7 @@ wrap_statements(pm_parser_t *parser, pm_statements_node_t *statements) { )); pm_arguments_node_arguments_append(arguments, (pm_node_t *) keywords); + pm_node_flag_set((pm_node_t *) arguments, PM_ARGUMENTS_NODE_FLAGS_CONTAINS_KEYWORDS); } pm_statements_node_t *wrapped_statements = pm_statements_node_create(parser); diff --git a/test/prism/api/command_line_test.rb b/test/prism/api/command_line_test.rb index a8c4355152..e53d18703a 100644 --- a/test/prism/api/command_line_test.rb +++ b/test/prism/api/command_line_test.rb @@ -52,6 +52,9 @@ def test_command_line_l assert_kind_of CallNode, predicate assert_equal :gets, predicate.name + arguments = predicate.arguments + assert arguments.contains_keywords? + arguments = predicate.arguments.arguments assert_equal 2, arguments.length assert_equal :$/, arguments.first.name