diff options
author | Eugene Burmako <xeno.by@gmail.com> | 2012-12-16 17:01:00 +0100 |
---|---|---|
committer | Eugene Burmako <xeno.by@gmail.com> | 2012-12-28 23:21:01 +0100 |
commit | 6c3c0e391655457e917a8c85d2d74eb9297e0571 (patch) | |
tree | 1d200168301ae445b1d04a4e9632472867bd4ba7 /src/compiler/scala/tools/nsc/typechecker/Typers.scala | |
parent | d2a7aa4ba1c048e52affb0eb2b9167a18dc29c83 (diff) | |
download | scala-6c3c0e391655457e917a8c85d2d74eb9297e0571.tar.gz scala-6c3c0e391655457e917a8c85d2d74eb9297e0571.tar.bz2 scala-6c3c0e391655457e917a8c85d2d74eb9297e0571.zip |
fixes the typedIdent problem for good
Previous attachment retaining fix was only working for Idents which
get turned into Selects. Now it works for all transformations applied
to Idents (e.g. when an ident refers to something within a package obj).
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/Typers.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Typers.scala | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala index 4fd65c18d1..f68c7dbc6c 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala @@ -4753,7 +4753,7 @@ trait Typers extends Modes with Adaptations with Tags { case sym => typed1(tree setSymbol sym, mode, pt) } case LookupSucceeded(qual, sym) => - // this -> Foo.this + (// this -> Foo.this if (sym.isThisSym) typed1(This(sym.owner) setPos tree.pos, mode, pt) // Inferring classOf type parameter from expected type. Otherwise an @@ -4762,12 +4762,12 @@ trait Typers extends Modes with Adaptations with Tags { typedClassOf(tree, TypeTree(pt.typeArgs.head)) else { val pre1 = if (sym.owner.isPackageClass) sym.owner.thisType else if (qual == EmptyTree) NoPrefix else qual.tpe - val tree1 = if (qual == EmptyTree) tree else atPos(tree.pos)(Select(atPos(tree.pos.focusStart)(qual), name) setAttachments tree.attachments) + val tree1 = if (qual == EmptyTree) tree else atPos(tree.pos)(Select(atPos(tree.pos.focusStart)(qual), name)) val (tree2, pre2) = makeAccessible(tree1, sym, pre1, qual) // SI-5967 Important to replace param type A* with Seq[A] when seen from from a reference, to avoid // inference errors in pattern matching. stabilize(tree2, pre2, mode, pt) modifyType dropIllegalStarTypes - } + }) setAttachments tree.attachments } } |