| Summary: | The interpreter does not always register all the necessary metamodel uris | ||
|---|---|---|---|
| Product: | [Modeling] Acceleo | Reporter: | Stephane Begaudeau <stephane.begaudeau> |
| Component: | Core | Assignee: | Project Inbox <acceleo-inbox> |
| Status: | CLOSED FIXED | QA Contact: | |
| Severity: | major | ||
| Priority: | P3 | ||
| Version: | 3.2 | ||
| Target Milestone: | --- | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | |||
| Bug Depends on: | |||
| Bug Blocks: | 365558 | ||
The problem seems fixed if you use the qualified name of the type each type when this is needed. The proposed fix was stupid by the way, the "correct" approach would be a "resolveAll" on the metamodel. Closing resolved bugs |
If I have a metamodel with a variable with a type coming from another metamodel, the interpreter will not use the package of the other metamodel. The problem is coming from AcceleoSourceViewer#rebuildFullExpression(...): if (!context.getTargetEObjects().isEmpty()) { root = EcoreUtil.getRootContainer(context.getTargetEObjects().get(0)); } It should be: root = EcoreUtil.getRootContainer(context.getTargetEObjects().get(0).eClass()); Other occurrences of the problem may exists in the AcceleoSourceViewer. Can be reproduced in 3.2.x and 3.3.0