aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2016-02-12 09:58:33 +0100
committerMartin Odersky <odersky@gmail.com>2016-02-12 09:58:41 +0100
commit9b3c727a0faa0e0f693a4053e0bb260c695e62ff (patch)
treeb5c73f83ce89aa77a9e3da2bb9a927d563e6c70d /src
parent13b61653439700ca6607074bcded4d714131bdc2 (diff)
downloaddotty-9b3c727a0faa0e0f693a4053e0bb260c695e62ff.tar.gz
dotty-9b3c727a0faa0e0f693a4053e0bb260c695e62ff.tar.bz2
dotty-9b3c727a0faa0e0f693a4053e0bb260c695e62ff.zip
Survive class of errors in implicit search
An `C.this` term with erroneous class `C` will get a `NoPrefix` type. A subsequent implicit search on this crashed. This is fixed now. Fixes #324.
Diffstat (limited to 'src')
-rw-r--r--src/dotty/tools/dotc/typer/Implicits.scala3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/typer/Implicits.scala b/src/dotty/tools/dotc/typer/Implicits.scala
index 6cb1f1271..e3dd113c2 100644
--- a/src/dotty/tools/dotc/typer/Implicits.scala
+++ b/src/dotty/tools/dotc/typer/Implicits.scala
@@ -402,7 +402,8 @@ trait Implicits { self: Typer =>
|| (to isRef defn.ObjectClass)
|| (to isRef defn.UnitClass)
|| (from.tpe isRef defn.NothingClass)
- || (from.tpe isRef defn.NullClass)) NoImplicitMatches
+ || (from.tpe isRef defn.NullClass)
+ || (from.tpe eq NoPrefix)) NoImplicitMatches
else
try inferImplicit(to.stripTypeVar.widenExpr, from, from.pos)
catch {