-
Key: OCL23-16
-
Legacy Issue Number: 14585
-
Status: closed
-
Source: Model Driven Solutions ( Dr. Edward Willink)
-
Summary:
The expression
'a'.oclAsType(String)
is not well-formed since the invocation of oclAsType is an OperationCallExpCS[E] for which String must be an OclExpressionCS.
String is intended to be a literal expression with a Classifier value, but there is no well-formed OclExpressionCS that can represent such a value.
Syntactically:
String could be a VariableExpCS but is not the name of a visible VariableDeclaration.
String could be a PropertyCallExpCS[B or C] or AssociationClassCallExpCS[B] but is not the name of a property.
A TypeLiteralExpCS is required to allow use of at least typeCS[A] and more flexibly any typeCS.
-
Reported: OCL 2.1 — Wed, 28 Oct 2009 04:00 GMT
-
Disposition: Resolved — OCL 2.3
-
Disposition Summary:
In 9.3 LiteralExpCS add
[E] LiteralExpCS ::= TypeLiteralExpCS
and
[E] LiteralExpCS.ast = TypeLiteralExpCS.ast
and
[E] TypeLiteralExpCS.env = LiteralExpCS.env
In 9.3 add
TypeLiteralExpCS
This production rule references a type name.
Abstract syntax mapping
TypeLiteralExpCS ::= typeCS
Synthesized attributes
TypeLiteralExpCS.ast = typeCS.ast
Inherited attributes
typeCS.env = TypeLiteralExpCS.env
Disambiguating rules
– none -
Updated: Fri, 6 Mar 2015 20:58 GMT