# For dynamic calls (ie method calls where the method can not be determined at compile time) # we resolve the method at runtime, and then cache it. Aaron has shown that over 99% # of call sites are type stable, so one cache entry at the moment # # A cache entry stores the type of the object and the CallableMethod that is to be called # This is used in DynamicCall, see there # module Parfait class CacheEntry < Object attr_reader :cached_type, :cached_method def initialize(type , method) super() @cached_type = type @cached_method = method end def to_s "CacheEntry" + "#{@cached_method&.name}" end end end