summaryrefslogtreecommitdiff
path: root/test/files/pos/userdefined_apply_poly_overload.scala
diff options
context:
space:
mode:
Diffstat (limited to 'test/files/pos/userdefined_apply_poly_overload.scala')
-rw-r--r--test/files/pos/userdefined_apply_poly_overload.scala13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/files/pos/userdefined_apply_poly_overload.scala b/test/files/pos/userdefined_apply_poly_overload.scala
new file mode 100644
index 0000000000..6760c1424f
--- /dev/null
+++ b/test/files/pos/userdefined_apply_poly_overload.scala
@@ -0,0 +1,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