diff options
Diffstat (limited to 'tests/pos/pickleOK/unions.scala')
-rw-r--r-- | tests/pos/pickleOK/unions.scala | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/pos/pickleOK/unions.scala b/tests/pos/pickleOK/unions.scala new file mode 100644 index 000000000..22e6391e3 --- /dev/null +++ b/tests/pos/pickleOK/unions.scala @@ -0,0 +1,33 @@ +object unions { + + class A { + def f: String = "abc" + + def g(x: Int): Int = x + def g(x: Double): Double = x + } + + class B { + def f: String = "bcd" + + def g(x: Int) = -x + def g(x: Double): Double = -x + } + + val x: A | B = if (true) new A else new B + def y: B | A = if (true) new A else new B + println(x.f) + println(x.g(2)) + println(y.f) + println(y.g(1.0)) + println(y.g(1.0f)) + + class C { + private def foo = 0 + class D extends C { + private def foo = 1 + def test(cd: C | D, dc: D | C) = (cd.foo, dc.foo) + } + } + +} |