diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/neg/customArgs/overloadsOnAbstractTypes.scala | 22 | ||||
-rw-r--r-- | tests/patmat/i2253.scala | 7 | ||||
-rw-r--r-- | tests/patmat/i2254.scala | 6 | ||||
-rw-r--r-- | tests/pos/i2152.scala | 7 |
4 files changed, 42 insertions, 0 deletions
diff --git a/tests/neg/customArgs/overloadsOnAbstractTypes.scala b/tests/neg/customArgs/overloadsOnAbstractTypes.scala new file mode 100644 index 000000000..0c9ed12bb --- /dev/null +++ b/tests/neg/customArgs/overloadsOnAbstractTypes.scala @@ -0,0 +1,22 @@ + +class Test1 { + type A + type B <: A + + def foo(): A = ??? + def foo(): A = ??? // error + + def bar(): A = ??? + def bar(): B = ??? // error +} + +class Test2 { + type A + type B <: A + + def foo(x: A) = ??? + def foo(x: A) = ??? // error + + def bar(x: A) = ??? + def bar(x: B) = ??? // error +} diff --git a/tests/patmat/i2253.scala b/tests/patmat/i2253.scala new file mode 100644 index 000000000..8394a86df --- /dev/null +++ b/tests/patmat/i2253.scala @@ -0,0 +1,7 @@ +sealed trait S +object O extends S +trait T + +class Test { + def m(s: S { val x: Int }) = s match { case _: T => ; } +}
\ No newline at end of file diff --git a/tests/patmat/i2254.scala b/tests/patmat/i2254.scala new file mode 100644 index 000000000..23dd8ad70 --- /dev/null +++ b/tests/patmat/i2254.scala @@ -0,0 +1,6 @@ +object Test { + type OrAlias = Int | Float + + def m(s: OrAlias | String) = s match { + case _: Int => ; case _: Float => ; case _: String => ; } +}
\ No newline at end of file diff --git a/tests/pos/i2152.scala b/tests/pos/i2152.scala new file mode 100644 index 000000000..2171a487e --- /dev/null +++ b/tests/pos/i2152.scala @@ -0,0 +1,7 @@ +class Contra[-D](task: AnyRef) +object Test { + def narrow(task: AnyRef): Contra[task.type] = new Contra(task) + def ident[Before](elems: Contra[Before]): Contra[Before] = elems + val foo = null + ident(narrow(foo)) +} |