summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--parse.y2
-rw-r--r--test/ruby/test_regexp.rb9
-rw-r--r--version.h2
3 files changed, 11 insertions, 2 deletions
diff --git a/parse.y b/parse.y
index 5169c58d4d..23b5417abb 100644
--- a/parse.y
+++ b/parse.y
@@ -10621,7 +10621,7 @@ reg_named_capture_assign_iter(const OnigUChar *name, const OnigUChar *name_end,
return ST_CONTINUE;
}
var = intern_cstr(s, len, enc);
- node = newline_node(node_assign(assignable(var, 0), NEW_LIT(ID2SYM(var))));
+ node = node_assign(assignable(var, 0), NEW_LIT(ID2SYM(var)));
succ = arg->succ_block;
if (!succ) succ = NEW_BEGIN(0);
succ = block_append(succ, node);
diff --git a/test/ruby/test_regexp.rb b/test/ruby/test_regexp.rb
index 112af60c96..2c4c9709f7 100644
--- a/test/ruby/test_regexp.rb
+++ b/test/ruby/test_regexp.rb
@@ -205,6 +205,15 @@ class TestRegexp < Test::Unit::TestCase
assert_not_include(local_variables, :nil, "[ruby-dev:32675]")
end
+ def test_assign_named_capture_trace
+ bug = '[ruby-core:79940] [Bug #13287]'
+ assert_normal_exit("#{<<-"begin;"}\n#{<<-"end;"}", bug)
+ begin;
+ / (?<foo>.*)/ =~ "bar" &&
+ true
+ end;
+ end
+
def test_match_regexp
r = /./
m = r.match("a")
diff --git a/version.h b/version.h
index 64db21261e..eeb5b71333 100644
--- a/version.h
+++ b/version.h
@@ -1,6 +1,6 @@
#define RUBY_VERSION "2.4.0"
#define RUBY_RELEASE_DATE "2017-03-13"
-#define RUBY_PATCHLEVEL 88
+#define RUBY_PATCHLEVEL 89
#define RUBY_RELEASE_YEAR 2017
#define RUBY_RELEASE_MONTH 3