From 0eec180a686a4425bd3f3089006eda530123fe2e Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Sun, 14 Dec 2014 19:13:03 +0100 Subject: Add a typedUnApply method. The method is needed to be able to survive ReTypers between frontend and pattern matching. --- src/dotty/tools/dotc/typer/Applications.scala | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/dotty/tools/dotc/typer/Applications.scala') diff --git a/src/dotty/tools/dotc/typer/Applications.scala b/src/dotty/tools/dotc/typer/Applications.scala index fe45beb04..d54ff21be 100644 --- a/src/dotty/tools/dotc/typer/Applications.scala +++ b/src/dotty/tools/dotc/typer/Applications.scala @@ -763,6 +763,16 @@ trait Applications extends Compatibility { self: Typer => } } + /** A dummmy typed unapply, to make re-typers between frontend and pattern matcher + * visit all subnodes of an unApply tree. + */ + def typedUnApply(tree: untpd.UnApply, selType: Type)(implicit ctx: Context) = { + val unappType = typed(tree.fun) + tree.implicits.foreach(typed(_)) + tree.patterns.foreach(typedPattern(_)) + tree.withType(selType) + } + /** Is given method reference applicable to type arguments `targs` and argument trees `args`? * @param resultType The expected result type of the application */ -- cgit v1.2.3