Fix IrFunction.isEmptyArray implementation
The previous one was incorrect for K1 since parent of top-level function is `IrClass`, not `IrPackageFragment`. The change is non-functional, K1 still worked correctly, but had to do some extra work when inlining `emptyArray` calls and produces less performant bytecode.
This commit is contained in:
committed by
Space Team
parent
224a4e1e3c
commit
f32367d2c2
-26
@@ -1,26 +0,0 @@
|
||||
MODULE main
|
||||
CLASS AnnotationInstancesKt.class
|
||||
Annotation: class.invisibleAnnotations
|
||||
K1
|
||||
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
|
||||
annotationInstances.kt
|
||||
Kotlin
|
||||
*S Kotlin
|
||||
*F
|
||||
+ 1 annotationInstances.kt
|
||||
AnnotationInstancesKt
|
||||
+ 2 ArrayIntrinsics.kt
|
||||
kotlin/ArrayIntrinsicsKt
|
||||
*L
|
||||
1#1,76:1
|
||||
26#2:77
|
||||
*S KotlinDebug
|
||||
*F
|
||||
+ 1 annotationInstances.kt
|
||||
AnnotationInstancesKt
|
||||
*L
|
||||
51#1:77
|
||||
*E
|
||||
} )
|
||||
K2
|
||||
---
|
||||
@@ -6,8 +6,6 @@
|
||||
// WITH_STDLIB
|
||||
// !LANGUAGE: +InstantiationOfAnnotationClasses
|
||||
|
||||
// JVM_ABI_K1_K2_DIFF: KT-62465
|
||||
|
||||
// note: taken from ../parameters.kt and ../parametersWithPrimitiveValues.kt
|
||||
import kotlin.reflect.KClass
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
-26
@@ -1,26 +0,0 @@
|
||||
MODULE main
|
||||
CLASS test/AnnotationToStringKt.class
|
||||
Annotation: class.invisibleAnnotations
|
||||
K1
|
||||
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
|
||||
annotationToString.kt
|
||||
Kotlin
|
||||
*S Kotlin
|
||||
*F
|
||||
+ 1 annotationToString.kt
|
||||
test/AnnotationToStringKt
|
||||
+ 2 ArrayIntrinsics.kt
|
||||
kotlin/ArrayIntrinsicsKt
|
||||
*L
|
||||
1#1,62:1
|
||||
26#2:63
|
||||
*S KotlinDebug
|
||||
*F
|
||||
+ 1 annotationToString.kt
|
||||
test/AnnotationToStringKt
|
||||
*L
|
||||
51#1:63
|
||||
*E
|
||||
} )
|
||||
K2
|
||||
---
|
||||
@@ -10,7 +10,6 @@
|
||||
// WITH_STDLIB
|
||||
// !LANGUAGE: +InstantiationOfAnnotationClasses
|
||||
|
||||
// JVM_ABI_K1_K2_DIFF: KT-62465
|
||||
|
||||
package test
|
||||
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
// WITH_STDLIB
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
|
||||
// Checks if emptyArray call has been lowered
|
||||
|
||||
fun box(): String {
|
||||
emptyArray<String>()
|
||||
return "OK"
|
||||
}
|
||||
|
||||
// CHECK_BYTECODE_TEXT
|
||||
// 0 ISTORE 0
|
||||
@@ -1,26 +0,0 @@
|
||||
MODULE main
|
||||
CLASS Kt17134Kt.class
|
||||
Annotation: class.invisibleAnnotations
|
||||
K1
|
||||
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
|
||||
kt17134.kt
|
||||
Kotlin
|
||||
*S Kotlin
|
||||
*F
|
||||
+ 1 kt17134.kt
|
||||
Kt17134Kt
|
||||
+ 2 ArrayIntrinsics.kt
|
||||
kotlin/ArrayIntrinsicsKt
|
||||
*L
|
||||
1#1,19:1
|
||||
26#2:20
|
||||
*S KotlinDebug
|
||||
*F
|
||||
+ 1 kt17134.kt
|
||||
Kt17134Kt
|
||||
*L
|
||||
16#1:20
|
||||
*E
|
||||
} )
|
||||
K2
|
||||
---
|
||||
@@ -1,8 +1,6 @@
|
||||
// WITH_STDLIB
|
||||
// TARGET_BACKEND: JVM
|
||||
|
||||
// JVM_ABI_K1_K2_DIFF: KT-62465
|
||||
|
||||
object A {
|
||||
@JvmStatic fun main(args: Array<String>) {
|
||||
val b = arrayOf(arrayOf(""))
|
||||
|
||||
-51
@@ -7,54 +7,3 @@ MODULE main
|
||||
<set-?>: kotlin/Int
|
||||
K2
|
||||
value: kotlin/Int
|
||||
Annotation: class.invisibleAnnotations
|
||||
K1
|
||||
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
|
||||
arrayDequeRemoveAll.kt
|
||||
Kotlin
|
||||
*S Kotlin
|
||||
*F
|
||||
+ 1 arrayDequeRemoveAll.kt
|
||||
ArrayDeque
|
||||
+ 2 ArraysJVM.kt
|
||||
kotlin/collections/ArraysKt__ArraysJVMKt
|
||||
+ 3 ArrayIntrinsics.kt
|
||||
kotlin/ArrayIntrinsicsKt
|
||||
*L
|
||||
1#1,114:1
|
||||
53#1,48:117
|
||||
37#2,2:115
|
||||
26#3:165
|
||||
*S KotlinDebug
|
||||
*F
|
||||
+ 1 arrayDequeRemoveAll.kt
|
||||
ArrayDeque
|
||||
*L
|
||||
50#1:117,48
|
||||
13#1:115,2
|
||||
104#1:165
|
||||
*E
|
||||
} )
|
||||
K2
|
||||
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
|
||||
arrayDequeRemoveAll.kt
|
||||
Kotlin
|
||||
*S Kotlin
|
||||
*F
|
||||
+ 1 arrayDequeRemoveAll.kt
|
||||
ArrayDeque
|
||||
+ 2 ArraysJVM.kt
|
||||
kotlin/collections/ArraysKt__ArraysJVMKt
|
||||
*L
|
||||
1#1,114:1
|
||||
53#1,48:117
|
||||
37#2,2:115
|
||||
*S KotlinDebug
|
||||
*F
|
||||
+ 1 arrayDequeRemoveAll.kt
|
||||
ArrayDeque
|
||||
*L
|
||||
50#1:117,48
|
||||
13#1:115,2
|
||||
*E
|
||||
} )
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// WITH_STDLIB
|
||||
// JVM_ABI_K1_K2_DIFF: KT-62464, KT-63984
|
||||
// JVM_ABI_K1_K2_DIFF: KT-63984
|
||||
|
||||
@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
|
||||
class ArrayDeque<E> : AbstractMutableList<E> {
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
MODULE main
|
||||
CLASS TestKt.class
|
||||
Annotation: class.invisibleAnnotations
|
||||
K1
|
||||
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
|
||||
test.kt
|
||||
Kotlin
|
||||
*S Kotlin
|
||||
*F
|
||||
+ 1 test.kt
|
||||
TestKt
|
||||
+ 2 ArrayIntrinsics.kt
|
||||
kotlin/ArrayIntrinsicsKt
|
||||
*L
|
||||
1#1,28:1
|
||||
26#2:29
|
||||
*S KotlinDebug
|
||||
*F
|
||||
+ 1 test.kt
|
||||
TestKt
|
||||
*L
|
||||
9#1:29
|
||||
*E
|
||||
} )
|
||||
K2
|
||||
---
|
||||
@@ -1,7 +1,6 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_STDLIB
|
||||
// FULL_JDK
|
||||
// JVM_ABI_K1_K2_DIFF: KT-62465
|
||||
|
||||
// FILE: test.kt
|
||||
|
||||
|
||||
-26
@@ -15,29 +15,3 @@ MODULE lib
|
||||
[]
|
||||
K2
|
||||
[kotlin/script/templates/standard/ScriptTemplateWithArgs]
|
||||
MODULE main
|
||||
CLASS TestKt.class
|
||||
Annotation: class.invisibleAnnotations
|
||||
K1
|
||||
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
|
||||
test.kt
|
||||
Kotlin
|
||||
*S Kotlin
|
||||
*F
|
||||
+ 1 test.kt
|
||||
TestKt
|
||||
+ 2 ArrayIntrinsics.kt
|
||||
kotlin/ArrayIntrinsicsKt
|
||||
*L
|
||||
1#1,29:1
|
||||
26#2:30
|
||||
*S KotlinDebug
|
||||
*F
|
||||
+ 1 test.kt
|
||||
TestKt
|
||||
*L
|
||||
22#1:30
|
||||
*E
|
||||
} )
|
||||
K2
|
||||
---
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
// IGNORE_LIGHT_ANALYSIS
|
||||
// !LANGUAGE: -SkipStandaloneScriptsInSourceRoots
|
||||
// WITH_STDLIB
|
||||
// JVM_ABI_K1_K2_DIFF: KT-63963, KT-63960, KT-62465
|
||||
// JVM_ABI_K1_K2_DIFF: KT-63963, KT-63960
|
||||
|
||||
// Although this test works in K1 just fine, it is named with the suffix K2 to show that the demonstrated method is the only one
|
||||
// available so far to call a script from another module.
|
||||
|
||||
-25
@@ -1,29 +1,4 @@
|
||||
MODULE main
|
||||
CLASS MainKt.class
|
||||
Annotation: class.invisibleAnnotations
|
||||
K1
|
||||
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
|
||||
main.kt
|
||||
Kotlin
|
||||
*S Kotlin
|
||||
*F
|
||||
+ 1 main.kt
|
||||
MainKt
|
||||
+ 2 ArrayIntrinsics.kt
|
||||
kotlin/ArrayIntrinsicsKt
|
||||
*L
|
||||
1#1,50:1
|
||||
26#2:51
|
||||
*S KotlinDebug
|
||||
*F
|
||||
+ 1 main.kt
|
||||
MainKt
|
||||
*L
|
||||
42#1:51
|
||||
*E
|
||||
} )
|
||||
K2
|
||||
---
|
||||
CLASS Script.class
|
||||
CLASS METADATA
|
||||
K1
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// IGNORE_LIGHT_ANALYSIS
|
||||
// JVM_ABI_K1_K2_DIFF: KT-62465, KT-63960
|
||||
// JVM_ABI_K1_K2_DIFF: KT-63960
|
||||
// LANGUAGE: +ReferencesToSyntheticJavaProperties
|
||||
// LANGUAGE: -SkipStandaloneScriptsInSourceRoots
|
||||
// WITH_STDLIB
|
||||
|
||||
Reference in New Issue
Block a user