Skip to content

Commit f7c9468

Browse files
authored
Merge pull request #822 from viperproject/meilers_fix_silicon_886
Added missing variable declaration for checking InEx-Expressions in function postconditions
2 parents 3d95d76 + 333014a commit f7c9468

3 files changed

Lines changed: 15 additions & 1 deletion

File tree

src/main/scala/viper/silver/plugin/standard/termination/transformation/FunctionCheck.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ trait FunctionCheck extends ProgramManager with DecreasesCheck with ExpTransform
9898

9999
if (proofMethodBody != EmptyStmt) {
100100
val proofMethod = Method(proofMethodName, f.formalArgs, Nil, f.pres, Nil,
101-
Option(Seqn(Seq(proofMethodBody), Seq(resultVariable))()))(info = f.info)
101+
Option(Seqn(Seq(proofMethodBody), Seq(resultVariable, context.conditionInEx.get))()))(info = f.info)
102102

103103
Seq(proofMethod)
104104
} else {

src/test/resources/all/issues/silicon/0883.vpr

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
// Any copyright is dedicated to the Public Domain.
2+
// http://creativecommons.org/publicdomain/zero/1.0/
3+
4+
15
field f: Int
26

37
@moreJoins("2")
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// Any copyright is dedicated to the Public Domain.
2+
// http://creativecommons.org/publicdomain/zero/1.0/
3+
4+
5+
function foo(): Bool
6+
decreases
7+
8+
function bar(): Int
9+
decreases
10+
ensures [foo(), true]

0 commit comments

Comments
 (0)