[前][次][番号順一覧][スレッド一覧]

ruby-changes:65765

From: usa <ko1@a...>
Date: Mon, 5 Apr 2021 08:07:55 +0900 (JST)
Subject: [ruby-changes:65765] 6638b504b1 (ruby_2_6): merge revision(s) 8e189df32cacef4b21e357a590d349330532baf5: [Backport #17013]

https://git.ruby-lang.org/ruby.git/commit/?id=6638b504b1

From 6638b504b1ea1d092a75d02aa20674e540dd4b53 Mon Sep 17 00:00:00 2001
From: usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
Date: Sun, 4 Apr 2021 23:07:45 +0000
Subject: merge revision(s) 8e189df32cacef4b21e357a590d349330532baf5: [Backport
 #17013]

	Add operator info to OP_ASGN2 of RubyVM::AbstractSyntaxTree.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_6@67921 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
---
 ast.c                 |  3 ++-
 test/ruby/test_ast.rb | 11 +++++++++++
 version.h             |  2 +-
 3 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/ast.c b/ast.c
index f0e8dd2..883a838 100644
--- a/ast.c
+++ b/ast.c
@@ -443,9 +443,10 @@ node_children(rb_ast_t *ast, NODE *node) https://github.com/ruby/ruby/blob/trunk/ast.c#L443
                                     NEW_CHILD(ast, node->nd_args->nd_head),
                                     NEW_CHILD(ast, node->nd_args->nd_body));
       case NODE_OP_ASGN2:
-        return rb_ary_new_from_args(4, NEW_CHILD(ast, node->nd_recv),
+        return rb_ary_new_from_args(5, NEW_CHILD(ast, node->nd_recv),
                                     node->nd_next->nd_aid ? Qtrue : Qfalse,
                                     ID2SYM(node->nd_next->nd_vid),
+                                    ID2SYM(node->nd_next->nd_mid),
                                     NEW_CHILD(ast, node->nd_value));
       case NODE_OP_ASGN_AND:
         return rb_ary_new_from_args(3, NEW_CHILD(ast, node->nd_head), ID2SYM(idANDOP),
diff --git a/test/ruby/test_ast.rb b/test/ruby/test_ast.rb
index 1a897ef..3ba67e6 100644
--- a/test/ruby/test_ast.rb
+++ b/test/ruby/test_ast.rb
@@ -269,4 +269,15 @@ class TestAst < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/ruby/test_ast.rb#L269
     assert_equal(:LIT, body.type)
     assert_equal([1], body.children)
   end
+
+  def test_op_asgn2
+    node = RubyVM::AbstractSyntaxTree.parse("struct.field += foo")
+    _, _, body = *node.children
+    assert_equal(:OP_ASGN2, body.type)
+    recv, _, mid, op, value = body.children
+    assert_equal(:VCALL, recv.type)
+    assert_equal(:field, mid)
+    assert_equal(:+, op)
+    assert_equal(:VCALL, value.type)
+  end
 end
diff --git a/version.h b/version.h
index 92ef088..c4d0636 100644
--- a/version.h
+++ b/version.h
@@ -1,6 +1,6 @@ https://github.com/ruby/ruby/blob/trunk/version.h#L1
 #define RUBY_VERSION "2.6.7"
 #define RUBY_RELEASE_DATE "2021-04-05"
-#define RUBY_PATCHLEVEL 180
+#define RUBY_PATCHLEVEL 181
 
 #define RUBY_RELEASE_YEAR 2021
 #define RUBY_RELEASE_MONTH 4
-- 
cgit v1.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]