summaryrefslogtreecommitdiff
path: root/Chalice
diff options
context:
space:
mode:
authorGravatar stefanheule <unknown>2012-10-01 15:56:23 +0200
committerGravatar stefanheule <unknown>2012-10-01 15:56:23 +0200
commitf37284c3d961cd3d53858a814f9e03a4f40859c0 (patch)
tree256e652f6297b0f42f8acdd3a6e801183133fc55 /Chalice
parent1834b06f39ee460a36831bf5047fe77d9edff3db (diff)
Chalice: Fix bug in detecting permissions in postconditions.
Diffstat (limited to 'Chalice')
-rw-r--r--Chalice/src/main/scala/Resolver.scala9
1 files changed, 5 insertions, 4 deletions
diff --git a/Chalice/src/main/scala/Resolver.scala b/Chalice/src/main/scala/Resolver.scala
index 3acd2499..3e4e882b 100644
--- a/Chalice/src/main/scala/Resolver.scala
+++ b/Chalice/src/main/scala/Resolver.scala
@@ -260,10 +260,11 @@ object Resolver {
}
def hasAccessibilityPredicate(e: Expression) = {
var b = false
- e transform {
- case _: PermissionExpr => b = true; None
- case ma: MemberAccess => if (ma.isPredicate) b = true; None
- case _ => None
+ e visitOpt {
+ case _: PermissionExpr => b = true; false
+ case ma: MemberAccess => if (ma.isPredicate) { b = true; false } else { true }
+ case Unfolding(pred, e) => false
+ case _ => true
}
b
}