rubyx/lib/slot_language/code/resolve_method.slot

23 lines
476 B
Plaintext
Raw Normal View History

2019-10-04 20:06:22 +02:00
# passed in? name and cache_entry
2020-02-09 15:33:34 +01:00
word! = name_
cache_entry! = cache_entry_
2019-10-04 20:06:22 +02:00
# local var assignment
2020-02-09 15:33:34 +01:00
callable_method = cache_entry.cached_type.methods
2019-10-04 20:06:22 +02:00
while_start_label
goto(exit_label) if( nil == callable_method)
goto(ok_label) if(callable_method.name == word)
callable_method = callable_method.next_callable
goto(while_start_label)
exit_label
MethodMissing.new(compiler.source_name , word.symbol).to_risc(compiler)
ok_label
cache_entry.cached_method = callable_method