diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2013-11-20 10:26:32 +0100 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2013-11-23 09:53:28 +0100 |
commit | 5d5596bb07c0b5985fe9a6ba5433a3d463918b28 (patch) | |
tree | 33ed934026d668a55403dddfaa7d92f2602f435e | |
parent | b5be392967d84591d45153408960d0e5b68d82e9 (diff) | |
download | scala-5d5596bb07c0b5985fe9a6ba5433a3d463918b28.tar.gz scala-5d5596bb07c0b5985fe9a6ba5433a3d463918b28.tar.bz2 scala-5d5596bb07c0b5985fe9a6ba5433a3d463918b28.zip |
Special treatment for local symbols in TypeTreeMemberType
Avoids calling `thisType` on the owner if it is a term symbol,
which doesn't make much sense.
This method is used internally in tree factory methods that
create, e.g, a `DefDef` based on the info of a `Symbol`.
-rw-r--r-- | src/reflect/scala/reflect/internal/Trees.scala | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/reflect/scala/reflect/internal/Trees.scala b/src/reflect/scala/reflect/internal/Trees.scala index b0abc0be7b..d191fbd38f 100644 --- a/src/reflect/scala/reflect/internal/Trees.scala +++ b/src/reflect/scala/reflect/internal/Trees.scala @@ -590,7 +590,7 @@ trait Trees extends api.Trees { def TypeTree(tp: Type): TypeTree = TypeTree() setType tp private def TypeTreeMemberType(sym: Symbol): TypeTree = { // Needed for pos/t4970*.scala. See SI-7853 - val resType = (sym.owner.thisType memberType sym).finalResultType + val resType = (if (sym.isLocal) sym.tpe else (sym.owner.thisType memberType sym)).finalResultType atPos(sym.pos.focus)(TypeTree(resType)) } |