aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/pos/hkgadt.scala9
-rw-r--r--tests/pos/i618.scala3
-rw-r--r--tests/pos/overloaded.scala27
3 files changed, 39 insertions, 0 deletions
diff --git a/tests/pos/hkgadt.scala b/tests/pos/hkgadt.scala
new file mode 100644
index 000000000..ac8caa6f3
--- /dev/null
+++ b/tests/pos/hkgadt.scala
@@ -0,0 +1,9 @@
+object HKGADT {
+ sealed trait Foo[F[_]]
+ final case class Bar() extends Foo[List]
+
+ def frob[F[_]](foo: Foo[F]) =
+ foo match {
+ case Bar() => ()
+ }
+}
diff --git a/tests/pos/i618.scala b/tests/pos/i618.scala
new file mode 100644
index 000000000..70be56cc2
--- /dev/null
+++ b/tests/pos/i618.scala
@@ -0,0 +1,3 @@
+class C(val f: Any*)
+
+class D(override val f: Nothing) extends C(f)
diff --git a/tests/pos/overloaded.scala b/tests/pos/overloaded.scala
index 56cfbccef..0ccc553a8 100644
--- a/tests/pos/overloaded.scala
+++ b/tests/pos/overloaded.scala
@@ -57,3 +57,30 @@ object overloaded {
val a: A = fr(new C)
val b: B = fr(new C)
}
+
+// from #1381
+
+object Foo {
+ class Bar[T]
+ implicit def const[T](x: T): Bar[T] = ???
+
+ def bar[T](e: T): Any = ???
+ def bar[T](e: Bar[T]): Any = ???
+
+ val b: Bar[Int] = ???
+ bar(b)
+}
+
+object Test2 {
+ trait A; trait B
+ class C1 {
+ def f(x: A): Unit = println("A")
+ }
+ class C2 extends C1 {
+ def f(x: B): Unit = println("B")
+ }
+ object Test extends C2 with App {
+ implicit def a2b(x: A): B = new B {}
+ f(new A {})
+ }
+}