Erase non-reified type parameters by-default when inlining.

Substitution of type arguments to non-reified type parameters may lead
to accidental reification, which should not be done (see ^KT-60174 for
examples). So, we should erase them, except the few cases.

^KT-60174: Fixed
^KT-60175: Fixed
This commit is contained in:
vladislav.grechko
2023-07-27 18:30:50 +02:00
committed by Space Team
parent 29ecc4d987
commit f318b5969d
89 changed files with 2369 additions and 280 deletions
@@ -1,4 +1,10 @@
// WITH_STDLIB
fun box(): String =
if (listOf("abc", "de", "f").map(String::length) == listOf(3, 2, 1)) "OK" else "Fail"
val String.myLength get() = this.length
fun box(): String {
if (listOf("abc", "de", "f").map(String::length) != listOf(3, 2, 1)) return "Fail 1"
if (listOf("abc", "de", "f").map(String::myLength) != listOf(3, 2, 1)) return "Fail 2"
return "OK"
}
@@ -1,5 +1,4 @@
// TARGET_BACKEND: JVM
// IGNORE_INLINER: IR
// WITH_STDLIB
package test
@@ -1,7 +1,6 @@
// WITH_REFLECT
// KJS_WITH_FULL_RUNTIME
// IGNORE_BACKEND: WASM
// IGNORE_INLINER: IR
package test
import kotlin.reflect.*
+1 -1
View File
@@ -1,7 +1,7 @@
// TARGET_BACKEND: WASM
// RUN_THIRD_PARTY_OPTIMIZER
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 12_559
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 12_814
// WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 4_526
// WASM_OPT_EXPECTED_OUTPUT_SIZE: 2_640
+1 -1
View File
@@ -1,7 +1,7 @@
// TARGET_BACKEND: WASM
// RUN_THIRD_PARTY_OPTIMIZER
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 38_992
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 41_349
// WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 4_552
// WASM_OPT_EXPECTED_OUTPUT_SIZE: 9_847
+1 -1
View File
@@ -1,7 +1,7 @@
// TARGET_BACKEND: WASM
// RUN_THIRD_PARTY_OPTIMIZER
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 13_922
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 14_178
// WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 5_081
// WASM_OPT_EXPECTED_OUTPUT_SIZE: 4_317
+1 -1
View File
@@ -1,7 +1,7 @@
// TARGET_BACKEND: WASM
// RUN_THIRD_PARTY_OPTIMIZER
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 17_619
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 17_907
// WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 4_398
// WASM_OPT_EXPECTED_OUTPUT_SIZE: 5_841
+1 -1
View File
@@ -1,7 +1,7 @@
// TARGET_BACKEND: WASM
// RUN_THIRD_PARTY_OPTIMIZER
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 12_601
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 12_856
// WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 4_398
// WASM_OPT_EXPECTED_OUTPUT_SIZE: 3_743
+1 -1
View File
@@ -2,7 +2,7 @@
// TARGET_BACKEND: WASM
// RUN_THIRD_PARTY_OPTIMIZER
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 13_109
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 13_362
// WASM_OPT_EXPECTED_OUTPUT_SIZE: 3_900
interface I {