@@ -4201,8 +4201,7 @@ private CodeExecutableElement createValidateLocalScope(boolean materialized) {
42014201 b.startSwitch().string("operation.operation").end().startBlock();
42024202 b.startCase().tree(createOperationConstant(model.rootOperation)).end();
42034203 b.startCaseBlock();
4204- emitCastOperationData(b, model.rootOperation, "i", "rootOperationData", "currentState");
4205- b.startIf().string(operationStack.read(model.rootOperation, "rootOperationData", operationFields.index), " == localImpl.rootIndex").end().startBlock();
4204+ b.startIf().string(operationStack.read(model.rootOperation, "operation", operationFields.index), " == localImpl.rootIndex").end().startBlock();
42064205 b.lineComment("root node found");
42074206 b.statement("return");
42084207 b.end();
@@ -4495,7 +4494,7 @@ private Map<OperationField, String> initOperationBeginData(CodeTreeBuilder b, Op
44954494
44964495 b.startCase().tree(createOperationConstant(model.sourceOperation)).end();
44974496 b.startCaseBlock();
4498- emitCastOperationData(b, model.sourceOperation, "i", "sourceData", "currentState");
4497+ emitCastOperationData(b, model.sourceOperation, "i", "sourceData", "currentState", false );
44994498 b.statement("foundSourceIndex = ", operationStack.read(model.sourceOperation, "sourceData", operationFields.sourceIndex));
45004499 b.statement("break loop");
45014500 b.end(); // case epilog
@@ -5437,14 +5436,16 @@ private void emitCastOperationData(CodeTreeBuilder b, OperationModel operation,
54375436 }
54385437
54395438 private void emitCastOperationData(CodeTreeBuilder b, OperationModel operation, String sp, String localName) {
5440- emitCastOperationData(b, operation, sp, localName, "state");
5439+ emitCastOperationData(b, operation, sp, localName, "state", true );
54415440 }
54425441
5443- private void emitCastOperationData(CodeTreeBuilder b, OperationModel operation, String sp, String localName, String stateName) {
5442+ private void emitCastOperationData(CodeTreeBuilder b, OperationModel operation, String sp, String localName, String stateName, boolean checkOperation ) {
54445443 b.startDeclaration(operationStack.asType(), localName);
54455444 b.string(stateName, ".operationStack[", sp, "]");
54465445 b.end();
5447- b.startAssert().string(localName, ".operation == ").tree(createOperationConstant(operation)).end();
5446+ if (checkOperation) {
5447+ b.startAssert().string(localName, ".operation == ").tree(createOperationConstant(operation)).end();
5448+ }
54485449 }
54495450
54505451 /**
0 commit comments