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/