cross-subsetting-crossing-feature

Available in: KerML, SysML

This checks that CrossSubsettings are declared on one of two or more end features.

Specification

The crossing_feature of a CrossSubsetting must be an end Feature that is owned by a Type with at least two end Features.

Examples

attribute def A;
attribute a {
    attribute b : A { attribute d : A; }
    end attribute c : A => b.d; // error
}

Fix this by adding another end feature:

attribute def A;
attribute a {
    end attribute b : A { attribute c : A; }
    end attribute d : A => b.c; // ok
}