aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/typer/Applications.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2016-04-27 18:05:15 +0200
committerMartin Odersky <odersky@gmail.com>2016-04-27 18:07:33 +0200
commitd7c1c27b0765b33811326e3cf02dcd4aa12b6cd8 (patch)
tree0dcca4fb37ba79d531567789bf3600997ade0684 /src/dotty/tools/dotc/typer/Applications.scala
parent3129c1c136d5fa8b1549ec940ea1856c135bfe85 (diff)
downloaddotty-d7c1c27b0765b33811326e3cf02dcd4aa12b6cd8.tar.gz
dotty-d7c1c27b0765b33811326e3cf02dcd4aa12b6cd8.tar.bz2
dotty-d7c1c27b0765b33811326e3cf02dcd4aa12b6cd8.zip
Allow dependent method type for unapply.
Diffstat (limited to 'src/dotty/tools/dotc/typer/Applications.scala')
-rw-r--r--src/dotty/tools/dotc/typer/Applications.scala5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/dotty/tools/dotc/typer/Applications.scala b/src/dotty/tools/dotc/typer/Applications.scala
index 37a9f0ba0..d70546f9d 100644
--- a/src/dotty/tools/dotc/typer/Applications.scala
+++ b/src/dotty/tools/dotc/typer/Applications.scala
@@ -736,8 +736,7 @@ trait Applications extends Compatibility { self: Typer =>
}
unapplyFn.tpe.widen match {
- case mt: MethodType if mt.paramTypes.length == 1 && !mt.isDependent =>
- val m = mt
+ case mt: MethodType if mt.paramTypes.length == 1 =>
val unapplyArgType = mt.paramTypes.head
unapp.println(i"unapp arg tpe = $unapplyArgType, pt = $selType")
def wpt = widenForMatchSelector(selType) // needed?
@@ -778,7 +777,7 @@ trait Applications extends Compatibility { self: Typer =>
tree.pos)
}
- val dummyArg = dummyTreeOfType(unapplyArgType)
+ val dummyArg = dummyTreeOfType(ownType)
val unapplyApp = typedExpr(untpd.TypedSplice(Apply(unapplyFn, dummyArg :: Nil)))
val unapplyImplicits = unapplyApp match {
case Apply(Apply(unapply, `dummyArg` :: Nil), args2) => assert(args2.nonEmpty); args2