aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dotty/tools/dotc/typer/Applications.scala16
-rw-r--r--tests/run/applydynamic_sip.check (renamed from tests/pending/run/applydynamic_sip.check)0
-rw-r--r--tests/run/applydynamic_sip.flags (renamed from tests/pending/run/applydynamic_sip.flags)0
-rw-r--r--tests/run/applydynamic_sip.scala (renamed from tests/pending/run/applydynamic_sip.scala)1
-rw-r--r--tests/run/t6353.check (renamed from tests/pending/run/t6353.check)0
-rw-r--r--tests/run/t6353.scala (renamed from tests/pending/run/t6353.scala)0
6 files changed, 10 insertions, 7 deletions
diff --git a/src/dotty/tools/dotc/typer/Applications.scala b/src/dotty/tools/dotc/typer/Applications.scala
index 318f2f8ff..52e80930e 100644
--- a/src/dotty/tools/dotc/typer/Applications.scala
+++ b/src/dotty/tools/dotc/typer/Applications.scala
@@ -592,13 +592,15 @@ trait Applications extends Compatibility { self: Typer with Dynamic =>
fun1.tpe match {
case ErrorType => tree.withType(ErrorType)
case TryDynamicCallType =>
- tree match {
- case Apply(Select(qual, name), args) if !isDynamicMethod(name) =>
- typedDynamicApply(qual, name, None, args, pt)(tree)
- case Apply(TypeApply(Select(qual, name), targs), args) if !isDynamicMethod(name) =>
- typedDynamicApply(qual, name, Some(targs), args, pt)(tree)
- case _ =>
- handleUnexpectedFunType(tree, fun1)
+ tree.fun match {
+ case Select(qual, name) if !isDynamicMethod(name) =>
+ typedDynamicApply(qual, name, None, tree.args, pt)(tree)
+ case TypeApply(Select(qual, name), targs) if !isDynamicMethod(name) =>
+ typedDynamicApply(qual, name, Some(targs), tree.args, pt)(tree)
+ case TypeApply(fun, targs) =>
+ typedDynamicApply(fun, nme.apply, Some(targs), tree.args, pt)(tree)
+ case fun =>
+ typedDynamicApply(fun, nme.apply, None, tree.args, pt)(tree)
}
case _ =>
tryEither {
diff --git a/tests/pending/run/applydynamic_sip.check b/tests/run/applydynamic_sip.check
index 6d04dc452..6d04dc452 100644
--- a/tests/pending/run/applydynamic_sip.check
+++ b/tests/run/applydynamic_sip.check
diff --git a/tests/pending/run/applydynamic_sip.flags b/tests/run/applydynamic_sip.flags
index ba6d37305..ba6d37305 100644
--- a/tests/pending/run/applydynamic_sip.flags
+++ b/tests/run/applydynamic_sip.flags
diff --git a/tests/pending/run/applydynamic_sip.scala b/tests/run/applydynamic_sip.scala
index a163ab960..7f81a644a 100644
--- a/tests/pending/run/applydynamic_sip.scala
+++ b/tests/run/applydynamic_sip.scala
@@ -1,3 +1,4 @@
+import scala.language.dynamics
object Test extends dotty.runtime.LegacyApp {
object stubUpdate {
def update(as: Any*) = println(".update"+as.toList.mkString("(",", ", ")"))
diff --git a/tests/pending/run/t6353.check b/tests/run/t6353.check
index 5676bed24..5676bed24 100644
--- a/tests/pending/run/t6353.check
+++ b/tests/run/t6353.check
diff --git a/tests/pending/run/t6353.scala b/tests/run/t6353.scala
index 7077eaeda..7077eaeda 100644
--- a/tests/pending/run/t6353.scala
+++ b/tests/run/t6353.scala