summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorGravatar qunyanm <unknown>2016-01-07 16:43:53 -0800
committerGravatar qunyanm <unknown>2016-01-07 16:43:53 -0800
commit4c4647bbd61883edee6f55d5dc37c9649d23af2e (patch)
tree1c974221f03b66b865d41987175b5062254e7426 /Source
parent4c81e90e18b1d142c50453470fe9647693ef8de4 (diff)
Fix issue 118. When iteratively computing bounds, treat RefBoundedPool typed
bound as undetermined so that iteration will continue.
Diffstat (limited to 'Source')
-rw-r--r--Source/Dafny/Resolver.cs5
1 files changed, 4 insertions, 1 deletions
diff --git a/Source/Dafny/Resolver.cs b/Source/Dafny/Resolver.cs
index 9dc0f829..79f1e7e1 100644
--- a/Source/Dafny/Resolver.cs
+++ b/Source/Dafny/Resolver.cs
@@ -9771,11 +9771,14 @@ namespace Microsoft.Dafny
bests = all.ConvertAll(tup => ComprehensionExpr.BoundedPool.GetBest(tup.Item2, onlyFiniteBounds));
// check to see if we found new bounds in this iteration
int count = 0;
+ // figure out how many bounds are not determined yet.
for (int i = 0; i < bests.Count; i++) {
- if (bests[i] == null) {
+ if (bests[i] == null || (bests[i] is ComprehensionExpr.RefBoundedPool)) {
count++;
}
}
+ // if there are bounds that are not determined yet and the number of undetermined bounds
+ // changed, we will need to do another iteration.
if (count >0 && count != orgCount) {
changed = true;
knownBounds = bests;