summaryrefslogtreecommitdiff
path: root/Test/dafny0/Trait
diff options
context:
space:
mode:
authorGravatar Reza Ahmadi <reza.ahmadi@uta.fi>2014-12-03 12:44:41 +0200
committerGravatar Reza Ahmadi <reza.ahmadi@uta.fi>2014-12-03 12:44:41 +0200
commitc5d7c43605d832cc64e16c66a2c830a880a3d3a2 (patch)
tree2a11e88fa879a224cadd9f488ffbd78b4c35b5d2 /Test/dafny0/Trait
parentfc43d9d56bdf3cae68bb15871f074149d1381c6a (diff)
added multiple trait inheritance.
- a class can now extend more than one traits
Diffstat (limited to 'Test/dafny0/Trait')
-rw-r--r--Test/dafny0/Trait/Traits-Fields.dfy2
-rw-r--r--Test/dafny0/Trait/TraitsMultipleInheritance.dfy27
-rw-r--r--Test/dafny0/Trait/TraitsMultipleInheritance.dfy.expect5
3 files changed, 33 insertions, 1 deletions
diff --git a/Test/dafny0/Trait/Traits-Fields.dfy b/Test/dafny0/Trait/Traits-Fields.dfy
index c215ecf8..41f596b4 100644
--- a/Test/dafny0/Trait/Traits-Fields.dfy
+++ b/Test/dafny0/Trait/Traits-Fields.dfy
@@ -21,7 +21,7 @@ method Main()
assert j.x + 1 == c.x;
j := c;
- //assert j.x == 9;
+ //assert j.x == 9; //why this does not hold??
print "j"; Print(j);
print "c"; Print(c);
diff --git a/Test/dafny0/Trait/TraitsMultipleInheritance.dfy b/Test/dafny0/Trait/TraitsMultipleInheritance.dfy
new file mode 100644
index 00000000..8b26eeea
--- /dev/null
+++ b/Test/dafny0/Trait/TraitsMultipleInheritance.dfy
@@ -0,0 +1,27 @@
+// RUN: %dafny /compile:3 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
+trait J1{
+ var x: int;
+}
+
+trait J2{
+ var y: int;
+}
+
+class C extends J1, J2{
+}
+
+method Main()
+{
+ var c := new C;
+ var j1: J1 := new C;
+ var j2: J2 := new C;
+
+ c.x := 10;
+ c.y := 20;
+ j1.x := 20;
+ j2.y := 10;
+
+ assert c.x + c.y == j1.x + j2.y;
+} \ No newline at end of file
diff --git a/Test/dafny0/Trait/TraitsMultipleInheritance.dfy.expect b/Test/dafny0/Trait/TraitsMultipleInheritance.dfy.expect
new file mode 100644
index 00000000..d5daa038
--- /dev/null
+++ b/Test/dafny0/Trait/TraitsMultipleInheritance.dfy.expect
@@ -0,0 +1,5 @@
+
+Dafny program verifier finished with 2 verified, 0 errors
+Program compiled successfully
+Running...
+