diff options
Diffstat (limited to 'test/ruby/test_assignment.rb')
| -rw-r--r-- | test/ruby/test_assignment.rb | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/test/ruby/test_assignment.rb b/test/ruby/test_assignment.rb index 3a8dafb7f0..41e8bffe82 100644 --- a/test/ruby/test_assignment.rb +++ b/test/ruby/test_assignment.rb @@ -139,104 +139,6 @@ class TestAssignment < Test::Unit::TestCase order.clear end - def test_massign_const_order - order = [] - - test_mod_class = Class.new(Module) do - define_method(:x1){order << :x1; self} - define_method(:y1){order << :y1; self} - define_method(:x2){order << :x2; self} - define_method(:x3){order << :x3; self} - define_method(:x4){order << :x4; self} - define_method(:[]){|*args| order << [:[], *args]; self} - define_method(:r1){order << :r1; :r1} - define_method(:r2){order << :r2; :r2} - - define_method(:constant_values) do - h = {} - constants.each do |sym| - h[sym] = const_get(sym) - end - h - end - - define_singleton_method(:run) do |code| - m = new - m.instance_eval(code) - ret = [order.dup, m.constant_values] - order.clear - ret - end - end - - ord, constants = test_mod_class.run( - "x1.y1::A, x2[1, 2, 3]::B, self[4]::C = r1, 6, r2" - ) - assert_equal([:x1, :y1, :x2, [:[], 1, 2, 3], [:[], 4], :r1, :r2], ord) - assert_equal({:A=>:r1, :B=>6, :C=>:r2}, constants) - - ord, constants = test_mod_class.run( - "x1.y1::A, *x2[1, 2, 3]::B, self[4]::C = r1, 6, 7, r2" - ) - assert_equal([:x1, :y1, :x2, [:[], 1, 2, 3], [:[], 4], :r1, :r2], ord) - assert_equal({:A=>:r1, :B=>[6, 7], :C=>:r2}, constants) - - ord, constants = test_mod_class.run( - "x1.y1::A, *x2[1, 2, 3]::B, x3[4]::C = r1, 6, 7, r2" - ) - assert_equal([:x1, :y1, :x2, [:[], 1, 2, 3], :x3, [:[], 4], :r1, :r2], ord) - assert_equal({:A=>:r1, :B=>[6, 7], :C=>:r2}, constants) - - - ord, constants = test_mod_class.run( - "x1.y1::A, *x2[1, 2, 3]::B, x3[4]::C, x4::D = r1, 6, 7, r2, 8" - ) - assert_equal([:x1, :y1, :x2, [:[], 1, 2, 3], :x3, [:[], 4], :x4, :r1, :r2], ord) - assert_equal({:A=>:r1, :B=>[6, 7], :C=>:r2, :D=>8}, constants) - - ord, constants = test_mod_class.run( - "(x1.y1::A, x2::B), _a = [r1, r2], 7" - ) - assert_equal([:x1, :y1, :x2, :r1, :r2], ord) - assert_equal({:A=>:r1, :B=>:r2}, constants) - - ord, constants = test_mod_class.run( - "(x1.y1::A, x1::B), *x2[1, 2, 3]::C = [r1, 5], 6, 7, r2, 8" - ) - assert_equal([:x1, :y1, :x1, :x2, [:[], 1, 2, 3], :r1, :r2], ord) - assert_equal({:A=>:r1, :B=>5, :C=>[6, 7, :r2, 8]}, constants) - - ord, constants = test_mod_class.run( - "*x2[1, 2, 3]::A, (x3[4]::B, x4::C) = 6, 7, [r2, 8]" - ) - assert_equal([:x2, [:[], 1, 2, 3], :x3, [:[], 4], :x4, :r2], ord) - assert_equal({:A=>[6, 7], :B=>:r2, :C=>8}, constants) - - ord, constants = test_mod_class.run( - "(x1.y1::A, x1::B), *x2[1, 2, 3]::C, x3[4]::D, x4::E = [r1, 5], 6, 7, r2, 8" - ) - assert_equal([:x1, :y1, :x1, :x2, [:[], 1, 2, 3], :x3, [:[], 4], :x4, :r1, :r2], ord) - assert_equal({:A=>:r1, :B=>5, :C=>[6, 7], :D=>:r2, :E=>8}, constants) - - ord, constants = test_mod_class.run( - "(x1.y1::A, x1::B), *x2[1, 2, 3]::C, (x3[4]::D, x4::E) = [r1, 5], 6, 7, [r2, 8]" - ) - assert_equal([:x1, :y1, :x1, :x2, [:[], 1, 2, 3], :x3, [:[], 4], :x4, :r1, :r2], ord) - assert_equal({:A=>:r1, :B=>5, :C=>[6, 7], :D=>:r2, :E=>8}, constants) - - ord, constants = test_mod_class.run( - "((x1.y1::A, x1::B), _a), *x2[1, 2, 3]::C, ((x3[4]::D, x4::E), _b) = [[r1, 5], 10], 6, 7, [[r2, 8], 11]" - ) - assert_equal([:x1, :y1, :x1, :x2, [:[], 1, 2, 3], :x3, [:[], 4], :x4, :r1, :r2], ord) - assert_equal({:A=>:r1, :B=>5, :C=>[6, 7], :D=>:r2, :E=>8}, constants) - - ord, constants = test_mod_class.run( - "((x1.y1::A, x1::B), _a), *x2[1, 2, 3]::C, ((*x3[4]::D, x4::E), _b) = [[r1, 5], 10], 6, 7, [[r2, 8], 11]" - ) - assert_equal([:x1, :y1, :x1, :x2, [:[], 1, 2, 3], :x3, [:[], 4], :x4, :r1, :r2], ord) - assert_equal({:A=>:r1, :B=>5, :C=>[6, 7], :D=>[:r2], :E=>8}, constants) - end - def test_massign_splat a,b,*c = *[]; assert_equal([nil,nil,[]], [a,b,c]) a,b,*c = *[1]; assert_equal([1,nil,[]], [a,b,c]) @@ -717,16 +619,6 @@ class TestAssignment < Test::Unit::TestCase result = eval("if (a, b = MyObj.new); [a, b]; end", nil, __FILE__, __LINE__) assert_equal [[1,2],[3,4]], result end - - def test_const_assign_order - assert_raise(RuntimeError) do - eval('raise("recv")::C = raise(ArgumentError, "bar")') - end - - assert_raise(RuntimeError) do - eval('m = 1; m::C = raise("bar")') - end - end end require_relative 'sentence' |
