JVM_IR emulate old back-end behavior in special bridges + inline classes
KT-42491 KT-42539
This commit is contained in:
Vendored
-2
@@ -1,6 +1,4 @@
|
||||
// IGNORE_ANNOTATIONS
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// ^ TODO: special bridges <-> inline classes interaction
|
||||
|
||||
inline class IT(val x: Int)
|
||||
|
||||
|
||||
Vendored
+75
@@ -0,0 +1,75 @@
|
||||
public final class IT {
|
||||
// source: 'list.kt'
|
||||
private final field x: int
|
||||
private synthetic method <init>(p0: int): void
|
||||
public synthetic final static method box-impl(p0: int): IT
|
||||
public static method constructor-impl(p0: int): int
|
||||
public method equals(p0: java.lang.Object): boolean
|
||||
public static method equals-impl(p0: int, p1: java.lang.Object): boolean
|
||||
public final static method equals-impl0(p0: int, p1: int): boolean
|
||||
public final method getX(): int
|
||||
public method hashCode(): int
|
||||
public static method hashCode-impl(p0: int): int
|
||||
public method toString(): java.lang.String
|
||||
public static method toString-impl(p0: int): java.lang.String
|
||||
public synthetic final method unbox-impl(): int
|
||||
}
|
||||
|
||||
public final class InlineList {
|
||||
// source: 'list.kt'
|
||||
private final field list: java.util.List
|
||||
private synthetic method <init>(p0: java.util.List): void
|
||||
public synthetic bridge method add(p0: int, p1: java.lang.Object): void
|
||||
public synthetic bridge method add(p0: java.lang.Object): boolean
|
||||
public method add-_bimVNw(p0: int, p1: int): void
|
||||
public method add-jHY5zpA(p0: int): boolean
|
||||
public method addAll(p0: int, p1: java.util.Collection): boolean
|
||||
public method addAll(p0: java.util.Collection): boolean
|
||||
public synthetic final static method box-impl(p0: java.util.List): InlineList
|
||||
public method clear(): void
|
||||
public static method constructor-impl(p0: java.util.List): java.util.List
|
||||
public synthetic bridge method contains(p0: java.lang.Object): boolean
|
||||
public method contains-jHY5zpA(p0: int): boolean
|
||||
public static method contains-jHY5zpA(p0: java.util.List, p1: int): boolean
|
||||
public method containsAll(p0: java.util.Collection): boolean
|
||||
public static method containsAll-impl(p0: java.util.List, p1: java.util.Collection): boolean
|
||||
public method equals(p0: java.lang.Object): boolean
|
||||
public static method equals-impl(p0: java.util.List, p1: java.lang.Object): boolean
|
||||
public final static method equals-impl0(p0: java.util.List, p1: java.util.List): boolean
|
||||
public synthetic bridge method get(p0: int): java.lang.Object
|
||||
public method get-XAcLw3A(p0: int): int
|
||||
public static method get-XAcLw3A(p0: java.util.List, p1: int): int
|
||||
public method getSize(): int
|
||||
public static method getSize-impl(p0: java.util.List): int
|
||||
public method hashCode(): int
|
||||
public static method hashCode-impl(p0: java.util.List): int
|
||||
public synthetic bridge method indexOf(p0: java.lang.Object): int
|
||||
public method indexOf-jHY5zpA(p0: int): int
|
||||
public static method indexOf-jHY5zpA(p0: java.util.List, p1: int): int
|
||||
public method isEmpty(): boolean
|
||||
public static method isEmpty-impl(p0: java.util.List): boolean
|
||||
public method iterator(): java.util.Iterator
|
||||
public static method iterator-impl(p0: java.util.List): java.util.Iterator
|
||||
public synthetic bridge method lastIndexOf(p0: java.lang.Object): int
|
||||
public method lastIndexOf-jHY5zpA(p0: int): int
|
||||
public static method lastIndexOf-jHY5zpA(p0: java.util.List, p1: int): int
|
||||
public method listIterator(): java.util.ListIterator
|
||||
public method listIterator(p0: int): java.util.ListIterator
|
||||
public static method listIterator-impl(p0: java.util.List): java.util.ListIterator
|
||||
public static method listIterator-impl(p0: java.util.List, p1: int): java.util.ListIterator
|
||||
public method remove(p0: int): int
|
||||
public synthetic bridge method remove(p0: int): java.lang.Object
|
||||
public method remove(p0: java.lang.Object): boolean
|
||||
public method removeAll(p0: java.util.Collection): boolean
|
||||
public method retainAll(p0: java.util.Collection): boolean
|
||||
public synthetic bridge method set(p0: int, p1: java.lang.Object): java.lang.Object
|
||||
public method set-_bimVNw(p0: int, p1: int): int
|
||||
public synthetic bridge method size(): int
|
||||
public method subList(p0: int, p1: int): java.util.List
|
||||
public static method subList-impl(p0: java.util.List, p1: int, p2: int): java.util.List
|
||||
public method toArray(): java.lang.Object[]
|
||||
public method toArray(p0: java.lang.Object[]): java.lang.Object[]
|
||||
public method toString(): java.lang.String
|
||||
public static method toString-impl(p0: java.util.List): java.lang.String
|
||||
public synthetic final method unbox-impl(): java.util.List
|
||||
}
|
||||
compiler/testData/codegen/bytecodeListing/inlineClasses/inlineCollectionOfInlineClass/mutableList.kt
Vendored
+1
-3
@@ -1,8 +1,6 @@
|
||||
// IGNORE_ANNOTATIONS
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// ^ TODO: special bridges <-> inline classes interaction
|
||||
|
||||
inline class IT(val x: Int)
|
||||
inline class IT(val x: Long)
|
||||
|
||||
inline class InlineMutableList(private val mlist: MutableList<IT>) : MutableList<IT> {
|
||||
override val size: Int get() = mlist.size
|
||||
|
||||
+29
-29
@@ -1,18 +1,18 @@
|
||||
public final class IT {
|
||||
// source: 'mutableList.kt'
|
||||
private final field x: int
|
||||
private synthetic method <init>(p0: int): void
|
||||
public synthetic final static method box-impl(p0: int): IT
|
||||
public static method constructor-impl(p0: int): int
|
||||
private final field x: long
|
||||
private synthetic method <init>(p0: long): void
|
||||
public synthetic final static method box-impl(p0: long): IT
|
||||
public static method constructor-impl(p0: long): long
|
||||
public method equals(p0: java.lang.Object): boolean
|
||||
public static method equals-impl(p0: int, p1: java.lang.Object): boolean
|
||||
public final static method equals-impl0(p0: int, p1: int): boolean
|
||||
public final method getX(): int
|
||||
public static method equals-impl(p0: long, p1: java.lang.Object): boolean
|
||||
public final static method equals-impl0(p0: long, p1: long): boolean
|
||||
public final method getX(): long
|
||||
public method hashCode(): int
|
||||
public static method hashCode-impl(p0: int): int
|
||||
public static method hashCode-impl(p0: long): int
|
||||
public method toString(): java.lang.String
|
||||
public static method toString-impl(p0: int): java.lang.String
|
||||
public synthetic final method unbox-impl(): int
|
||||
public static method toString-impl(p0: long): java.lang.String
|
||||
public synthetic final method unbox-impl(): long
|
||||
}
|
||||
|
||||
public final class InlineMutableList {
|
||||
@@ -21,10 +21,10 @@ public final class InlineMutableList {
|
||||
private synthetic method <init>(p0: java.util.List): void
|
||||
public synthetic bridge method add(p0: int, p1: java.lang.Object): void
|
||||
public synthetic bridge method add(p0: java.lang.Object): boolean
|
||||
public method add-_bimVNw(p0: int, p1: int): void
|
||||
public static method add-_bimVNw(p0: java.util.List, p1: int, p2: int): void
|
||||
public method add-jHY5zpA(p0: int): boolean
|
||||
public static method add-jHY5zpA(p0: java.util.List, p1: int): boolean
|
||||
public method add-_bimVNw(p0: int, p1: long): void
|
||||
public static method add-_bimVNw(p0: java.util.List, p1: int, p2: long): void
|
||||
public static method add-jHY5zpA(p0: java.util.List, p1: long): boolean
|
||||
public method add-jHY5zpA(p0: long): boolean
|
||||
public method addAll(p0: int, p1: java.util.Collection): boolean
|
||||
public method addAll(p0: java.util.Collection): boolean
|
||||
public static method addAll-impl(p0: java.util.List, p1: int, p2: java.util.Collection): boolean
|
||||
@@ -34,48 +34,48 @@ public final class InlineMutableList {
|
||||
public static method clear-impl(p0: java.util.List): void
|
||||
public static method constructor-impl(p0: java.util.List): java.util.List
|
||||
public bridge final method contains(p0: java.lang.Object): boolean
|
||||
public method contains-jHY5zpA(p0: int): boolean
|
||||
public static method contains-jHY5zpA(p0: java.util.List, p1: int): boolean
|
||||
public static method contains-jHY5zpA(p0: java.util.List, p1: long): boolean
|
||||
public method contains-jHY5zpA(p0: long): boolean
|
||||
public method containsAll(p0: java.util.Collection): boolean
|
||||
public static method containsAll-impl(p0: java.util.List, p1: java.util.Collection): boolean
|
||||
public method equals(p0: java.lang.Object): boolean
|
||||
public static method equals-impl(p0: java.util.List, p1: java.lang.Object): boolean
|
||||
public final static method equals-impl0(p0: java.util.List, p1: java.util.List): boolean
|
||||
public synthetic bridge method get(p0: int): java.lang.Object
|
||||
public method get-XAcLw3A(p0: int): int
|
||||
public static method get-XAcLw3A(p0: java.util.List, p1: int): int
|
||||
public method get-XAcLw3A(p0: int): long
|
||||
public static method get-XAcLw3A(p0: java.util.List, p1: int): long
|
||||
public method getSize(): int
|
||||
public static method getSize-impl(p0: java.util.List): int
|
||||
public method hashCode(): int
|
||||
public static method hashCode-impl(p0: java.util.List): int
|
||||
public bridge final method indexOf(p0: java.lang.Object): int
|
||||
public method indexOf-jHY5zpA(p0: int): int
|
||||
public static method indexOf-jHY5zpA(p0: java.util.List, p1: int): int
|
||||
public static method indexOf-jHY5zpA(p0: java.util.List, p1: long): int
|
||||
public method indexOf-jHY5zpA(p0: long): int
|
||||
public method isEmpty(): boolean
|
||||
public static method isEmpty-impl(p0: java.util.List): boolean
|
||||
public method iterator(): java.util.Iterator
|
||||
public static method iterator-impl(p0: java.util.List): java.util.Iterator
|
||||
public bridge final method lastIndexOf(p0: java.lang.Object): int
|
||||
public method lastIndexOf-jHY5zpA(p0: int): int
|
||||
public static method lastIndexOf-jHY5zpA(p0: java.util.List, p1: int): int
|
||||
public static method lastIndexOf-jHY5zpA(p0: java.util.List, p1: long): int
|
||||
public method lastIndexOf-jHY5zpA(p0: long): int
|
||||
public method listIterator(): java.util.ListIterator
|
||||
public method listIterator(p0: int): java.util.ListIterator
|
||||
public static method listIterator-impl(p0: java.util.List): java.util.ListIterator
|
||||
public static method listIterator-impl(p0: java.util.List, p1: int): java.util.ListIterator
|
||||
public bridge final method remove(p0: int): int
|
||||
public synthetic bridge method remove(p0: int): java.lang.Object
|
||||
public bridge final method remove(p0: int): long
|
||||
public bridge final method remove(p0: java.lang.Object): boolean
|
||||
public method remove-jHY5zpA(p0: IT): boolean
|
||||
public static method remove-jHY5zpA(p0: java.util.List, p1: IT): boolean
|
||||
public static method remove-jHY5zpA(p0: java.util.List, p1: long): boolean
|
||||
public method remove-jHY5zpA(p0: long): boolean
|
||||
public method removeAll(p0: java.util.Collection): boolean
|
||||
public static method removeAll-impl(p0: java.util.List, p1: java.util.Collection): boolean
|
||||
public method removeAt-XAcLw3A(p0: int): int
|
||||
public static method removeAt-XAcLw3A(p0: java.util.List, p1: int): int
|
||||
public method removeAt-XAcLw3A(p0: int): long
|
||||
public static method removeAt-XAcLw3A(p0: java.util.List, p1: int): long
|
||||
public method retainAll(p0: java.util.Collection): boolean
|
||||
public static method retainAll-impl(p0: java.util.List, p1: java.util.Collection): boolean
|
||||
public synthetic bridge method set(p0: int, p1: java.lang.Object): java.lang.Object
|
||||
public method set-_bimVNw(p0: int, p1: int): int
|
||||
public static method set-_bimVNw(p0: java.util.List, p1: int, p2: int): int
|
||||
public method set-_bimVNw(p0: int, p1: long): long
|
||||
public static method set-_bimVNw(p0: java.util.List, p1: int, p2: long): long
|
||||
public bridge final method size(): int
|
||||
public method subList(p0: int, p1: int): java.util.List
|
||||
public static method subList-impl(p0: java.util.List, p1: int, p2: int): java.util.List
|
||||
|
||||
+87
@@ -0,0 +1,87 @@
|
||||
public final class IT {
|
||||
// source: 'mutableList.kt'
|
||||
private final field x: long
|
||||
private synthetic method <init>(p0: long): void
|
||||
public synthetic final static method box-impl(p0: long): IT
|
||||
public static method constructor-impl(p0: long): long
|
||||
public method equals(p0: java.lang.Object): boolean
|
||||
public static method equals-impl(p0: long, p1: java.lang.Object): boolean
|
||||
public final static method equals-impl0(p0: long, p1: long): boolean
|
||||
public final method getX(): long
|
||||
public method hashCode(): int
|
||||
public static method hashCode-impl(p0: long): int
|
||||
public method toString(): java.lang.String
|
||||
public static method toString-impl(p0: long): java.lang.String
|
||||
public synthetic final method unbox-impl(): long
|
||||
}
|
||||
|
||||
public final class InlineMutableList {
|
||||
// source: 'mutableList.kt'
|
||||
private final field mlist: java.util.List
|
||||
private synthetic method <init>(p0: java.util.List): void
|
||||
public synthetic bridge method add(p0: int, p1: java.lang.Object): void
|
||||
public synthetic bridge method add(p0: java.lang.Object): boolean
|
||||
public method add-_bimVNw(p0: int, p1: long): void
|
||||
public static method add-_bimVNw(p0: java.util.List, p1: int, p2: long): void
|
||||
public static method add-jHY5zpA(p0: java.util.List, p1: long): boolean
|
||||
public method add-jHY5zpA(p0: long): boolean
|
||||
public method addAll(p0: int, p1: java.util.Collection): boolean
|
||||
public method addAll(p0: java.util.Collection): boolean
|
||||
public static method addAll-impl(p0: java.util.List, p1: int, p2: java.util.Collection): boolean
|
||||
public static method addAll-impl(p0: java.util.List, p1: java.util.Collection): boolean
|
||||
public synthetic final static method box-impl(p0: java.util.List): InlineMutableList
|
||||
public method clear(): void
|
||||
public static method clear-impl(p0: java.util.List): void
|
||||
public static method constructor-impl(p0: java.util.List): java.util.List
|
||||
public synthetic bridge method contains(p0: java.lang.Object): boolean
|
||||
public static method contains-jHY5zpA(p0: java.util.List, p1: long): boolean
|
||||
public method contains-jHY5zpA(p0: long): boolean
|
||||
public method containsAll(p0: java.util.Collection): boolean
|
||||
public static method containsAll-impl(p0: java.util.List, p1: java.util.Collection): boolean
|
||||
public method equals(p0: java.lang.Object): boolean
|
||||
public static method equals-impl(p0: java.util.List, p1: java.lang.Object): boolean
|
||||
public final static method equals-impl0(p0: java.util.List, p1: java.util.List): boolean
|
||||
public synthetic bridge method get(p0: int): java.lang.Object
|
||||
public method get-XAcLw3A(p0: int): long
|
||||
public static method get-XAcLw3A(p0: java.util.List, p1: int): long
|
||||
public method getSize(): int
|
||||
public static method getSize-impl(p0: java.util.List): int
|
||||
public method hashCode(): int
|
||||
public static method hashCode-impl(p0: java.util.List): int
|
||||
public synthetic bridge method indexOf(p0: java.lang.Object): int
|
||||
public static method indexOf-jHY5zpA(p0: java.util.List, p1: long): int
|
||||
public method indexOf-jHY5zpA(p0: long): int
|
||||
public method isEmpty(): boolean
|
||||
public static method isEmpty-impl(p0: java.util.List): boolean
|
||||
public method iterator(): java.util.Iterator
|
||||
public static method iterator-impl(p0: java.util.List): java.util.Iterator
|
||||
public synthetic bridge method lastIndexOf(p0: java.lang.Object): int
|
||||
public static method lastIndexOf-jHY5zpA(p0: java.util.List, p1: long): int
|
||||
public method lastIndexOf-jHY5zpA(p0: long): int
|
||||
public method listIterator(): java.util.ListIterator
|
||||
public method listIterator(p0: int): java.util.ListIterator
|
||||
public static method listIterator-impl(p0: java.util.List): java.util.ListIterator
|
||||
public static method listIterator-impl(p0: java.util.List, p1: int): java.util.ListIterator
|
||||
public synthetic bridge method remove(p0: int): java.lang.Object
|
||||
public bridge final method remove(p0: int): long
|
||||
public synthetic bridge method remove(p0: java.lang.Object): boolean
|
||||
public static method remove-jHY5zpA(p0: java.util.List, p1: long): boolean
|
||||
public method remove-jHY5zpA(p0: long): boolean
|
||||
public method removeAll(p0: java.util.Collection): boolean
|
||||
public static method removeAll-impl(p0: java.util.List, p1: java.util.Collection): boolean
|
||||
public method removeAt-XAcLw3A(p0: int): long
|
||||
public static method removeAt-XAcLw3A(p0: java.util.List, p1: int): long
|
||||
public method retainAll(p0: java.util.Collection): boolean
|
||||
public static method retainAll-impl(p0: java.util.List, p1: java.util.Collection): boolean
|
||||
public synthetic bridge method set(p0: int, p1: java.lang.Object): java.lang.Object
|
||||
public method set-_bimVNw(p0: int, p1: long): long
|
||||
public static method set-_bimVNw(p0: java.util.List, p1: int, p2: long): long
|
||||
public synthetic bridge method size(): int
|
||||
public method subList(p0: int, p1: int): java.util.List
|
||||
public static method subList-impl(p0: java.util.List, p1: int, p2: int): java.util.List
|
||||
public method toArray(): java.lang.Object[]
|
||||
public method toArray(p0: java.lang.Object[]): java.lang.Object[]
|
||||
public method toString(): java.lang.String
|
||||
public static method toString-impl(p0: java.util.List): java.lang.String
|
||||
public synthetic final method unbox-impl(): java.util.List
|
||||
}
|
||||
Reference in New Issue
Block a user