diff --git a/lib/parfait/behaviour.rb b/lib/parfait/behaviour.rb index 6c8d4f35..15029f79 100644 --- a/lib/parfait/behaviour.rb +++ b/lib/parfait/behaviour.rb @@ -37,7 +37,7 @@ module Parfait def get_instance_method( fname ) raise "get_instance_method #{fname}.#{fname.class}" unless fname.is_a?(Symbol) #if we had a hash this would be easier. Detect or find would help too - self.methods.find {|m| m.name == fname } + self.instance_methods.find {|m| m.name == fname } end # get the method and if not found, try superclasses. raise error if not found diff --git a/lib/parfait/class.rb b/lib/parfait/class.rb index 3d055147..f3650dae 100644 --- a/lib/parfait/class.rb +++ b/lib/parfait/class.rb @@ -24,7 +24,7 @@ module Parfait super() @name = name @super_class_name = superclass - @methods = {} + @instance_methods = List.new set_instance_type( instance_type ) end @@ -44,11 +44,11 @@ module Parfait def add_method(method) raise "Must be untyped method #{method}" unless method.is_a? Parfait::VoolMethod - @methods[method.name] = method + @instance_methods.push(method) end def get_method(name) - @methods[name] + @instance_methods.find{|m| m.name == name } end # adding an instance changes the instance_type to include that variable diff --git a/lib/parfait/vool_method.rb b/lib/parfait/vool_method.rb index 26a81448..eef8fee0 100644 --- a/lib/parfait/vool_method.rb +++ b/lib/parfait/vool_method.rb @@ -10,7 +10,7 @@ module Parfait # as it changes during the course of it's life. Types do not change. Objects have # type, and so only indirectly a class. # - class VoolMethod + class VoolMethod < Object attr_reader :name , :args_type , :frame_type , :source diff --git a/lib/vool/statements/class_statement.rb b/lib/vool/statements/class_statement.rb index 00f77d5f..66c26b77 100644 --- a/lib/vool/statements/class_statement.rb +++ b/lib/vool/statements/class_statement.rb @@ -15,7 +15,7 @@ module Vool create_class_object mom = nil #return mom for test purpose self.each do |node| - mom = node.to_mom(@clazz) if node.is_a?(MethodStatement) + mom = node.to_mom(@clazz) if node.is_a?(MethodStatement) end mom end diff --git a/test/parfait/type/test_hash.rb b/test/parfait/type/test_hash.rb index 4135f095..f9435cd6 100644 --- a/test/parfait/type/test_hash.rb +++ b/test/parfait/type/test_hash.rb @@ -28,7 +28,7 @@ module Parfait def test_to_hash hash = @first.to_hash assert_equal hash[:type] , :Type - assert_equal 2 , hash.length + assert_equal 3 , hash.length end def test_add_is_different type = @first.add_instance_variable :random , :Integer diff --git a/test/risc/interpreter/calling/test_minus.rb b/test/risc/interpreter/calling/test_minus.rb index d62c1383..d8596f9b 100644 --- a/test/risc/interpreter/calling/test_minus.rb +++ b/test/risc/interpreter/calling/test_minus.rb @@ -45,7 +45,7 @@ module Risc ret = main_ticks(63) assert_equal FunctionReturn , ret.class assert_equal :r1 , ret.register.symbol - assert_equal 20580 , @interpreter.get_register(ret.register) + assert_equal 20996 , @interpreter.get_register(ret.register) end def test_sys sys = main_ticks(68) diff --git a/test/risc/test_interpreter.rb b/test/risc/test_interpreter.rb index 7ab407f8..082d5ad8 100644 --- a/test/risc/test_interpreter.rb +++ b/test/risc/test_interpreter.rb @@ -52,7 +52,7 @@ module Risc end def test_pc1 @interpreter.tick - assert_equal 20344 , @interpreter.pc + assert_equal 20728 , @interpreter.pc end def test_tick2 @interpreter.tick @@ -66,7 +66,7 @@ module Risc def test_pc2 @interpreter.tick @interpreter.tick - assert_equal 20348 , @interpreter.pc + assert_equal 20732 , @interpreter.pc end def test_tick_14_jump 14.times {@interpreter.tick} diff --git a/test/risc/test_machine.rb b/test/risc/test_machine.rb index d18ecf36..66546b84 100644 --- a/test/risc/test_machine.rb +++ b/test/risc/test_machine.rb @@ -57,7 +57,7 @@ module Risc assert_equal 0 , Position.get(@machine.cpu_init).at end def test_cpu_at - assert_equal "0x5eb4" , Position.get(@machine.cpu_init.first).to_s + assert_equal "0x6034" , Position.get(@machine.cpu_init.first).to_s end def test_cpu_label assert_equal Position , Position.get(@machine.cpu_init.first).class diff --git a/test/risc/test_padding.rb b/test/risc/test_padding.rb index 151e752c..764f80d7 100644 --- a/test/risc/test_padding.rb +++ b/test/risc/test_padding.rb @@ -29,7 +29,7 @@ module Risc end def test_list5 list = Parfait.new_list([1,2,3,4,5]) - assert_equal 32 , list.padded_length + assert_equal 64 , list.padded_length end def test_type type = Parfait::Type.for_hash Parfait.object_space.get_class_by_name(:Object) , {}