iets3.opensource
iets3.opensource copied to clipboard
Stackoverflow in replaceSuccessType
an error occurred while applying rule to node (instance of StringLiteral). It happens, for example, here when the success type is used instead of the attempt type. The rule inside replaceSuccessType should probably just be removed. We already check the subtype relation in the custom condition. By creating this new inequation, the replacement rule is executed over and over.
java.lang.StackOverflowError
at java.base/java.util.HashMap.putVal(HashMap.java:627)
at java.base/java.util.HashMap.put(HashMap.java:610)
at jetbrains.mps.smodel.CopyUtil.clone(CopyUtil.java:173)
at jetbrains.mps.smodel.CopyUtil.copy(CopyUtil.java:153)
at jetbrains.mps.smodel.CopyUtil.copy(CopyUtil.java:131)
at jetbrains.mps.newTypesystem.state.Equations.expandNode(Equations.java:198)
at jetbrains.mps.newTypesystem.state.Equations.replaceChildren(Equations.java:208)
at jetbrains.mps.newTypesystem.state.Equations.expandNode(Equations.java:199)
at jetbrains.mps.newTypesystem.state.Equations.expandNode(Equations.java:180)
at jetbrains.mps.newTypesystem.state.State.expand(State.java:412)
at jetbrains.mps.newTypesystem.state.blocks.Block.getResolvedInput(Block.java:45)
at jetbrains.mps.newTypesystem.state.blocks.InequalityBlock.performAction(InequalityBlock.java:80)
at jetbrains.mps.newTypesystem.operation.block.RemoveBlockOperation.execute(RemoveBlockOperation.java:49)
at jetbrains.mps.newTypesystem.state.State.executeOperation(State.java:309)
at jetbrains.mps.newTypesystem.state.State.becameConcrete(State.java:193)
at jetbrains.mps.newTypesystem.state.State.testInputsResolved(State.java:217)
at jetbrains.mps.newTypesystem.state.State.collectVarsExecuteIfNecessary(State.java:230)
at jetbrains.mps.newTypesystem.operation.block.AddBlockOperation.execute(AddBlockOperation.java:57)
at jetbrains.mps.newTypesystem.state.State.executeOperation(State.java:309)
at jetbrains.mps.newTypesystem.state.State.addBlock(State.java:197)
at jetbrains.mps.newTypesystem.state.State.addInequality(State.java:267)
at jetbrains.mps.newTypesystem.context.BaseTypecheckingContext.createLessThanInequality(BaseTypecheckingContext.java:130)
at jetbrains.mps.typesystem.inference.TypeCheckingContext.createLessThanInequality(TypeCheckingContext.java:107)
at org.iets3.core.expr.base.typesystem.replaceSuccessType_InequationReplacementRule.processInequation(replaceSuccessType_InequationReplacementRule.java:29)
at jetbrains.mps.newTypesystem.state.blocks.InequalityBlock.lambda$processReplacementRules$1(InequalityBlock.java:98)
at jetbrains.mps.newTypesystem.operation.AddRemarkOperation.execute(AddRemarkOperation.java:55)
at jetbrains.mps.newTypesystem.state.State.executeOperation(State.java:316)
at jetbrains.mps.newTypesystem.state.blocks.InequalityBlock.processReplacementRules(InequalityBlock.java:97)
at jetbrains.mps.newTypesystem.state.blocks.InequalityBlock.processInequality(InequalityBlock.java:116)
at jetbrains.mps.newTypesystem.state.blocks.InequalityBlock.performAction(InequalityBlock.java:82)
at jetbrains.mps.newTypesystem.operation.block.RemoveBlockOperation.execute(RemoveBlockOperation.java:49)
at jetbrains.mps.newTypesystem.state.State.executeOperation(State.java:309)
at jetbrains.mps.newTypesystem.state.State.becameConcrete(State.java:193)
at jetbrains.mps.newTypesystem.state.State.testInputsResolved(State.java:217)
at jetbrains.mps.newTypesystem.state.State.collectVarsExecuteIfNecessary(State.java:230)
at jetbrains.mps.newTypesystem.operation.block.AddBlockOperation.execute(AddBlockOperation.java:57)
at jetbrains.mps.newTypesystem.state.State.executeOperation(State.java:309)
at jetbrains.mps.newTypesystem.state.State.addBlock(State.java:197)
at jetbrains.mps.newTypesystem.state.State.addInequality(State.java:267)
at jetbrains.mps.newTypesystem.context.BaseTypecheckingContext.createLessThanInequality(BaseTypecheckingContext.java:130)
at jetbrains.mps.typesystem.inference.TypeCheckingContext.createLessThanInequality(TypeCheckingContext.java:107)
at