Sequence feature invocation expressions
Legacy Issue Number: 17509
Source: Model Driven Solutions ( Ed Seidewitz)
Subject: Sequence feature invocation expressions
Subclauses: 8.3.10 Feature Invocation Expression, 13.2.17 FeatureInvocationExpression
· A feature invocation expression with a primary whose multiplicity is 0..1 should not be considered a sequence feature expression, since the optionality is handled without the need for an expansion region.
· Subclause 8.3.10 states that a sequence feature invocation expression is equivalent to a sequence expansion (collect) expression for the invocation. However, local names may not be assigned within the argument expression of a sequence expansion expression (because a sequence expansion expression maps to an expansion region, and fUML does not allow flows out of such regions other than through output expansion nodes). For a sequence feature invocation expression, the invocation tuple is repeatedly re-evaluated inside the argument expression of the equivalent sequence expansion expression. Therefore, local variable assignments should not be allowed within the expressions in the tuple of a feature invocation expression.
These changes should also be accounted for in the constraints in Subclause 13.2.17.
Reported: ALF 1.0b2 — Thu, 19 Jul 2012 04:00 GMT
Disposition: Resolved — ALF 1.1
Add constraint for sequence feature invocations
It is NOT agreed that "As feature invocation expression with a primary whose multiplicity is 0..1 should not be considered a sequence feature expression". The semantics for a feature invocation with a primary of multiplicity 0..1 should at least be consistent with the case of the limiting case of invocation of a sequence of multiplicity 0..1. But this requires, in the case that the actual cardinality is 0, that not only does the call not take place, but any tuple expressions are also not evaluated. Further, the expression should have an actual "null" result, not just "no execute" (as would be the case of a call operation or send signal action without an object input value). The simplest way to ensure such consistent semantics are to treat the case of mulitplicity 0..1 as a sequence feature invocation.
However, it IS agreed that, in the case of a sequence feature invocation, assignments should not be allowed in tuple expressions.
Updated: Thu, 22 Jun 2017 16:40 GMT