• Kevin Modzelewski's avatar
    Support multiple inheritance · fee6818c
    Kevin Modzelewski authored
    The core functionality is to calculate and store tp_mro and tp_bases
    instead of just tp_base.  This gives the runtime a bit harder of a
    time to bootstrap itself since now a fully-built class depends on
    a few more classes, so the bootstrapping section got larger:
    - object_cls (base of the tp_base hierarchy)
    - type_cls (base of the metaclass hierarchy)
    - str_cls (for ht_name)
    - tuple_cls (for tp_mro)
    - list_cls (for calculating the mro)
    
    There were a few places that needed to be updated now that we have
    multiple inheritance:
    - typeLookup()
    - isSubclass()
    - typeNew()
    - super()
    
    This change doesn't even attempt to add multiple inheritance rules
    around old-style classes.
    fee6818c
types.cpp 55.5 KB