fix class function test
This commit is contained in:
parent
93bdd8a243
commit
16a378e3da
@ -8,7 +8,8 @@ module Ast
|
||||
frame = frame.new_frame
|
||||
return_type = nil
|
||||
body.each do |ex|
|
||||
return_type = ex.compile(frame , method )
|
||||
val = ex.compile(frame , method )
|
||||
return_type = val.type
|
||||
end
|
||||
method.return_type = return_type
|
||||
method
|
||||
|
@ -18,6 +18,9 @@ module Virtual
|
||||
def initialize nex = nil
|
||||
@next = nex
|
||||
end
|
||||
def type
|
||||
Reference
|
||||
end
|
||||
end
|
||||
|
||||
# the first instruction we need is to stop. Off course in a real machine this would be a syscall, but that is just
|
||||
|
@ -19,7 +19,7 @@ def String.length(x)
|
||||
@length
|
||||
end
|
||||
HERE
|
||||
@output = [Virtual::Method.new(:length,[Ast::NameExpression.new(:x)],Boot::BootClass.new(:String,:Object))]
|
||||
@output = [Virtual::Method.new(:length,[Ast::NameExpression.new(:x)],Boot::BootClass.new(:String,:Object),Virtual::Reference,Virtual::MethodEnter.new(Virtual::FrameSend.new(:_get_instance_variable , [ Virtual::StringConstant.new('length')])))]
|
||||
check
|
||||
end
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user