aboutsummaryrefslogtreecommitdiff
path: root/tests/run/traits-initialization.scala
diff options
context:
space:
mode:
authorDmitry Petrashko <dark@d-d.me>2015-05-28 17:13:33 +0200
committerDmitry Petrashko <dark@d-d.me>2015-05-28 17:13:33 +0200
commitef274600378cc55b78ad62ac9afc8ce9a21efb89 (patch)
tree203cb9cf0aebf03d86b73e96db92ea1647f6d089 /tests/run/traits-initialization.scala
parentc533f81750d66a7c99bfb24aafc56a738db064bf (diff)
parent7779b8fefa745e8b034bc33f46d21bd8599ac4a0 (diff)
downloaddotty-ef274600378cc55b78ad62ac9afc8ce9a21efb89.tar.gz
dotty-ef274600378cc55b78ad62ac9afc8ce9a21efb89.tar.bz2
dotty-ef274600378cc55b78ad62ac9afc8ce9a21efb89.zip
Merge pull request #611 from dotty-staging/supercalls-traits-test
Add a test for supercalls in traits.
Diffstat (limited to 'tests/run/traits-initialization.scala')
-rw-r--r--tests/run/traits-initialization.scala41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/run/traits-initialization.scala b/tests/run/traits-initialization.scala
new file mode 100644
index 000000000..fdddc8f44
--- /dev/null
+++ b/tests/run/traits-initialization.scala
@@ -0,0 +1,41 @@
+object store {
+ var str = ""
+}
+
+import store._
+
+trait A {
+ str += "a"
+ val i = 2
+ val s = str += 'A'
+ str += '1'
+}
+
+trait B extends A {
+ str += 'b'
+ override val i = 3
+ override val s = str += 'B'
+ str += '2'
+}
+
+class D(sup: Unit) extends A {
+ str += 'd'
+ override val i = 4
+ override val s = str += 'D'
+ str += '3'
+}
+
+class E(sup: Unit) extends A with B {
+ str += 'd'
+ override val i = 5
+ override val s = str += 'E'
+ str += '3'
+}
+
+
+object Test extends D({str += "Z"}) with B {
+ // should only have 2 fields
+ str += 'E'
+ def main(args: Array[String]) = assert(str == "ZaA1dD3bB2E4", str)
+ str += '4'
+}