summaryrefslogtreecommitdiff
path: root/test/files/pos/userdefined_apply_poly_overload.scala
blob: 6760c1424fde2fb834ccf6bdd9ab6cd947a17ca6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
object Foo {
  // spurious error if:
  //   - this definition precedes that of apply (which is overloaded with the synthetic one derived from the case class)
  //   - AND `Foo.apply` is explicitly applied to `[A]` (no error if `[A]` is inferred)
  //
  def referToPolyOverloadedApply[A]: Foo[A] = Foo.apply[A]("bla")
  //                                                   ^
  //  found   : String("bla")
  //  required: Int

  def apply[A](x: Int): Foo[A] = ???
}
case class Foo[A](x: String) // must be polymorphic