Skip to content

Commit 4164bed

Browse files
committed
ST6RI-840 Fixed recording visited elements for feature ref expr eval.
1 parent a405a74 commit 4164bed

1 file changed

Lines changed: 8 additions & 5 deletions

File tree

org.omg.sysml/src/org/omg/sysml/delegate/invocation/FeatureReferenceExpression_modelLevelEvaluable_InvocationDelegate.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*******************************************************************************
22
* SysML 2 Pilot Implementation
3-
* Copyright (c) 2024 Model Driven Solutions, Inc.
3+
* Copyright (c) 2024, 2025 Model Driven Solutions, Inc.
44
*
55
* This program is free software: you can redistribute it and/or modify
66
* it under the terms of the GNU Lesser General Public License as published by
@@ -55,19 +55,22 @@ public Object dynamicInvoke(InternalEObject target, EList<?> arguments) throws I
5555
return false;
5656
} else {
5757
visited.add(referent);
58+
boolean result;
5859
if (referent instanceof Expression && ((Expression) referent).modelLevelEvaluable(visited)) {
59-
return true;
60+
result = true;
6061
} else {
6162
Type owningType = referent.getOwningType();
6263
if (owningType instanceof Metaclass || owningType instanceof MetadataFeature) {
63-
return true;
64+
result = true;
6465
} else if (!referent.getFeaturingType().isEmpty()) {
65-
return false;
66+
result = false;
6667
} else {
6768
Expression valueExpression = FeatureUtil.getValueExpressionFor(referent);
68-
return valueExpression == null || valueExpression.modelLevelEvaluable(visited);
69+
result = valueExpression == null || valueExpression.modelLevelEvaluable(visited);
6970
}
7071
}
72+
visited.remove(referent);
73+
return result;
7174
}
7275
}
7376

0 commit comments

Comments
 (0)