fixes from the method argument change

Affects
method creation
argument manipulation
compiler / to_code
This commit is contained in:
Torsten Ruger
2016-12-13 18:49:45 +02:00
parent 2c5541fb19
commit 16b3a77350
8 changed files with 26 additions and 25 deletions

View File

@ -24,7 +24,7 @@ module Register
end
def test_args
Register.machine.space.get_main.arguments.push Parfait::Variable.new(:Integer , :bar)
Register.machine.space.get_main.add_argument(:bar , :Integer)
@input = s(:name, :bar)
@output = Register::RegisterValue
check

View File

@ -8,7 +8,7 @@ class TestClass < MiniTest::Test
end
def foo_method for_class = :Try
args = Parfait.new_list [ Parfait::Variable.new(:Integer , :bar )]
args = Parfait::Type.new_for_hash( @try , { bar: :Integer})
::Parfait::TypedMethod.new @space.get_class_by_name(for_class) , :foo , args
end
@ -42,7 +42,8 @@ class TestClass < MiniTest::Test
end
end
def test_create_method
@try.create_instance_method :bar, Parfait.new_list( [ Parfait::Variable.new(:Integer , :bar )])
args = Parfait::Type.new_for_hash( @try , { bar: :Integer})
@try.create_instance_method :bar, args
assert_equal ":bar" , @try.method_names.inspect
end
def test_method_get

View File

@ -8,7 +8,7 @@ class TestMeta < MiniTest::Test
end
def foo_method for_class = :Try
args = Parfait.new_list [ Parfait::Variable.new(:Integer , :bar )]
args = Parfait::Type.new_for_hash( @try , { bar: :Integer})
::Parfait::TypedMethod.new @space.get_class_by_name(for_class) , :foo , args
end
@ -24,7 +24,8 @@ class TestMeta < MiniTest::Test
end
def test_create_method
@try.create_instance_method :bar, Parfait.new_list( [ Parfait::Variable.new(:Integer , :bar )])
args = Parfait::Type.new_for_hash( @try , { bar: :Integer})
@try.create_instance_method :bar, args
assert_equal ":bar" , @try.method_names.inspect
end
def test_add_method

View File

@ -58,7 +58,7 @@ class TestAssignStatement < MiniTest::Test
end
def test_assign_arg
Register.machine.space.get_main.arguments.push Parfait::Variable.new(:Integer , :blar)
Register.machine.space.get_main.add_argument(:blar , :Integer)
@input = s(:statements, s(:assignment, s(:name, :blar), s(:int, 5)))
@expect = [Label, LoadConstant, SetSlot, Label, FunctionReturn]
was = check
@ -69,7 +69,7 @@ class TestAssignStatement < MiniTest::Test
def test_arg_get
# have to define bar externally, just because redefining main. Otherwise that would be automatic
Register.machine.space.get_main.arguments.push Parfait::Variable.new(:Integer , :balr)
Register.machine.space.get_main.add_argument(:balr , :Integer)
@input = s(:statements, s(:return, s(:name, :balr)))
@expect = [Label, GetSlot, SetSlot, Label, FunctionReturn]
was = check