redefinition-end-conformance

Available in: KerML, SysML

This checks that end features are only redefined by other end features.

Specification

If the redefined_feature of a Redefinition has is_end = true, then the redefining_feature must have is_end = true.

Example

part def A {
    end attribute a;
}
part def B :> A {
    attribute a :>> a; // ok
}

Instead, mark the redefining feature as end:

part def A {
    end attribute a;
}
part def B :> A {
    end attribute a :>> a; // ok
}

Or let the redefining feature implicitly redefine the inherited end feature:

part def A {
    end attribute a;
}
part def B :> A {
    end attribute a; // ok, implicitly redefines A::a
}