Subclass names can collide, e.g. builtin.func_misc.Type and builtin.meta_osh.Type which share the base core.vm._Callable. This isn't a big deal until you need to query the subclass->base relationship, which a future commit will do.
This commit also changes pass_state.Virtual.virtuals into a mapping from (class, method) -> (base, method). If an entry maps to None that means the given method is part of the base class. This will allow a future commit to find the base for a given subclass.
The commit also changes mycpp to use fully-qualified class names when interacting with pass_state.Virtual to avoid ambiguity.
Subclass names can collide, e.g.
builtin.func_misc.Type
andbuiltin.meta_osh.Type
which share the basecore.vm._Callable
. This isn't a big deal until you need to query the subclass->base relationship, which a future commit will do.This commit also changes
pass_state.Virtual.virtuals
into a mapping from (class, method) -> (base, method). If an entry maps toNone
that means the given method is part of the base class. This will allow a future commit to find the base for a given subclass.The commit also changes mycpp to use fully-qualified class names when interacting with
pass_state.Virtual
to avoid ambiguity.