| Module | Ruva::VM::Class::Helpers |
| In: |
lib/ruva/class.rb
|
# File lib/ruva/class.rb, line 175
175: def find_field(name, desc)
176: if idx = field_lookup[name + desc]
177: fields[idx]
178: end
179: end
# File lib/ruva/class.rb, line 171
171: def find_field_idx(name, desc)
172: field_lookup[name + desc]
173: end
# File lib/ruva/class.rb, line 165
165: def find_method(name, desc)
166: if idx = method_lookup[name + desc]
167: methods[idx]
168: end
169: end
# File lib/ruva/class.rb, line 161
161: def find_method_idx(name, desc)
162: method_lookup[name + desc]
163: end
# File lib/ruva/class.rb, line 157
157: def instof_class_names(vm)
158: @instof_class_names ||= instof_classes(vm).map { |c| c.name }
159: end
Get all class names of which this class could be a valid instance. Order is this class first, followed by it‘s interfaces, followed by superclass, then it‘s interfaces, etc.
# File lib/ruva/class.rb, line 145
145: def instof_classes(vm)
146: @instof_classes ||= begin
147: clzs = []
148:
149: if sc = super_class(vm)
150: clzs = sc.instof_classes(vm)
151: end
152:
153: ([self] + interfaces.map { |i| vm.find_class(i).instof_classes(vm) }.flatten + clzs).uniq
154: end
155: end