diff options
Diffstat (limited to 'plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiAS2CGVisitor.java')
-rw-r--r-- | plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiAS2CGVisitor.java | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiAS2CGVisitor.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiAS2CGVisitor.java index 3fd04fdfb..0b7c257d3 100644 --- a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiAS2CGVisitor.java +++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiAS2CGVisitor.java @@ -298,7 +298,15 @@ public class QVTiAS2CGVisitor extends AS2CGVisitor implements QVTimperativeVisit } List<@NonNull RealizedVariable> pRealizedVariables = new ArrayList<@NonNull RealizedVariable>(); for (@NonNull BottomPattern pBottomPattern : pBottomPatterns) { - pRealizedVariables.addAll(ClassUtil.nullFree(pBottomPattern.getRealizedVariable())); + for (@NonNull RealizedVariable asRealizedVariable : ClassUtil.nullFree(pBottomPattern.getRealizedVariable())) { + OCLExpression asInit = asRealizedVariable.getOwnedInit(); + if (asInit == null) { + pRealizedVariables.add(asRealizedVariable); + } + else { + cgLeafExp = createBooleanCGLetExp(cgMapping, cgLeafExp, asRealizedVariable, asInit); + } + } } Collections.sort(pRealizedVariables, NameUtil.NAMEABLE_COMPARATOR); List<@NonNull CGValuedElement> cgRealizedVariables = ClassUtil.nullFree(cgMappingExp.getRealizedVariables()); |