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:
committed by
Space Team
parent
29ecc4d987
commit
f318b5969d
+8
-2
@@ -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
@@ -1,5 +1,4 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_INLINER: IR
|
||||
// WITH_STDLIB
|
||||
|
||||
package test
|
||||
|
||||
Vendored
-1
@@ -1,7 +1,6 @@
|
||||
// WITH_REFLECT
|
||||
// KJS_WITH_FULL_RUNTIME
|
||||
// IGNORE_BACKEND: WASM
|
||||
// IGNORE_INLINER: IR
|
||||
package test
|
||||
|
||||
import kotlin.reflect.*
|
||||
|
||||
+1
-1
@@ -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
@@ -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
@@ -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,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
@@ -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
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user