| Summary: | [pivot] oclAsSet() malfunctions as a collect body | ||
|---|---|---|---|
| Product: | [Modeling] OCL | Reporter: | Ed Willink <ed> |
| Component: | Core | Assignee: | OCL Inbox <mdt-ocl-inbox> |
| Status: | CLOSED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | ||
| Version: | 3.2.0 | ||
| Target Milestone: | M4 | ||
| Hardware: | PC | ||
| OS: | Windows Vista | ||
| Whiteboard: | |||
|
Description
Ed Willink
eOperations->collect(eType)->collect(c : EClassifier | c.oclAsSet())->collect(name) works and eOperations->collect(eType)->collect(self.oclAsSet())->collect(name) reproduces the problem. Looks like an implicit source problem. The problem is that the implicit collect did not flatten the Bag<Set<>> and so the subsequent name property had to search out to self to find a name. EssentialOCLLeft2RightVisitor.resolveOperationReturnType now flattens the return type declaration for collect. Additionally some bit rot had set in and in M3, an implicit collect as a source was not flattened either. NavigationOperatorCSScopeAdapter.computeLookup fixed. Tests added. Pushed to master. CLOSED after a year in the RESOLVED state. |