
Inherit processes each TypeDef to resolve the inherited slots. This step is used to check invalid inheritances due to conflicting slots and invalid overrides.
Slots
-
private Void checkFieldFieldOverride(TypeDef t, CField base, FieldDef def)
-
private Void checkMethodFieldOverride(TypeDef t, CMethod base, FieldDef def)
-
private Void checkMethodMethodOverride(TypeDef t, CMethod base, MethodDef def)
-
private Void checkOverride(TypeDef t, CSlot base, SlotDef def)
Check that def is a valid override of the base slot.
-
private Bool isOverrideProtectionErr(CSlot base, SlotDef def)
-
private CSlot keep(CSlot a, CSlot b)
Return if there is a clear keeper between a and b - if so return the one to keep otherwise return null.
- make
-
new make(Compiler compiler)
-
private Bool matchingSignatures(CSlot a, CSlot b)
Return if two slots have matching signatures
- run
-
override Void run()
- visitTypeDef