Skip to content

Commit c1eaf8c

Browse files
authored
Merge pull request #12523 from dotty-staging/sjs-fix-name-mangling-in-closure
Fix #12507: Scala.js: Mangle param names in closures.
2 parents e972da6 + 491e8fe commit c1eaf8c

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

compiler/src/dotty/tools/backend/sjs/JSCodeGen.scala

+2-2
Original file line numberDiff line numberDiff line change
@@ -3041,7 +3041,7 @@ class JSCodeGen()(using genCtx: Context) {
30413041
val formalAndActualCaptures = allCaptureValues.map { value =>
30423042
implicit val pos = value.span
30433043
val (formalIdent, originalName) = value match {
3044-
case Ident(name) => (freshLocalIdent(name.toString), OriginalName(name.toString))
3044+
case Ident(name) => (freshLocalIdent(name.toTermName), OriginalName(name.toString))
30453045
case This(_) => (freshLocalIdent("this"), thisOriginalName)
30463046
case _ => (freshLocalIdent(), NoOriginalName)
30473047
}
@@ -3069,7 +3069,7 @@ class JSCodeGen()(using genCtx: Context) {
30693069

30703070
val formalAndActualParams = formalParamNames.lazyZip(formalParamTypes).lazyZip(formalParamRepeateds).map {
30713071
(name, tpe, repeated) =>
3072-
val formalParam = js.ParamDef(freshLocalIdent(name.toString),
3072+
val formalParam = js.ParamDef(freshLocalIdent(name),
30733073
OriginalName(name.toString), jstpe.AnyType, mutable = false)
30743074
val actualParam =
30753075
if (repeated) genJSArrayToVarArgs(formalParam.ref)(tree.sourcePos)

tests/sjs-junit/test/org/scalajs/testsuite/compiler/RegressionTestScala3.scala

+8
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,14 @@ class RegressionTestScala3 {
2727
assertEquals("foo", new RangeErrorIssue11592("foo").message)
2828
assertEquals("", new RangeErrorIssue11592().message)
2929
}
30+
31+
@Test def testNonJVMCharsInClosureParametersIssue12507(): Unit = {
32+
def foo(`[-3, 3]`: Int): Int => Int = { x =>
33+
`[-3, 3]`
34+
}
35+
36+
assertEquals(5, foo(5)(4))
37+
}
3038
}
3139

3240
object RegressionTestScala3 {

0 commit comments

Comments
 (0)