summaryrefslogtreecommitdiff
path: root/Test/dafny0
diff options
context:
space:
mode:
authorGravatar Jason Koenig <unknown>2011-07-06 14:10:11 -0700
committerGravatar Jason Koenig <unknown>2011-07-06 14:10:11 -0700
commit89d9632457db76c9246b2d9cd88103238ad8f373 (patch)
treeb2bbd9f50e5195a9f4bcc799a7e24ebd8f62e843 /Test/dafny0
parent80ec1a41fc8b7109c8fc45eff6d9acf29851562d (diff)
Dafny: Fixed bug in call statements where mutability of out parameters was not checked.
Added regression test.
Diffstat (limited to 'Test/dafny0')
-rw-r--r--Test/dafny0/Answer5
-rw-r--r--Test/dafny0/CallStmtTests.dfy21
-rw-r--r--Test/dafny0/runtest.bat3
3 files changed, 28 insertions, 1 deletions
diff --git a/Test/dafny0/Answer b/Test/dafny0/Answer
index e5621773..a29c64fa 100644
--- a/Test/dafny0/Answer
+++ b/Test/dafny0/Answer
@@ -1103,3 +1103,8 @@ Dafny program verifier finished with 16 verified, 0 errors
-------------------- ChainingDisjointTests.dfy --------------------
Dafny program verifier finished with 6 verified, 0 errors
+
+-------------------- CallStmtTests.dfy --------------------
+CallStmtTests.dfy(4,3): Error: LHS of assignment must denote a mutable variable
+CallStmtTests.dfy(15,8): Error: actual out-parameter 0 is required to be a ghost variable
+2 resolution/type errors detected in CallStmtTests.dfy
diff --git a/Test/dafny0/CallStmtTests.dfy b/Test/dafny0/CallStmtTests.dfy
new file mode 100644
index 00000000..735efe81
--- /dev/null
+++ b/Test/dafny0/CallStmtTests.dfy
@@ -0,0 +1,21 @@
+
+method testing1(t: int)
+{
+ t := m(); // error: should be checked at the Dafny level, not fall to Boogie.
+}
+
+method m() returns (r: int)
+{
+ return 3;
+}
+
+method testing2()
+{
+ var v;
+ v := m2(); // error: v needs to be ghost because r is.
+}
+
+method m2() returns (ghost r: int)
+{
+ r := 23;
+}
diff --git a/Test/dafny0/runtest.bat b/Test/dafny0/runtest.bat
index 143a0dc5..7aa1b38e 100644
--- a/Test/dafny0/runtest.bat
+++ b/Test/dafny0/runtest.bat
@@ -19,7 +19,8 @@ for %%f in (TypeTests.dfy NatTypes.dfy SmallTests.dfy Definedness.dfy
Termination.dfy DTypes.dfy
TypeParameters.dfy Datatypes.dfy TypeAntecedents.dfy SplitExpr.dfy
Refinement.dfy RefinementErrors.dfy LoopModifies.dfy
- ReturnErrors.dfy ReturnTests.dfy ChainingDisjointTests.dfy) do (
+ ReturnErrors.dfy ReturnTests.dfy ChainingDisjointTests.dfy
+ CallStmtTests.dfy) do (
echo.
echo -------------------- %%f --------------------
%DAFNY_EXE% /compile:0 %* %%f