aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/typer/Typer.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2013-10-04 13:33:11 +0200
committerMartin Odersky <odersky@gmail.com>2013-10-04 13:33:11 +0200
commit7c02b2b3c8b50725b4035658a369d015a2a3b64f (patch)
treeb55e8b6c4c61dfa089d13b998f3f3b4daf6a168f /src/dotty/tools/dotc/typer/Typer.scala
parentee9405e7ecfc57038bcf8a20ecdaf5afd47e4acd (diff)
downloaddotty-7c02b2b3c8b50725b4035658a369d015a2a3b64f.tar.gz
dotty-7c02b2b3c8b50725b4035658a369d015a2a3b64f.tar.bz2
dotty-7c02b2b3c8b50725b4035658a369d015a2a3b64f.zip
No eta-expansion, implicit parameters when Mode = Type
Diffstat (limited to 'src/dotty/tools/dotc/typer/Typer.scala')
-rw-r--r--src/dotty/tools/dotc/typer/Typer.scala9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/dotty/tools/dotc/typer/Typer.scala b/src/dotty/tools/dotc/typer/Typer.scala
index e902864d6..8a4ee2d83 100644
--- a/src/dotty/tools/dotc/typer/Typer.scala
+++ b/src/dotty/tools/dotc/typer/Typer.scala
@@ -1046,8 +1046,7 @@ class Typer extends Namer with Applications with Implicits {
|follow this method with `_' if you want to treat it as a partially applied function""".stripMargin)
case _ =>
if (tree.tpe <:< pt) tree
- else if (ctx.mode is Mode.Pattern) tree // no subtype check for patterns
- else if (ctx.mode is Mode.Type) err.typeMismatch(tree, pt)
+ else if (ctx.mode is Mode.Pattern) tree // no subtype check for pattern
else adaptToSubType(wtp)
}
@@ -1092,7 +1091,11 @@ class Typer extends Namer with Applications with Implicits {
case wtp =>
pt match {
case pt: FunProto => adaptToArgs(wtp, pt)
- case _ => adaptNoArgs(wtp)
+ case _ =>
+ if (ctx.mode is Mode.Type)
+ if (tree.tpe <:< pt) tree
+ else err.typeMismatch(tree, pt)
+ else adaptNoArgs(wtp)
}
}
}