Skip to content

Commit b8a9e4f

Browse files
committed
Fixing error transformation for method call arguments
1 parent e62b342 commit b8a9e4f

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

src/main/scala/rules/Executor.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -528,7 +528,8 @@ object executor extends ExecutionRules {
528528
val fargs = meth.formalArgs.map(_.localVar)
529529
val formalsToActuals: Map[ast.LocalVar, ast.Exp] = fargs.zip(eArgs).to(Map)
530530
val reasonTransformer = (n: viper.silver.verifier.errors.ErrorNode) => n.replace(formalsToActuals)
531-
val pveCall = CallFailed(call).withReasonNodeTransformed(reasonTransformer)
531+
val pveCall = CallFailed(call)
532+
val pveCallTransformed = pveCall.withReasonNodeTransformed(reasonTransformer)
532533

533534
val mcLog = new MethodCallRecord(call, s, v.decider.pcs)
534535
val sepIdentifier = v.symbExLog.openScope(mcLog)
@@ -552,7 +553,7 @@ object executor extends ExecutionRules {
552553
val outs = meth.formalReturns.map(_.localVar)
553554
val gOuts = Store(outs.map(x => (x, v2.decider.fresh(x))).toMap)
554555
val s4 = s3.copy(g = s3.g + gOuts, oldHeaps = s3.oldHeaps + (Verifier.PRE_STATE_LABEL -> magicWandSupporter.getEvalHeap(s1)))
555-
produces(s4, freshSnap, meth.posts, _ => pveCall, v2)((s5, v3) => {
556+
produces(s4, freshSnap, meth.posts, _ => pveCallTransformed, v2)((s5, v3) => {
556557
v3.symbExLog.closeScope(postCondId)
557558
v3.decider.prover.saturate(Verifier.config.proverSaturationTimeouts.afterContract)
558559
val gLhs = Store(lhs.zip(outs)

0 commit comments

Comments
 (0)