summaryrefslogtreecommitdiff
path: root/Test/aitest9/TestIntervals.bpl
diff options
context:
space:
mode:
authorGravatar Unknown <leino@LEINO6.redmond.corp.microsoft.com>2012-04-04 18:40:59 -0700
committerGravatar Unknown <leino@LEINO6.redmond.corp.microsoft.com>2012-04-04 18:40:59 -0700
commit659491fddae2ee457100b6fa4c27afef3340621e (patch)
treef9538d97ac1e58da751726006d48334d6164ef7d /Test/aitest9/TestIntervals.bpl
parent3ff2e42970584ad66f8b8e353ddce86dbea92baf (diff)
Fixed bug with triply nested maps and polymorphism (reported as Item # 10218).
Diffstat (limited to 'Test/aitest9/TestIntervals.bpl')
-rw-r--r--Test/aitest9/TestIntervals.bpl16
1 files changed, 16 insertions, 0 deletions
diff --git a/Test/aitest9/TestIntervals.bpl b/Test/aitest9/TestIntervals.bpl
index b989e16c..bee73a57 100644
--- a/Test/aitest9/TestIntervals.bpl
+++ b/Test/aitest9/TestIntervals.bpl
@@ -22,3 +22,19 @@ procedure P()
assert -3 <= c;
assert c <= 0; // error (there was once an error in the Intervals which thought this assertion to be true)
}
+
+// The following tests a triply nested array, where the innermost array is a polymorphic map.
+// There was once an error in Boogie's handling of such things in the AI code.
+
+type ref;
+type teflon;
+
+type Field a;
+type HeapType = <a>[Field a]a;
+var Heap: HeapType;
+
+procedure Q(myField: Field [ref][teflon]bool, r: ref, t: teflon)
+ modifies Heap;
+{
+ Heap[myField][r][t] := true;
+}