57dc6c45bb
this is core of #11 rename compiler_builder to just builder and change all builder uses to use that some test change as code is not returned anymore
63 lines
1.8 KiB
Ruby
63 lines
1.8 KiB
Ruby
require_relative "../helper"
|
|
|
|
module Risc
|
|
class TestBuilderInfer < MiniTest::Test
|
|
|
|
def setup
|
|
Parfait.boot!
|
|
Risc.boot!
|
|
@init = Parfait.object_space.get_init
|
|
@compiler = Risc::MethodCompiler.new( @init )
|
|
@builder = @compiler.builder(@init)
|
|
end
|
|
def test_list
|
|
assert_equal :List , @builder.infer_type(:list).class_name
|
|
end
|
|
def test_name
|
|
assert_equal :Word , @builder.infer_type(:name).class_name
|
|
end
|
|
def test_word
|
|
assert_equal :Word , @builder.infer_type(:word).class_name
|
|
end
|
|
def test_caller
|
|
assert_equal :Message , @builder.infer_type(:caller).class_name
|
|
end
|
|
def test_caller_reg
|
|
assert_equal :Message , @builder.infer_type(:caller_reg).class_name
|
|
end
|
|
def test_define_twice
|
|
@builder.caller_reg!
|
|
assert_raises{ @builder.caller_reg! }
|
|
end
|
|
def test_define_conditionally_first
|
|
assert_equal :r1 , @builder.caller_reg?.symbol
|
|
end
|
|
def test_define_conditionally_again
|
|
first = @builder.caller_reg!
|
|
assert_equal first , @builder.caller_reg?
|
|
end
|
|
def test_caller_tmp
|
|
assert_equal :Message , @builder.infer_type(:caller_tmp).class_name
|
|
end
|
|
def test_caller_obj
|
|
assert_equal :Message , @builder.infer_type(:caller_obj).class_name
|
|
end
|
|
def test_caller_const
|
|
assert_equal :Message , @builder.infer_type(:caller_const).class_name
|
|
end
|
|
def test_caller_self
|
|
assert_equal :Message , @builder.infer_type(:caller_self).class_name
|
|
end
|
|
def test_caller_1
|
|
assert_equal :Message , @builder.infer_type(:caller_1).class_name
|
|
end
|
|
def test_message
|
|
assert_equal :Message , @builder.infer_type(:message).class_name
|
|
end
|
|
def test_next_message
|
|
assert_equal :Message , @builder.infer_type(:next_message).class_name
|
|
end
|
|
|
|
end
|
|
end
|