rubyx/test/vool/ruby_compiler/test_op_assignment.rb
Torsten Ruger 67a6ef9f67 add rewriting of operator assignment
foo += 1 becomes foo = foo + 1 in vool
2018-06-25 16:32:20 +03:00

40 lines
898 B
Ruby

require_relative "helper"
module Vool
module OpAss
def test_local_name
assert_equal :foo , @lst.name
end
def test_local_value
assert_equal SendStatement , @lst.value.class
end
def test_local_method
assert_equal :+ , @lst.value.name
end
def test_local_receiver
assert_equal :foo , @lst.value.receiver.name
end
def test_local_receiver
assert_equal 5 , @lst.value.arguments.first.value
end
end
class TestLocalOpAssign < MiniTest::Test
include OpAss
def setup
@lst = RubyCompiler.compile( "foo += 5")
end
def test_local_ass
assert_equal LocalAssignment , @lst.class
end
end
class TestIvarOpAssign < MiniTest::Test
include OpAss
def setup
@lst = RubyCompiler.compile( "@foo += 5")
end
def test_ivar_ass
assert_equal IvarAssignment , @lst.class
end
end
end