small rename to align has_locals and has_arguments
for semantic and code unification
This commit is contained in:
parent
4095bb397f
commit
a0cf5bffc0
@ -10,7 +10,7 @@ module Vm
|
|||||||
[:self , :space , :message].each do |special|
|
[:self , :space , :message].each do |special|
|
||||||
return send(:"load_special_#{special}" , statement ) if name == special
|
return send(:"load_special_#{special}" , statement ) if name == special
|
||||||
end
|
end
|
||||||
return load_argument(statement) if( @method.has_arg(name))
|
return load_argument(statement) if( @method.has_argument(name))
|
||||||
load_local(statement)
|
load_local(statement)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -18,9 +18,9 @@ module Vm
|
|||||||
|
|
||||||
def load_argument(statement)
|
def load_argument(statement)
|
||||||
name = statement.name
|
name = statement.name
|
||||||
index = @method.has_arg(name)
|
index = @method.has_argument(name)
|
||||||
named_list = use_reg :NamedList
|
named_list = use_reg :NamedList
|
||||||
ret = use_reg @method.argument_type(index)
|
ret = use_reg @method.arguments_type(index)
|
||||||
#puts "For #{name} at #{index} got #{@method.arguments.inspect}"
|
#puts "For #{name} at #{index} got #{@method.arguments.inspect}"
|
||||||
add_slot_to_reg("#{statement} load args" , :message , :arguments, named_list )
|
add_slot_to_reg("#{statement} load args" , :message , :arguments, named_list )
|
||||||
add_slot_to_reg("#{statement} load #{name}" , named_list , index + 1, ret )
|
add_slot_to_reg("#{statement} load #{name}" , named_list , index + 1, ret )
|
||||||
|
@ -44,8 +44,8 @@ module Parfait
|
|||||||
end
|
end
|
||||||
|
|
||||||
# determine whether this method has an argument by the name
|
# determine whether this method has an argument by the name
|
||||||
def has_arg( name )
|
def has_argument( name )
|
||||||
raise "has_arg #{name}.#{name.class}" unless name.is_a? Symbol
|
raise "has_argument #{name}.#{name.class}" unless name.is_a? Symbol
|
||||||
index = arguments.variable_index( name )
|
index = arguments.variable_index( name )
|
||||||
index ? (index - 1) : index
|
index ? (index - 1) : index
|
||||||
end
|
end
|
||||||
@ -61,7 +61,7 @@ module Parfait
|
|||||||
def argument_name( index )
|
def argument_name( index )
|
||||||
arguments.names.get(index + 1)
|
arguments.names.get(index + 1)
|
||||||
end
|
end
|
||||||
def argument_type( index )
|
def arguments_type( index )
|
||||||
arguments.types.get(index + 1)
|
arguments.types.get(index + 1)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -24,35 +24,35 @@ class TestMethod < MiniTest::Test
|
|||||||
assert_equal :bar , @method.argument_name(1)
|
assert_equal :bar , @method.argument_name(1)
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_has_arg
|
def test_has_argument
|
||||||
assert_equal 1 , @method.has_arg(:bar)
|
assert_equal 1 , @method.has_argument(:bar)
|
||||||
assert_equal 2 , @method.has_arg(:foo)
|
assert_equal 2 , @method.has_argument(:foo)
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_add_arg
|
def test_add_arg
|
||||||
@method.add_argument(:foo2 , :Object)
|
@method.add_argument(:foo2 , :Object)
|
||||||
assert_equal 3 , @method.arguments_length
|
assert_equal 3 , @method.arguments_length
|
||||||
assert_equal :foo2 , @method.argument_name(3)
|
assert_equal :foo2 , @method.argument_name(3)
|
||||||
assert_equal :Object , @method.argument_type(3)
|
assert_equal :Object , @method.arguments_type(3)
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_get_arg_name1
|
def test_get_arg_name1
|
||||||
index = @method.has_arg(:bar)
|
index = @method.has_argument(:bar)
|
||||||
assert_equal 1 , index
|
assert_equal 1 , index
|
||||||
assert_equal :bar , @method.argument_name(index)
|
assert_equal :bar , @method.argument_name(index)
|
||||||
end
|
end
|
||||||
def test_get_arg_type1
|
def test_get_arg_type1
|
||||||
index = @method.has_arg(:bar)
|
index = @method.has_argument(:bar)
|
||||||
assert_equal :Integer , @method.argument_type(index)
|
assert_equal :Integer , @method.arguments_type(index)
|
||||||
end
|
end
|
||||||
def test_get_arg_name2
|
def test_get_arg_name2
|
||||||
index = @method.has_arg(:foo)
|
index = @method.has_argument(:foo)
|
||||||
assert_equal 2 , index
|
assert_equal 2 , index
|
||||||
assert_equal :foo , @method.argument_name(index)
|
assert_equal :foo , @method.argument_name(index)
|
||||||
end
|
end
|
||||||
def test_get_arg_type2
|
def test_get_arg_type2
|
||||||
index = @method.has_arg(:foo)
|
index = @method.has_argument(:foo)
|
||||||
assert_equal :Type , @method.argument_type(index)
|
assert_equal :Type , @method.arguments_type(index)
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_local1
|
def test_local1
|
||||||
|
Loading…
Reference in New Issue
Block a user