diff options
author | Ed Willink | 2022-06-07 10:57:22 +0000 |
---|---|---|
committer | Ed Willink | 2022-06-07 10:57:22 +0000 |
commit | 1ee0828d1ea7861a7953d4fb8d99d21f7eedd31a (patch) | |
tree | f4f48c7dec3ce696a83b4224cf4f6d128e55fa53 | |
parent | d009fe3b243efdb73f7e9a5c82a666095efb863f (diff) | |
download | org.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.java | 21 |
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 |