diff options
author | Guillaume Martres <smarter@ubuntu.com> | 2016-05-31 15:43:01 +0200 |
---|---|---|
committer | Guillaume Martres <smarter@ubuntu.com> | 2016-05-31 16:53:34 +0200 |
commit | 044d29dd6b133bfb28468366ee92046b77adf6f9 (patch) | |
tree | a1cd8dde5b77ed7b5350ea92e7e817f7e515a4e5 /src/dotty/tools/dotc | |
parent | 8d0312f69966fbfcfc2f9602ccf660dfe7513885 (diff) | |
download | dotty-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')
-rw-r--r-- | src/dotty/tools/dotc/typer/Implicits.scala | 5 |
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 => |