Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Willink2022-06-07 10:57:22 +0000
committerEd Willink2022-06-07 10:57:22 +0000
commit1ee0828d1ea7861a7953d4fb8d99d21f7eedd31a (patch)
treef4f48c7dec3ce696a83b4224cf4f6d128e55fa53
parentd009fe3b243efdb73f7e9a5c82a666095efb863f (diff)
downloadorg.eclipse.qvtd-1ee0828d1ea7861a7953d4fb8d99d21f7eedd31a.tar.gz
org.eclipse.qvtd-1ee0828d1ea7861a7953d4fb8d99d21f7eedd31a.tar.xz
org.eclipse.qvtd-1ee0828d1ea7861a7953d4fb8d99d21f7eedd31a.zip
wip
-rw-r--r--plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvticgmodel/utilities/QVTiCGModelFieldingAnalysisVisitor.java21
1 files changed, 4 insertions, 17 deletions
diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvticgmodel/utilities/QVTiCGModelFieldingAnalysisVisitor.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvticgmodel/utilities/QVTiCGModelFieldingAnalysisVisitor.java
index 853a5ed95..e85cbff46 100644
--- a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvticgmodel/utilities/QVTiCGModelFieldingAnalysisVisitor.java
+++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvticgmodel/utilities/QVTiCGModelFieldingAnalysisVisitor.java
@@ -1,16 +1,13 @@
package org.eclipse.qvtd.codegen.qvticgmodel.utilities;
import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.ocl.examples.codegen.analyzer.FieldingAnalysisVisitor;
import org.eclipse.ocl.examples.codegen.analyzer.FieldingAnalyzer;
import org.eclipse.ocl.examples.codegen.analyzer.FieldingAnalyzer.ReturnState;
import org.eclipse.ocl.examples.codegen.cgmodel.CGAccumulator;
-import org.eclipse.ocl.examples.codegen.cgmodel.CGIterationCallExp;
import org.eclipse.ocl.examples.codegen.cgmodel.CGIterator;
import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement;
import org.eclipse.ocl.examples.codegen.cgmodel.CGVariable;
import org.eclipse.ocl.examples.codegen.utilities.CGUtil;
-import org.eclipse.ocl.pivot.Iteration;
import org.eclipse.ocl.pivot.VariableDeclaration;
import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingCall;
import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingLoop;
@@ -78,21 +75,11 @@ public class QVTiCGModelFieldingAnalysisVisitor extends AbstractQVTiCGModelField
for (CGIterator cgCoIterator : CGUtil.getCoIterators(cgMappingLoop)) {
mustBeThrownVisitor.visit(cgCoIterator);
}
- doIterationCallBody(cgMappingLoop);
- // Although individual body evaluations may be caught and accumulated, the accumulated result is thrown.
+ CGValuedElement cgBody = CGUtil.getBody(cgMappingLoop);
+ mustBeThrownVisitor.visit(cgBody);
+ // Although individual body evaluations are executed concurrently, the preamble is thrown.
cgMappingLoop.setCaught(false);
- return /*returnState == ReturnState.IS_VALID ? ReturnState.IS_VALID :*/ ReturnState.IS_THROWN;
- }
- private @NonNull ReturnState doIterationCallBody(@NonNull CGIterationCallExp cgIterationCallExp) {
- Iteration asIteration = cgIterationCallExp.getAsIteration();
- FieldingAnalysisVisitor bodyAnalysisVisitor = getMustBeThrownVisitor();
- CGValuedElement cgBody = CGUtil.getBody(cgIterationCallExp);
- boolean isValid = cgBody.isNonInvalid();
- ReturnState returnState = bodyAnalysisVisitor.visit(cgBody);
- // assert isValid || returnState.isSuitableFor(asIteration.isIsValidating() ? ReturnState.IS_CAUGHT : ReturnState.IS_THROWN);
- // return returnState;
- // Body is executed concurrently. It's valid wrt caller.
- return ReturnState.IS_VALID;
+ return ReturnState.IS_THROWN;
}
/* @Override

Back to the top