diff options
author | Eugene Burmako <xeno.by@gmail.com> | 2014-03-07 22:04:04 +0100 |
---|---|---|
committer | Eugene Burmako <xeno.by@gmail.com> | 2014-03-07 22:04:04 +0100 |
commit | 10154cf27d4e8f9f9be5411fb6bfb9b8fbe62ebc (patch) | |
tree | f92cf356af2254a5e655aa7df753018c514de6eb /src | |
parent | 2dddb03b267770afcd0249ad700e55d53019e637 (diff) | |
download | scala-10154cf27d4e8f9f9be5411fb6bfb9b8fbe62ebc.tar.gz scala-10154cf27d4e8f9f9be5411fb6bfb9b8fbe62ebc.tar.bz2 scala-10154cf27d4e8f9f9be5411fb6bfb9b8fbe62ebc.zip |
SI-8369 resetAttrs now correctly accounts for skolems
resetAttrs (née resetLocalAttrs) has been oblivious to existence of skolems.
Not anymore, which prevents us from reverting to the untyper nightmare.
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/ast/Trees.scala | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/Trees.scala b/src/compiler/scala/tools/nsc/ast/Trees.scala index 9ca06427e8..3652f51153 100644 --- a/src/compiler/scala/tools/nsc/ast/Trees.scala +++ b/src/compiler/scala/tools/nsc/ast/Trees.scala @@ -240,6 +240,7 @@ trait Trees extends scala.reflect.internal.Trees { self: Global => registerLocal(sym.moduleClass) registerLocal(sym.companionClass) registerLocal(sym.companionModule) + registerLocal(sym.deSkolemize) sym match { case sym: TermSymbol => registerLocal(sym.referenced) case _ => ; @@ -309,7 +310,7 @@ trait Trees extends scala.reflect.internal.Trees { self: Global => // if we move these trees into lexical contexts different from their original locations. if (dupl.hasSymbol) { val sym = dupl.symbol - val vetoScope = !brutally && !(locals contains sym) + val vetoScope = !brutally && !(locals contains sym) && !(locals contains sym.deSkolemize) val vetoThis = dupl.isInstanceOf[This] && sym.isPackageClass if (!(vetoScope || vetoThis)) dupl.symbol = NoSymbol } |