aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/typer/Implicits.scala
diff options
context:
space:
mode:
authorGuillaume Martres <smarter@ubuntu.com>2016-05-31 15:43:01 +0200
committerGuillaume Martres <smarter@ubuntu.com>2016-05-31 16:53:34 +0200
commit044d29dd6b133bfb28468366ee92046b77adf6f9 (patch)
treea1cd8dde5b77ed7b5350ea92e7e817f7e515a4e5 /src/dotty/tools/dotc/typer/Implicits.scala
parent8d0312f69966fbfcfc2f9602ccf660dfe7513885 (diff)
downloaddotty-044d29dd6b133bfb28468366ee92046b77adf6f9.tar.gz
dotty-044d29dd6b133bfb28468366ee92046b77adf6f9.tar.bz2
dotty-044d29dd6b133bfb28468366ee92046b77adf6f9.zip
Don't compute implicit scopes for synthetic Lambda traits
Diffstat (limited to 'src/dotty/tools/dotc/typer/Implicits.scala')
-rw-r--r--src/dotty/tools/dotc/typer/Implicits.scala5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/typer/Implicits.scala b/src/dotty/tools/dotc/typer/Implicits.scala
index b59d177b1..7de40294d 100644
--- a/src/dotty/tools/dotc/typer/Implicits.scala
+++ b/src/dotty/tools/dotc/typer/Implicits.scala
@@ -284,10 +284,13 @@ trait ImplicitRunInfo { self: RunInfo =>
override implicit protected val ctx: Context = liftingCtx
override def stopAtStatic = true
def apply(tp: Type) = tp match {
+ case tp: TypeRef if tp.symbol.isLambdaTrait =>
+ defn.AnyType
case tp: TypeRef if tp.symbol.isAbstractOrAliasType =>
val pre = tp.prefix
def joinClass(tp: Type, cls: ClassSymbol) =
- AndType.make(tp, cls.typeRef.asSeenFrom(pre, cls.owner))
+ if (cls.isLambdaTrait) tp
+ else AndType.make(tp, cls.typeRef.asSeenFrom(pre, cls.owner))
val lead = if (tp.prefix eq NoPrefix) defn.AnyType else apply(tp.prefix)
(lead /: tp.classSymbols)(joinClass)
case tp: TypeVar =>