-
Key: KERML11-178
-
Status: open
-
Source: Model Driven Solutions ( Mr. Ed Seidewitz)
-
Summary:
In 8.2.5.8.3 Base Expressions, Table 7 shows that the library functions `ControlFunctions::collect` and `select` are model-level evaluable. These are the implied functions for collect and select expressions such as seq.{in x; x * 2} and seq.?{in x; x > 3}. Unfortunately, the argument body expressions {in x; x * 2} and {in x; x > 3} are both not model-level evaluable, so the collect and select expressions are no model-level evaluable, either, even though the functions `collect` and `select` are.
Body expression is parsed as a feature reference expression whose referent is an expression (see production BodyExpression in 8.2.5.8.3 Base Expressions). In 8.3.4.8.5 FeatureReferenceExpression, operation modelLevelEvaluable specifies that such a feature reference expression is model-level evaluable if its referent expression. In 8.3.4.7.3 Expression, the operation modelLevelEvaluable specifies that an expression with just in parameters and a result expression as owned features is model-level evaluable if it's result expression is. The problem is that, as in the examples above, any argument body expression for a useful collect or select expression will have a result expression that contains references to the in parameter of the expression and such references are not model-level evaluable according to FeatureReferenceExpression::modelLevelEvaluable.
-
Reported: KerML 1.0 — Fri, 28 Nov 2025 23:01 GMT
-
Updated: Fri, 28 Nov 2025 23:01 GMT
KERML11 — Model-level evaluability of body expressions
- Key: KERML11-178
- OMG Task Force: Kernel Modeling Language (KerML) 1.1 RTF