diff options
-rw-r--r-- | src/dotty/tools/dotc/typer/Applications.scala | 2 | ||||
-rw-r--r-- | tests/neg/i1640.scala | 4 | ||||
-rw-r--r-- | tests/neg/i1641.scala | 8 |
3 files changed, 13 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/typer/Applications.scala b/src/dotty/tools/dotc/typer/Applications.scala index 56595a637..6c398cd72 100644 --- a/src/dotty/tools/dotc/typer/Applications.scala +++ b/src/dotty/tools/dotc/typer/Applications.scala @@ -591,7 +591,7 @@ trait Applications extends Compatibility { self: Typer with Dynamic => } fun1.tpe match { - case ErrorType => tree.withType(ErrorType) + case ErrorType => untpd.cpy.Apply(tree)(fun1, tree.args).withType(ErrorType) case TryDynamicCallType => typedDynamicApply(tree, pt) case _ => tryEither { diff --git a/tests/neg/i1640.scala b/tests/neg/i1640.scala new file mode 100644 index 000000000..78351a1d6 --- /dev/null +++ b/tests/neg/i1640.scala @@ -0,0 +1,4 @@ +object Test extends App { + List(1, 2, 3) map (_ match { case x => x + 1 }) + List((1, 2)) x (_ match { case (x, z) => x + z }) // error +} diff --git a/tests/neg/i1641.scala b/tests/neg/i1641.scala new file mode 100644 index 000000000..db1daf791 --- /dev/null +++ b/tests/neg/i1641.scala @@ -0,0 +1,8 @@ +package bar { object bippy extends (Double => String) { def apply(x: Double): String = "Double" } } +package object println { def bippy(x: Int, y: Int, z: Int) = "(Int, Int, Int)" } +object Test { + def main(args: Array[String]): Unit = { + println(bar.bippy(5.5)) + println(bar.bippy(1, 2, 3)) // error + } +} |