diff options
author | Samuel Gruetter <samuel.gruetter@epfl.ch> | 2014-03-12 22:44:33 +0100 |
---|---|---|
committer | Samuel Gruetter <samuel.gruetter@epfl.ch> | 2014-03-12 22:44:33 +0100 |
commit | 9ef5f6817688f814a3450126aa7383b0928e80a0 (patch) | |
tree | 5727a2f7f7fd665cefdb312af2785c692f04377c /tests/untried/neg/override-object-no.scala | |
parent | 194be919664447631ba55446eb4874979c908d27 (diff) | |
download | dotty-9ef5f6817688f814a3450126aa7383b0928e80a0.tar.gz dotty-9ef5f6817688f814a3450126aa7383b0928e80a0.tar.bz2 dotty-9ef5f6817688f814a3450126aa7383b0928e80a0.zip |
add tests from scala/test/files/{pos,neg}
with explicit Unit return type
Diffstat (limited to 'tests/untried/neg/override-object-no.scala')
-rw-r--r-- | tests/untried/neg/override-object-no.scala | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/tests/untried/neg/override-object-no.scala b/tests/untried/neg/override-object-no.scala new file mode 100644 index 000000000..745cdb233 --- /dev/null +++ b/tests/untried/neg/override-object-no.scala @@ -0,0 +1,45 @@ +// See also pos/override-object-yes.scala + +package case1 { + // Missing interface in overriding object + class Bippy { def f = 1 } + trait Bippo + + trait Foo { + object Bar extends Bippy with Bippo { override def f = 2 } + def f(x: Bippo) + def g = f(Bar) + } + trait Foo2 extends Foo { + override object Bar extends Bippy { // err + override def f = 3 + } + } + + // type mismatch in member + trait Quux1 { object Bar { def g = 55 } } + trait Quux2 extends Quux1 { override object Bar { def g = "abc" } } // err + + // still can't override final objects! + trait Quux3 { final object Bar { } } + trait Quux4 extends Quux3 { override object Bar } // err +} + +// type parameter as-seen-from business +package case2 { + // invariance (see pos for the covariant case) + class Bar[T] + + class Foo[T] { + object A extends Bar[T] + } + + class Baz[S] extends Foo[S] { + override object A extends Bar[S] + } + + class P1 extends Foo[Traversable[String]] + class P2 extends P1 { + override object A extends Bar[List[String]] // err + } +} |