Skip to content

Commit bc4fa90

Browse files
committed
Add ByteCodeTest
1 parent 337b42d commit bc4fa90

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

compiler/test/dotty/tools/backend/jvm/DottyBytecodeTests.scala

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,4 +264,27 @@ class TestBCode extends DottyBytecodeTest {
264264
}
265265
}
266266
}
267+
268+
// See #4430
269+
@Test def javaBridgesAreNotVisible = {
270+
val source =
271+
"""
272+
|class Test {
273+
| def test = (new java.lang.StringBuilder()).append(Array[Char](), 0, 0)
274+
|}
275+
""".stripMargin
276+
277+
checkBCode(source) { dir =>
278+
// We check the method call signature to make sure we don't call a Java bridge
279+
val clsIn = dir.lookupName("Test.class", directory = false).input
280+
val clsNode = loadClassNode(clsIn)
281+
val testMethod = getMethod(clsNode, "test")
282+
val instructions = instructionsFromMethod(testMethod)
283+
val containsExpectedCall = instructions.exists {
284+
case Invoke(_, "java/lang/StringBuilder", "append", "([CII)Ljava/lang/StringBuilder;", _) => true
285+
case _ => false
286+
}
287+
assertTrue(containsExpectedCall)
288+
}
289+
}
267290
}

0 commit comments

Comments
 (0)