Fix some tests related to direct invoke optimization

- Fix test data of light class tests
  (SymbolLightClassesForLibraryTestGenerated).
- Revert the changes in kt8666.kt because they fail on JS IR, and it
  seems that this test is mostly needed for JS anyway.
- Use 'invoke(' as the pattern in bytecode text tests because plain
  'invoke' is used when these tests are run on JDK 11, where indy string
  concatenation is enabled by default and therefore we reference
  `java/lang/invoke/StringConcatFactory`.
This commit is contained in:
Alexander Udalov
2022-07-15 00:17:00 +02:00
parent 8014712569
commit 3b613b3745
18 changed files with 20 additions and 306 deletions
@@ -1,6 +1,6 @@
// CHECK_BYTECODE_TEXT
// JVM_IR_TEMPLATES
// 0 invoke
// 0 invoke\(
class Outer (val x: String) {
inner class Inner(val y: String) {
@@ -1,6 +1,6 @@
// CHECK_BYTECODE_TEXT
// JVM_IR_TEMPLATES
// 0 invoke
// 0 invoke\(
class C(val x: String) {
fun foo(s: String) = x + s
@@ -1,6 +1,6 @@
// CHECK_BYTECODE_TEXT
// JVM_IR_TEMPLATES
// 0 invoke
// 0 invoke\(
class C(x: String, y: String) {
val yx = y + x
@@ -1,6 +1,6 @@
// CHECK_BYTECODE_TEXT
// JVM_IR_TEMPLATES
// 0 invoke
// 0 invoke\(
fun box() =
{ k: String ->
@@ -1,6 +1,6 @@
// CHECK_BYTECODE_TEXT
// JVM_IR_TEMPLATES
// 0 invoke
// 0 invoke\(
fun box() =
(fun (s: String): String {
@@ -1,6 +1,6 @@
// CHECK_BYTECODE_TEXT
// JVM_IR_TEMPLATES
// 0 invoke
// 0 invoke\(
fun ok(s: String) = "O" + s
@@ -1,6 +1,6 @@
// CHECK_BYTECODE_TEXT
// JVM_IR_TEMPLATES
// 0 invoke
// 0 invoke\(
fun box() =
{ s: String ->
@@ -1,6 +1,6 @@
// CHECK_BYTECODE_TEXT
// JVM_IR_TEMPLATES
// 0 invoke
// 0 invoke\(
class Outer (val x: String) {
inner class Inner(val y: String) {
+8 -8
View File
@@ -18,16 +18,16 @@ fun box(): String {
if (MAX_LONG != ("" as String?) + Long.MAX_VALUE) return "fail \"\"? +"
if (MAX_LONG != "".plus(Long.MAX_VALUE)) return "fail \"\".plus"
if (MAX_LONG != ("" as String?).plus(Long.MAX_VALUE)) return "fail \"\"?.plus"
if (MAX_LONG != (String::plus).let { it("", Long.MAX_VALUE) }) return "fail String::plus"
if (MAX_LONG != (String::plus)("", Long.MAX_VALUE)) return "fail String::plus"
// if (MAX_LONG != stringPlus("", Long.MAX_VALUE)) return "fail stringPlus(\"\", Long.MAX_VALUE)"
// if (MAX_LONG != customToString("", Long.MAX_VALUE, String::plus)) return "fail customToString(\"\", Long.MAX_VALUE, String::plus)"
if (MAX_LONG != (String?::plus).let { it("", Long.MAX_VALUE) }) return "fail String?::plus"
if (MAX_LONG != (String?::plus)("", Long.MAX_VALUE)) return "fail String?::plus"
// if (MAX_LONG != stringNPlus("", Long.MAX_VALUE)) return "fail stringNPlus(\"\", Long.MAX_VALUE)"
// if (MAX_LONG != customToString("", Long.MAX_VALUE, String?::plus)) return "fail customToString(\"\", Long.MAX_VALUE, String?::plus)"
if (MAX_LONG != (""::plus).let { it(Long.MAX_VALUE) }) return "fail \"\"::plus"
if (MAX_LONG != (""::plus)(Long.MAX_VALUE)) return "fail \"\"::plus"
// if (MAX_LONG != emptyStringPlus(Long.MAX_VALUE)) return "fail emptyStringPlus(Long.MAX_VALUE)"
// if (MAX_LONG != customToString(Long.MAX_VALUE, ""::plus)) return "fail customToString(Long.MAX_VALUE, \"\"::plus)"
if (MAX_LONG != (("" as String?)::plus).let { it(Long.MAX_VALUE) }) return "fail \"\"?::plus"
if (MAX_LONG != (("" as String?)::plus)(Long.MAX_VALUE)) return "fail \"\"?::plus"
// if (MAX_LONG != emptyStringNPlus(Long.MAX_VALUE)) return "fail emptyStringPlus(Long.MAX_VALUE)"
// if (MAX_LONG != customToString(Long.MAX_VALUE, ("" as String?)::plus)) return "fail customToString(Long.MAX_VALUE, (\"\" as String?)::plus)"
@@ -36,16 +36,16 @@ fun box(): String {
if (PREFIX + MAX_LONG != (PREFIX as String?) + Long.MAX_VALUE) return "fail \"$PREFIX\"? +"
if (PREFIX + MAX_LONG != PREFIX.plus(Long.MAX_VALUE)) return "fail \"$PREFIX\".plus"
if (PREFIX + MAX_LONG != (PREFIX as String?).plus(Long.MAX_VALUE)) return "fail \"$PREFIX\"?.plus"
if (PREFIX + MAX_LONG != (String::plus).let { it(PREFIX, Long.MAX_VALUE) }) return "fail String::plus(\"$PREFIX\", ...)"
if (PREFIX + MAX_LONG != (String::plus)(PREFIX, Long.MAX_VALUE)) return "fail String::plus(\"$PREFIX\", ...)"
// if (PREFIX + MAX_LONG != stringPlus(PREFIX, Long.MAX_VALUE)) return "fail stringPlus(\"$PREFIX\", Long.MAX_VALUE)"
// if (PREFIX + MAX_LONG != customToString(PREFIX, Long.MAX_VALUE, String::plus)) return "fail customToString(\"$PREFIX\", Long.MAX_VALUE, String::plus)"
if (PREFIX + MAX_LONG != (String?::plus).let { it(PREFIX, Long.MAX_VALUE) }) return "fail String?::plus(\"$PREFIX\", ...)"
if (PREFIX + MAX_LONG != (String?::plus)(PREFIX, Long.MAX_VALUE)) return "fail String?::plus(\"$PREFIX\", ...)"
// if (PREFIX + MAX_LONG != stringNPlus(PREFIX, Long.MAX_VALUE)) return "fail stringNPlus(\"$PREFIX\", Long.MAX_VALUE)"
// if (PREFIX + MAX_LONG != customToString(PREFIX, Long.MAX_VALUE, String?::plus)) return "fail customToString(\"$PREFIX\", Long.MAX_VALUE, String?::plus)"
if (PREFIX + MAX_LONG != (PREFIX::plus).let { it(Long.MAX_VALUE) }) return "fail \"$PREFIX\"::plus"
if (PREFIX + MAX_LONG != (PREFIX::plus)(Long.MAX_VALUE)) return "fail \"$PREFIX\"::plus"
// if (PREFIX + MAX_LONG != prefixPlus(Long.MAX_VALUE)) return "fail prefixPlus(Long.MAX_VALUE)"
// if (PREFIX + MAX_LONG != customToString(Long.MAX_VALUE, PREFIX::plus)) return "fail customToString(Long.MAX_VALUE, \"$PREFIX\"::plus)"
if (PREFIX + MAX_LONG != ((PREFIX as String?)::plus).let { it(Long.MAX_VALUE) }) return "fail \"$PREFIX\"?::plus"
if (PREFIX + MAX_LONG != ((PREFIX as String?)::plus)(Long.MAX_VALUE)) return "fail \"$PREFIX\"?::plus"
// if (PREFIX + MAX_LONG != prefixNPlus(Long.MAX_VALUE)) return "fail prefixNPlus(Long.MAX_VALUE)"
// if (PREFIX + MAX_LONG != customToString(Long.MAX_VALUE, (PREFIX as String?)::plus)) return "fail customToString(Long.MAX_VALUE, \"$PREFIX\"?::plus)"