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

ruby-changes:56123

From: Yusuke <ko1@a...>
Date: Sun, 16 Jun 2019 23:01:52 +0900 (JST)
Subject: [ruby-changes:56123] Yusuke Endoh: 1ff26dc4c7 (trunk): Revert "Make constant assignments more conforming to JIS X 3017:2013 11.4.2.2.3"

https://git.ruby-lang.org/ruby.git/commit/?id=1ff26dc4c7

From 1ff26dc4c706cd6e8f227d159a2b23cba5f6de77 Mon Sep 17 00:00:00 2001
From: Yusuke Endoh <mame@r...>
Date: Sun, 16 Jun 2019 23:00:05 +0900
Subject: Revert "Make constant assignments more conforming to JIS X 3017:2013
 11.4.2.2.3"

This reverts commit 44caca11cfa6bea01a1ef738846183f1a56d5658.

The change caused a build failure.
http://ci.rvm.jp/results/trunk-vm-asserts@silicon-docker/2102153

diff --git a/compile.c b/compile.c
index 928a95b..80dc5e7 100644
--- a/compile.c
+++ b/compile.c
@@ -6855,26 +6855,21 @@ iseq_compile_each0(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *node, in https://github.com/ruby/ruby/blob/trunk/compile.c#L6855
 	break;
       }
       case NODE_CDECL:{
-        ID base_id;
+	CHECK(COMPILE(ret, "lvalue", node->nd_value));
+
+	if (!popped) {
+	    ADD_INSN(ret, line, dup);
+	}
+
 	if (node->nd_vid) {
 	    ADD_INSN1(ret, line, putspecialobject,
 		      INT2FIX(VM_SPECIAL_OBJECT_CONST_BASE));
-            base_id = node->nd_vid;
+	    ADD_INSN1(ret, line, setconstant, ID2SYM(node->nd_vid));
 	}
 	else {
 	    compile_cpath(ret, iseq, node->nd_else);
-            base_id = node->nd_else->nd_mid;
+	    ADD_INSN1(ret, line, setconstant, ID2SYM(node->nd_else->nd_mid));
 	}
-        CHECK(COMPILE(ret, "lvalue", node->nd_value));
-
-        if (popped) {
-            ADD_INSN(ret, line, swap);
-        } else {
-            ADD_INSN(ret, line, dup);
-            ADD_INSN1(ret, line, reverse, INT2FIX(3));
-        }
-
-        ADD_INSN1(ret, line, setconstant, ID2SYM(base_id));
 	break;
       }
       case NODE_CVASGN:{
diff --git a/test/ruby/test_const.rb b/test/ruby/test_const.rb
index fa512aa..8784e0e 100644
--- a/test/ruby/test_const.rb
+++ b/test/ruby/test_const.rb
@@ -69,12 +69,4 @@ PRE https://github.com/ruby/ruby/blob/trunk/test/ruby/test_const.rb#L69
   def test_toplevel_lookup
     assert_raise(NameError, '[Feature #11547]') {TestConst::Object}
   end
-
-  def test_evaluation_order
-    assert_raise_with_message(RuntimeError, "recv", 'JIS X 3017:2013 11.4.2.2.3') {
-      eval <<~EOS
-        raise('recv')::C = raise('value')
-      EOS
-    }
-  end
 end
-- 
cgit v0.10.2


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

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