aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/neg/customArgs/overloadsOnAbstractTypes.scala22
-rw-r--r--tests/patmat/i2253.scala7
-rw-r--r--tests/patmat/i2254.scala6
-rw-r--r--tests/pos/i2152.scala7
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))
+}