Skip to content

Commit 4c5ec92

Browse files
authored
Merge pull request #783 from viperproject/meilers_fix_proof_obligations
Fixing crash in proof obligation expression computation
2 parents ddee205 + 4da0468 commit 4c5ec92

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

src/main/scala/viper/silver/ast/utility/Expressions.scala

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ object Expressions {
184184
case _ => NoPosition
185185
}
186186
// Conditions for the current node.
187-
val conds = n match {
187+
val conds: Seq[Exp] = n match {
188188
case f@FieldAccess(rcv, _) => List(NeCmp(rcv, NullLit()(p))(p), FieldAccessPredicate(f, WildcardPerm()(p))(p))
189189
case f: FuncApp => prog.findFunction(f.funcname).pres
190190
case Div(_, q) => List(NeCmp(q, IntLit(0)(p))(p))
@@ -204,16 +204,16 @@ object Expressions {
204204
// Combine the conditions of the subnodes depending on what node we currently have.
205205
val finalSubConds = n match {
206206
case And(left, _) =>
207-
val Seq(leftConds, rightConds) = nonTrivialSubConds
207+
val Seq(leftConds, rightConds, Seq()) = nonTrivialSubConds
208208
reduceAndProofObs(left, leftConds, rightConds, p)
209209
case Implies(left, _) =>
210-
val Seq(leftConds, rightConds) = nonTrivialSubConds
210+
val Seq(leftConds, rightConds, Seq()) = nonTrivialSubConds
211211
reduceImpliesProofObs(left, leftConds, rightConds, p)
212212
case Or(left, _) =>
213-
val Seq(leftConds, rightConds) = nonTrivialSubConds
213+
val Seq(leftConds, rightConds, Seq()) = nonTrivialSubConds
214214
reduceOrProofObs(left, leftConds, rightConds, p)
215215
case CondExp(cond, _, _) =>
216-
val Seq(condConds, thenConds, elseConds, _) = nonTrivialSubConds
216+
val Seq(condConds, thenConds, elseConds, Seq()) = nonTrivialSubConds
217217
reduceCondExpProofObs(cond, condConds, thenConds, elseConds, p)
218218
case _ => subConds.flatten
219219
}

0 commit comments

Comments
 (0)