Conversation
Member
himi
approved these changes
May 1, 2025
Member
himi
left a comment
There was a problem hiding this comment.
I confirmed it worked with many patterns including the cases using calc. And I also confirmed that case is not model level evaluable.
Member
Author
Oops. I fixed the examples in the PR description. Thanks. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

The resolution of the following issue, approved in KerML FTF2 Ballot 7 allowed constructor expression to be model-level evaluable.
The update to the
ConstructorExpression::modelLevelEvaluable operationfrom this resolution was already implemented. This PR updatesModelLevelExpressionEvaluatorto actually evaluate constructor expressions.A constructor expression is parsed as an expression whose
instantiatedTypeis instantiated by itsresultparameter, withargumentexpressions bound to appropriate features of theinstantiatedType. For example, given the (KerML) declarationthen the constructor expression
S(1,2)is semantically equivalent to theresultofTherefore, the model-level evaluation of a constructor expression simply returns its
result. So, given the following:the feature
sevaluates to theresultparameter of the constructor expression, so thats_aevaluates to the literal integer1ands_bevaluates to the literal integer2.The following is an equivalent SysML model that evaluates in the same way: