feature-owned-cross-subsetting

Available in: KerML, SysML

This checks that features have at most one cross subsetting.

Specification

The owned_cross_subsetting of a Feature is the owned_subsetting that is a CrossSubsetting, if any

Example

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

Instead, remove extra cross subsettings:

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