subsetting-featuring-types

Available in: KerML, SysML

This checks that subsetted features are accessible from the subsetting features, e.g. through inheritance.

Specification

The subsetted_feature must be accessible by the subsetting_feature.

Example

This can be triggered by subsetting nested features from inherited members:

part def A { part b { attribute c; } }
part def B :> A {
    attribute c :> b::c; // error
}

Instead, use feature chaining if accessing the subsetted feature from another accessible feature:

part def A { part b { attribute c; } }
part def B :> A {
    attribute c :> b.c; // ok
}