Non-conforming inheritance

  1. New syntax
    • parser. Not much can be tested. The eweasel tests have covered this.
    • class view (flat-short view, ancestors, descendants)
    • class diagram. (NC is not integrated into Diagram tool, so no tcs is created. Any problem is reported via bug report system.)
    • metric tool
    • refactoring tool
  2. Modified validity rules:
    • VHPR(1) - circle in non-conforming inheritance relation.
    • VHPR(2) - non-conforming parent can be frozen
    • VHPR(4) - at least one parent should be conforming
    • VHPR(5) - no two ancestor types are different generic derivations of the same class.
  3. Secret status of inheritance:
    • compile-time (reattachment is ruled out)
    • run-time (reverse reattachment and object test should fail)
      • eweasel#noncon002, eweasel#noncon003
    • repeated inheritance should take into account only conforming parents to dispatch feature calls