summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-03-12 17:14:38 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-03-12 17:14:38 +0000
commit1b60a978a2cb67a2ea5423d5bed3a1d6edbb2eaf (patch)
tree66e8b2d32bf108d8dd377bb9a1ba4c40d5acd169
parent7523a076c1ae2b3d7b55fcaa357c05ddb2c132a2 (diff)
merge revision(s) 57801: [Backport #13287]
parse.y: remove trace * parse.y (reg_named_capture_assign_iter): do not insert trace instructions before local variable assinments. putobject is expected at first. [ruby-core:79940] [Bug #13287] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_4@57934 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-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