Community
Participate
Working Groups
Build Identifier: Build id: 20110615-0604 It turns out that it is possible to invoke allSubobjects on a set. E.g: var m: OrderedSet(Element) var sm := m->allSubobjects() However, allSubobjects() operates on Element and a collection does conform to an Element. Reproducible: Always Steps to Reproduce: 1. Create a QVT transformation containing the code shown in the details. 2. Execute it and see that it runs. 3. It shouldn't ;-)
Expression var sm := m->allSubobjects() is the shorthand for the following var sm := m->xcollect(i | i.allSubobjects()) This is due to specification, Section 8.2.2.7 ImperativeIterateExp : " If a property is invoked with "->" symbol and no “bracket” follows, this means that xcollect construct is being used. list->prop; // same as list->xcollect(i | i.prop), the iterator variable is implicit here "