@@ -46,7 +46,7 @@ object Logika {
46
46
47
47
type Bindings = Map [String , (State .Value .Sym , AST .Typed , Position )]
48
48
49
- type LeafClaims = ISZ [(State .Claim , ISZ [(State .Status .Type , ISZ [State .Claim ])])]
49
+ type LeafClaims = ISZ [(State .Claim . And , ISZ [(State .Status .Type , ISZ [State .Claim ])])]
50
50
51
51
type Assignment = ISZ [B ]
52
52
@@ -4326,7 +4326,7 @@ import Util._
4326
4326
4327
4327
def evalBranch (isMatch : B , split : Split .Type , smt2 : Smt2 , cache : Logika .Cache , rtCheck : B , s0 : State ,
4328
4328
lcontext : ISZ [String ], branches : ISZ [Branch ], i : Z , rOpt : Option [State .Value .Sym ],
4329
- reporter : Reporter ): (Z , Option [(State .Claim , ISZ [(State .Status .Type , ISZ [State .Claim ])])]) = {
4329
+ reporter : Reporter ): (Z , Option [(State .Claim . And , ISZ [(State .Status .Type , ISZ [State .Claim ])])]) = {
4330
4330
val shouldSplit : B = split match {
4331
4331
case Split .Default => config.splitAll || (isMatch && config.splitMatch)
4332
4332
case Split .Enabled => T
@@ -4339,7 +4339,7 @@ import Util._
4339
4339
State .Claim .Prop (T , sym))
4340
4340
val pos = sym.pos
4341
4341
val posOpt : Option [Position ] = Some (pos)
4342
- val s1 = s0.addClaim (cond)
4342
+ val s1 = s0.addClaims (cond.claims )
4343
4343
if (s1.ok) {
4344
4344
if (smt2.sat(context.methodName, config, cache, T ,
4345
4345
s " $title at [ ${pos.beginLine}, ${pos.beginColumn}] " , pos, s1.claims, reporter)) {
@@ -4378,7 +4378,7 @@ import Util._
4378
4378
(allReturns && config.branchPar == Config .BranchPar .OnlyAllReturns ))) {
4379
4379
val inputs : ISZ [Z ] = branches.indices
4380
4380
4381
- def computeBranch (i : Z ): (Option [(State .Claim , ISZ [(State .Status .Type , ISZ [State .Claim ])])], Z , Smt2 ) = {
4381
+ def computeBranch (i : Z ): (Option [(State .Claim . And , ISZ [(State .Status .Type , ISZ [State .Claim ])])], Z , Smt2 ) = {
4382
4382
val rep = reporter.empty
4383
4383
val lsmt2 = smt2
4384
4384
val (nextFresh, lcsOpt) = evalBranch(isMatch, split, lsmt2, cache, rtCheck, s0, lcontext, branches, i, rOpt, rep)
@@ -4409,7 +4409,7 @@ import Util._
4409
4409
assert(gap >= 0 )
4410
4410
if ((! allReturns || config.interp || context.hasInline) && gap > 0 ) {
4411
4411
val rw = Util .SymAddRewriter (s0.nextFresh, nextFreshGap, jescmPlugins._4)
4412
- val newCond = rw.transformStateClaim(cond).getOrElseEager(cond)
4412
+ val newCond = rw.transformStateClaim(cond).getOrElseEager(cond). asInstanceOf [ State . Claim . And ]
4413
4413
var newClaimss = ISZ [(State .Status .Type , ISZ [State .Claim ])]()
4414
4414
for (statusClaims <- claimss) {
4415
4415
newClaimss = newClaimss :+ ((statusClaims._1, for (claim <- statusClaims._2) yield
@@ -4458,7 +4458,7 @@ import Util._
4458
4458
newScss = newScss :+ (scs :+ ((cond, claims)))
4459
4459
} else {
4460
4460
r = r :+ s0(status = status, claims = (ops.ISZOps (claims).slice(0 , s0.claims.size) :+ cond) ++
4461
- ops.ISZOps (claims).slice(s0.claims.size + 1 , claims.size))
4461
+ ops.ISZOps (claims).slice(s0.claims.size + cond.claims.size , claims.size))
4462
4462
}
4463
4463
}
4464
4464
}
0 commit comments