Skip to content

Commit 0303089

Browse files
authored
Merge pull request #2263 from dotty-staging/fix-#2246-v2
Fix #2246: Use semantic names when freshening
2 parents 9195e91 + e5c8fa3 commit 0303089

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

compiler/src/dotty/tools/dotc/transform/LambdaLift.scala

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,17 @@ import core.Decorators._
1111
import core.StdNames.nme
1212
import core.Names._
1313
import core.NameOps._
14+
import core.NameKinds.ExpandPrefixName
1415
import core.Phases._
1516
import ast.Trees._
1617
import SymUtils._
1718
import ExplicitOuter.outer
1819
import util.Attachment
19-
import util.NameTransformer
2020
import util.Positions._
2121
import collection.{ mutable, immutable }
2222
import collection.mutable.{ HashMap, HashSet, LinkedHashMap, LinkedHashSet, TreeSet }
2323

2424
object LambdaLift {
25-
private val NJ = NameTransformer.NAME_JOIN_STRING
2625
private class NoPath extends Exception
2726
}
2827

@@ -338,7 +337,9 @@ class LambdaLift extends MiniPhase with IdentityDenotTransformer { thisTransform
338337

339338
private def newName(sym: Symbol)(implicit ctx: Context): Name =
340339
if (sym.isAnonymousFunction && sym.owner.is(Method, butNot = Label))
341-
(sym.name ++ NJ ++ sym.owner.name).freshened
340+
sym.name.rewrite {
341+
case name: SimpleTermName => ExpandPrefixName(sym.owner.name.asTermName, name)
342+
}.freshened
342343
else sym.name.freshened
343344

344345
private def generateProxies()(implicit ctx: Context): Unit =

0 commit comments

Comments
 (0)