fix scoping of blockcompiler

Was accessing caller scope, but must use caller's caller as the yield itself is a call.
This commit is contained in:
Torsten Ruger
2018-07-31 18:00:42 +03:00
parent 4fe0edd1e3
commit 04bcfea8ce
6 changed files with 80 additions and 36 deletions

View File

@ -39,9 +39,9 @@ module Risc
elsif @callable.frame_type.variable_index(name)
slot_def = [:frame]
elsif @method.arguments_type.variable_index(name)
slot_def = [:caller , :arguments ]
slot_def = [:caller , :caller ,:arguments ]
elsif @method.frame_type.variable_index(name)
slot_def = [:caller , :frame ]
slot_def = [:caller ,:caller , :frame ]
elsif
raise "no variable #{name} , need to resolve at runtime"
end