-
Key: UML14-1025
-
Legacy Issue Number: 3389
-
Status: closed
-
Source: Anonymous
-
Summary:
In OCL versions prior to UML 1.3, type names had to begin with a
upper-case character. This was changed, and the rules for typeName and
name are now identical.
Unfortunately, this introduces an ambiguity into the OCL grammar rule
pathName.
pathName := (<typeName> | <name>) ("::" (<typeName> | <name>))*This problem could be solved by dropping the distinction between names
and type name completely. The path name rule could be changed to:
pathName := <name> ("::" <name>)*Now, the problem arises that it is not possible to distinguish between
property accesses and type literals if they have the same name. For
example, consider the following UML model:- Classes TypeA, typeB, TypeC
- Association between TypeA and TypeC, association end at TypeC is
named typeB.
The expression "typeB" in the context of "TypeA" might either be
interpreted as a navigation to the association end
"typeB", and hence result in an object of "TypeC", or as the type
"typeB".
-
Reported: UML 1.2 — Wed, 1 Mar 2000 05:00 GMT
-
Disposition: Resolved — UML 1.3
-
Disposition Summary:
No Data Available
-
Updated: Fri, 6 Mar 2015 21:37 GMT