require_relative "../helper" module Sol class TestSendCachedSimpleSlotMachine < MiniTest::Test include SolCompile def setup @compiler = compile_main( "a = 5; a.div4;return ") @ins = @compiler.slot_instructions.next end def test_check_type assert_equal NotSameCheck , @ins.next(1).class , @ins end def test_type_update load = @ins.next(2) assert_equal :message , load.right.known_object , load assert_equal :local1 , load.right.slots.name , load assert_equal :type , load.right.slots.next_slot.name , load end def test_check_resolve_call assert_equal ResolveMethod , @ins.next(3).class , @ins end def test_dynamic_call_last assert_equal DynamicCall , @ins.next(7).class , @ins end def test_array check_array [SlotLoad, NotSameCheck, SlotLoad, ResolveMethod , Label, MessageSetup, ArgumentTransfer, DynamicCall, SlotLoad, ReturnJump, Label , ReturnSequence, Label] , @ins end end end