From 4eb385c769ecbc9ef81b7855f771a905d4ab1cb5 Mon Sep 17 00:00:00 2001 From: Ed Seidewitz Date: Sat, 5 Sep 2026 14:38:33 -0400 Subject: [PATCH 1/2] ST6RI-966 Added Xpect test for cross-subsetting validation check. - Test fails with "Error excuting EValidator". --- .../AssociationTest_CrossFeatures_invalid.kerml.xt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/org.omg.kerml.xpect.tests/src/org/omg/kerml/xpect/tests/validation/AssociationTest_CrossFeatures_invalid.kerml.xt b/org.omg.kerml.xpect.tests/src/org/omg/kerml/xpect/tests/validation/AssociationTest_CrossFeatures_invalid.kerml.xt index ab78ba796a..6b467a53a7 100644 --- a/org.omg.kerml.xpect.tests/src/org/omg/kerml/xpect/tests/validation/AssociationTest_CrossFeatures_invalid.kerml.xt +++ b/org.omg.kerml.xpect.tests/src/org/omg/kerml/xpect/tests/validation/AssociationTest_CrossFeatures_invalid.kerml.xt @@ -57,4 +57,16 @@ package AssociationTest_CrossFeatures_invalid { member feature y1 [0..1] featured by C1; } } + + class C3 { + feature x : C3; + feature y : C3; + } + + assoc A4 { + end a : C3; + // XPECT errors --> "At most one cross subsetting is allowed" at "a.y" + end b : C3 crosses a.x crosses a.y; + } + } From 241aea5566578c8d969be05379a1da6c8932bd2f Mon Sep 17 00:00:00 2001 From: Ed Seidewitz Date: Sat, 5 Sep 2026 14:39:51 -0400 Subject: [PATCH 2/2] ST6RI-966 Fixed error message for cross-subsetting validation check. - Xpect test passes with correct error message. --- .../src/org/omg/kerml/xtext/validation/KerMLValidator.xtend | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/org.omg.kerml.xtext/src/org/omg/kerml/xtext/validation/KerMLValidator.xtend b/org.omg.kerml.xtext/src/org/omg/kerml/xtext/validation/KerMLValidator.xtend index 019218c841..5d0380fb52 100644 --- a/org.omg.kerml.xtext/src/org/omg/kerml/xtext/validation/KerMLValidator.xtend +++ b/org.omg.kerml.xtext/src/org/omg/kerml/xtext/validation/KerMLValidator.xtend @@ -646,7 +646,7 @@ class KerMLValidator extends AbstractKerMLValidator { val crossSubsettings = f.ownedRelationship.filter[r | r instanceof CrossSubsetting].toList if (crossSubsettings.size > 1) { for (var i = 1; i < crossSubsettings.size; i++) - error(INVALID_FEATURE_OWNED_CROSS_SUBSETTING_MSG, refSubsettings.get(i), null, INVALID_FEATURE_OWNED_CROSS_SUBSETTING) + error(INVALID_FEATURE_OWNED_CROSS_SUBSETTING_MSG, crossSubsettings.get(i), null, INVALID_FEATURE_OWNED_CROSS_SUBSETTING) } // validateFeatureEndMultiplicity