JVM_IR fix inline class <-> collection stubs issues

Move collectionStubMethodLowering before jvmInlineClassPhase, and make
them interact properly.

Note that some issues still remain in inline class <-> special bridges
interaction.

KT-40187 KT-42469
This commit is contained in:
Dmitry Petrov
2020-10-06 15:06:20 +03:00
parent 2573eaa77f
commit b1bd138afb
49 changed files with 1941 additions and 26 deletions
@@ -0,0 +1,11 @@
// IGNORE_ANNOTATIONS
inline class IT(val x: Int)
inline class InlineCollection(private val c: Collection<IT>) : Collection<IT> {
override val size: Int get() = c.size
override fun contains(element: IT): Boolean = c.contains(element)
override fun containsAll(elements: Collection<IT>): Boolean = c.containsAll(elements)
override fun isEmpty(): Boolean = c.isEmpty()
override fun iterator(): Iterator<IT> = c.iterator()
}
@@ -0,0 +1,53 @@
public final class IT {
// source: 'collection.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 InlineCollection {
// source: 'collection.kt'
private final field c: java.util.Collection
private synthetic method <init>(p0: java.util.Collection): void
public synthetic method add(p0: java.lang.Object): boolean
public method add-jHY5zpA(p0: int): boolean
public method addAll(p0: java.util.Collection): boolean
public synthetic final static method box-impl(p0: java.util.Collection): InlineCollection
public method clear(): void
public static method constructor-impl(p0: java.util.Collection): java.util.Collection
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.Collection, p1: int): boolean
public method containsAll(p0: java.util.Collection): boolean
public static method containsAll-impl(p0: java.util.Collection, p1: java.util.Collection): boolean
public method equals(p0: java.lang.Object): boolean
public static method equals-impl(p0: java.util.Collection, p1: java.lang.Object): boolean
public final static method equals-impl0(p0: java.util.Collection, p1: java.util.Collection): boolean
public method getSize(): int
public static method getSize-impl(p0: java.util.Collection): int
public method hashCode(): int
public static method hashCode-impl(p0: java.util.Collection): int
public method isEmpty(): boolean
public static method isEmpty-impl(p0: java.util.Collection): boolean
public method iterator(): java.util.Iterator
public static method iterator-impl(p0: java.util.Collection): java.util.Iterator
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 bridge final method size(): int
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.Collection): java.lang.String
public synthetic final method unbox-impl(): java.util.Collection
}
@@ -0,0 +1,53 @@
public final class IT {
// source: 'collection.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 InlineCollection {
// source: 'collection.kt'
private final field c: java.util.Collection
private synthetic method <init>(p0: java.util.Collection): void
public synthetic bridge method add(p0: java.lang.Object): boolean
public method add-jHY5zpA(p0: int): boolean
public method addAll(p0: java.util.Collection): boolean
public synthetic final static method box-impl(p0: java.util.Collection): InlineCollection
public method clear(): void
public static method constructor-impl(p0: java.util.Collection): java.util.Collection
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.Collection, p1: int): boolean
public method containsAll(p0: java.util.Collection): boolean
public static method containsAll-impl(p0: java.util.Collection, p1: java.util.Collection): boolean
public method equals(p0: java.lang.Object): boolean
public static method equals-impl(p0: java.util.Collection, p1: java.lang.Object): boolean
public final static method equals-impl0(p0: java.util.Collection, p1: java.util.Collection): boolean
public method getSize(): int
public static method getSize-impl(p0: java.util.Collection): int
public method hashCode(): int
public static method hashCode-impl(p0: java.util.Collection): int
public method isEmpty(): boolean
public static method isEmpty-impl(p0: java.util.Collection): boolean
public method iterator(): java.util.Iterator
public static method iterator-impl(p0: java.util.Collection): java.util.Iterator
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 size(): int
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.Collection): java.lang.String
public synthetic final method unbox-impl(): java.util.Collection
}
@@ -0,0 +1,7 @@
// IGNORE_ANNOTATIONS
inline class IT(val x: Int)
inline class InlineIterable(private val it: Iterable<IT>) : Iterable<IT> {
override fun iterator(): Iterator<IT> = it.iterator()
}
@@ -0,0 +1,34 @@
public final class IT {
// source: 'iterable.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 InlineIterable {
// source: 'iterable.kt'
private final field it: java.lang.Iterable
private synthetic method <init>(p0: java.lang.Iterable): void
public synthetic final static method box-impl(p0: java.lang.Iterable): InlineIterable
public static method constructor-impl(p0: java.lang.Iterable): java.lang.Iterable
public method equals(p0: java.lang.Object): boolean
public static method equals-impl(p0: java.lang.Iterable, p1: java.lang.Object): boolean
public final static method equals-impl0(p0: java.lang.Iterable, p1: java.lang.Iterable): boolean
public method hashCode(): int
public static method hashCode-impl(p0: java.lang.Iterable): int
public method iterator(): java.util.Iterator
public static method iterator-impl(p0: java.lang.Iterable): java.util.Iterator
public method toString(): java.lang.String
public static method toString-impl(p0: java.lang.Iterable): java.lang.String
public synthetic final method unbox-impl(): java.lang.Iterable
}
@@ -0,0 +1,8 @@
// IGNORE_ANNOTATIONS
inline class IT(val x: Int)
inline class InlineIterator(private val it: Iterator<IT>) : Iterator<IT> {
override fun hasNext(): Boolean = it.hasNext()
override fun next(): IT = it.next()
}
@@ -0,0 +1,38 @@
public final class IT {
// source: 'iterator.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 InlineIterator {
// source: 'iterator.kt'
private final field it: java.util.Iterator
private synthetic method <init>(p0: java.util.Iterator): void
public synthetic final static method box-impl(p0: java.util.Iterator): InlineIterator
public static method constructor-impl(p0: java.util.Iterator): java.util.Iterator
public method equals(p0: java.lang.Object): boolean
public static method equals-impl(p0: java.util.Iterator, p1: java.lang.Object): boolean
public final static method equals-impl0(p0: java.util.Iterator, p1: java.util.Iterator): boolean
public method hasNext(): boolean
public static method hasNext-impl(p0: java.util.Iterator): boolean
public method hashCode(): int
public static method hashCode-impl(p0: java.util.Iterator): int
public synthetic bridge method next(): java.lang.Object
public method next-XAcLw3A(): int
public static method next-XAcLw3A(p0: java.util.Iterator): int
public method remove(): void
public method toString(): java.lang.String
public static method toString-impl(p0: java.util.Iterator): java.lang.String
public synthetic final method unbox-impl(): java.util.Iterator
}
@@ -0,0 +1,19 @@
// IGNORE_ANNOTATIONS
// IGNORE_BACKEND: JVM_IR
// ^ TODO: special bridges <-> inline classes interaction
inline class IT(val x: Int)
inline class InlineList(private val list: List<IT>) : List<IT> {
override val size: Int get() = list.size
override fun contains(element: IT): Boolean = list.contains(element)
override fun containsAll(elements: Collection<IT>): Boolean = list.containsAll(elements)
override fun get(index: Int): IT = list[index]
override fun indexOf(element: IT): Int = list.indexOf(element)
override fun isEmpty(): Boolean = list.isEmpty()
override fun iterator(): Iterator<IT> = list.iterator()
override fun lastIndexOf(element: IT): Int = list.lastIndexOf(element)
override fun listIterator(): ListIterator<IT> = list.listIterator()
override fun listIterator(index: Int): ListIterator<IT> = list.listIterator(index)
override fun subList(fromIndex: Int, toIndex: Int): List<IT> = list.subList(fromIndex, toIndex)
}
@@ -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 method add(p0: int, p1: java.lang.Object): void
public synthetic 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 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 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 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 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 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 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 method set(p0: int, p1: java.lang.Object): java.lang.Object
public method set-_bimVNw(p0: int, p1: int): int
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
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
}
@@ -0,0 +1,16 @@
// IGNORE_ANNOTATIONS
inline class IK(val x: Int)
inline class IV(val x: Double)
inline class InlineMap(private val map: Map<IK, IV>) : Map<IK, IV> {
override val entries: Set<Map.Entry<IK, IV>> get() = map.entries
override val keys: Set<IK> get() = map.keys
override val size: Int get() = map.size
override val values: Collection<IV> get() = map.values
override fun containsKey(key: IK): Boolean = map.containsKey(key)
override fun containsValue(value: IV): Boolean = map.containsValue(value)
override fun get(key: IK): IV? = map[key]
override fun isEmpty(): Boolean = map.isEmpty()
}
@@ -0,0 +1,77 @@
public final class IK {
// source: 'map.kt'
private final field x: int
private synthetic method <init>(p0: int): void
public synthetic final static method box-impl(p0: int): IK
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 IV {
// source: 'map.kt'
private final field x: double
private synthetic method <init>(p0: double): void
public synthetic final static method box-impl(p0: double): IV
public static method constructor-impl(p0: double): double
public method equals(p0: java.lang.Object): boolean
public static method equals-impl(p0: double, p1: java.lang.Object): boolean
public final static method equals-impl0(p0: double, p1: double): boolean
public final method getX(): double
public method hashCode(): int
public static method hashCode-impl(p0: double): int
public method toString(): java.lang.String
public static method toString-impl(p0: double): java.lang.String
public synthetic final method unbox-impl(): double
}
public final class InlineMap {
// source: 'map.kt'
private final field map: java.util.Map
private synthetic method <init>(p0: java.util.Map): void
public synthetic final static method box-impl(p0: java.util.Map): InlineMap
public method clear(): void
public static method constructor-impl(p0: java.util.Map): java.util.Map
public bridge final method containsKey(p0: java.lang.Object): boolean
public method containsKey-FSIWiWE(p0: int): boolean
public static method containsKey-FSIWiWE(p0: java.util.Map, p1: int): boolean
public bridge final method containsValue(p0: java.lang.Object): boolean
public method containsValue-jbX5DO8(p0: double): boolean
public static method containsValue-jbX5DO8(p0: java.util.Map, p1: double): boolean
public bridge final method entrySet(): java.util.Set
public method equals(p0: java.lang.Object): boolean
public static method equals-impl(p0: java.util.Map, p1: java.lang.Object): boolean
public final static method equals-impl0(p0: java.util.Map, p1: java.util.Map): boolean
public bridge final method get(p0: java.lang.Object): java.lang.Object
public method get-FSIWiWE(p0: int): IV
public static method get-FSIWiWE(p0: java.util.Map, p1: int): IV
public method getEntries(): java.util.Set
public static method getEntries-impl(p0: java.util.Map): java.util.Set
public method getKeys(): java.util.Set
public static method getKeys-impl(p0: java.util.Map): java.util.Set
public method getSize(): int
public static method getSize-impl(p0: java.util.Map): int
public method getValues(): java.util.Collection
public static method getValues-impl(p0: java.util.Map): java.util.Collection
public method hashCode(): int
public static method hashCode-impl(p0: java.util.Map): int
public method isEmpty(): boolean
public static method isEmpty-impl(p0: java.util.Map): boolean
public bridge final method keySet(): java.util.Set
public synthetic method put(p0: java.lang.Object, p1: java.lang.Object): java.lang.Object
public method put-pjrbk2k(p0: int, p1: double): IV
public method putAll(p0: java.util.Map): void
public method remove(p0: java.lang.Object): java.lang.Object
public bridge final method size(): int
public method toString(): java.lang.String
public static method toString-impl(p0: java.util.Map): java.lang.String
public synthetic final method unbox-impl(): java.util.Map
public bridge final method values(): java.util.Collection
}
@@ -0,0 +1,9 @@
// IGNORE_ANNOTATIONS
inline class IK(val x: Int)
inline class IV(val x: Double)
inline class InlineMapEntry(private val e: Map.Entry<IK, IV>) : Map.Entry<IK, IV> {
override val key: IK get() = e.key
override val value: IV get() = e.value
}
@@ -0,0 +1,57 @@
public final class IK {
// source: 'mapEntry.kt'
private final field x: int
private synthetic method <init>(p0: int): void
public synthetic final static method box-impl(p0: int): IK
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 IV {
// source: 'mapEntry.kt'
private final field x: double
private synthetic method <init>(p0: double): void
public synthetic final static method box-impl(p0: double): IV
public static method constructor-impl(p0: double): double
public method equals(p0: java.lang.Object): boolean
public static method equals-impl(p0: double, p1: java.lang.Object): boolean
public final static method equals-impl0(p0: double, p1: double): boolean
public final method getX(): double
public method hashCode(): int
public static method hashCode-impl(p0: double): int
public method toString(): java.lang.String
public static method toString-impl(p0: double): java.lang.String
public synthetic final method unbox-impl(): double
}
public final class InlineMapEntry {
// source: 'mapEntry.kt'
private final field e: java.util.Map$Entry
private synthetic method <init>(p0: java.util.Map$Entry): void
public synthetic final static method box-impl(p0: java.util.Map$Entry): InlineMapEntry
public static method constructor-impl(p0: java.util.Map$Entry): java.util.Map$Entry
public method equals(p0: java.lang.Object): boolean
public static method equals-impl(p0: java.util.Map$Entry, p1: java.lang.Object): boolean
public final static method equals-impl0(p0: java.util.Map$Entry, p1: java.util.Map$Entry): boolean
public synthetic bridge method getKey(): java.lang.Object
public method getKey-I5j8jlQ(): int
public static method getKey-I5j8jlQ(p0: java.util.Map$Entry): int
public synthetic bridge method getValue(): java.lang.Object
public method getValue-zSeR6Gk(): double
public static method getValue-zSeR6Gk(p0: java.util.Map$Entry): double
public method hashCode(): int
public static method hashCode-impl(p0: java.util.Map$Entry): int
public synthetic method setValue(p0: java.lang.Object): java.lang.Object
public method setValue-jbX5DO8(p0: double): double
public method toString(): java.lang.String
public static method toString-impl(p0: java.util.Map$Entry): java.lang.String
public synthetic final method unbox-impl(): java.util.Map$Entry
}
@@ -0,0 +1,57 @@
public final class IK {
// source: 'mapEntry.kt'
private final field x: int
private synthetic method <init>(p0: int): void
public synthetic final static method box-impl(p0: int): IK
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 IV {
// source: 'mapEntry.kt'
private final field x: double
private synthetic method <init>(p0: double): void
public synthetic final static method box-impl(p0: double): IV
public static method constructor-impl(p0: double): double
public method equals(p0: java.lang.Object): boolean
public static method equals-impl(p0: double, p1: java.lang.Object): boolean
public final static method equals-impl0(p0: double, p1: double): boolean
public final method getX(): double
public method hashCode(): int
public static method hashCode-impl(p0: double): int
public method toString(): java.lang.String
public static method toString-impl(p0: double): java.lang.String
public synthetic final method unbox-impl(): double
}
public final class InlineMapEntry {
// source: 'mapEntry.kt'
private final field e: java.util.Map$Entry
private synthetic method <init>(p0: java.util.Map$Entry): void
public synthetic final static method box-impl(p0: java.util.Map$Entry): InlineMapEntry
public static method constructor-impl(p0: java.util.Map$Entry): java.util.Map$Entry
public method equals(p0: java.lang.Object): boolean
public static method equals-impl(p0: java.util.Map$Entry, p1: java.lang.Object): boolean
public final static method equals-impl0(p0: java.util.Map$Entry, p1: java.util.Map$Entry): boolean
public synthetic bridge method getKey(): java.lang.Object
public method getKey-I5j8jlQ(): int
public static method getKey-I5j8jlQ(p0: java.util.Map$Entry): int
public synthetic bridge method getValue(): java.lang.Object
public method getValue-zSeR6Gk(): double
public static method getValue-zSeR6Gk(p0: java.util.Map$Entry): double
public method hashCode(): int
public static method hashCode-impl(p0: java.util.Map$Entry): int
public synthetic bridge method setValue(p0: java.lang.Object): java.lang.Object
public method setValue-jbX5DO8(p0: double): double
public method toString(): java.lang.String
public static method toString-impl(p0: java.util.Map$Entry): java.lang.String
public synthetic final method unbox-impl(): java.util.Map$Entry
}
@@ -0,0 +1,78 @@
public final class IK {
// source: 'map.kt'
private final field x: int
private synthetic method <init>(p0: int): void
public synthetic final static method box-impl(p0: int): IK
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 IV {
// source: 'map.kt'
private final field x: double
private synthetic method <init>(p0: double): void
public synthetic final static method box-impl(p0: double): IV
public static method constructor-impl(p0: double): double
public method equals(p0: java.lang.Object): boolean
public static method equals-impl(p0: double, p1: java.lang.Object): boolean
public final static method equals-impl0(p0: double, p1: double): boolean
public final method getX(): double
public method hashCode(): int
public static method hashCode-impl(p0: double): int
public method toString(): java.lang.String
public static method toString-impl(p0: double): java.lang.String
public synthetic final method unbox-impl(): double
}
public final class InlineMap {
// source: 'map.kt'
private final field map: java.util.Map
private synthetic method <init>(p0: java.util.Map): void
public synthetic final static method box-impl(p0: java.util.Map): InlineMap
public method clear(): void
public static method constructor-impl(p0: java.util.Map): java.util.Map
public synthetic bridge method containsKey(p0: java.lang.Object): boolean
public method containsKey-FSIWiWE(p0: int): boolean
public static method containsKey-FSIWiWE(p0: java.util.Map, p1: int): boolean
public synthetic bridge method containsValue(p0: java.lang.Object): boolean
public method containsValue-jbX5DO8(p0: double): boolean
public static method containsValue-jbX5DO8(p0: java.util.Map, p1: double): boolean
public synthetic bridge method entrySet(): java.util.Set
public method equals(p0: java.lang.Object): boolean
public static method equals-impl(p0: java.util.Map, p1: java.lang.Object): boolean
public final static method equals-impl0(p0: java.util.Map, p1: java.util.Map): boolean
public synthetic bridge method get(p0: java.lang.Object): java.lang.Object
public method get-FSIWiWE(p0: int): IV
public static method get-FSIWiWE(p0: java.util.Map, p1: int): IV
public method getEntries(): java.util.Set
public static method getEntries-impl(p0: java.util.Map): java.util.Set
public method getKeys(): java.util.Set
public static method getKeys-impl(p0: java.util.Map): java.util.Set
public method getSize(): int
public static method getSize-impl(p0: java.util.Map): int
public method getValues(): java.util.Collection
public static method getValues-impl(p0: java.util.Map): java.util.Collection
public method hashCode(): int
public static method hashCode-impl(p0: java.util.Map): int
public method isEmpty(): boolean
public static method isEmpty-impl(p0: java.util.Map): boolean
public synthetic bridge method keySet(): java.util.Set
public synthetic bridge method put(p0: java.lang.Object, p1: java.lang.Object): java.lang.Object
public method put-pjrbk2k(p0: int, p1: double): IV
public method putAll(p0: java.util.Map): void
public synthetic bridge method remove(p0: java.lang.Object): java.lang.Object
public method remove-i7hxwoc(p0: java.lang.Object): IV
public synthetic bridge method size(): int
public method toString(): java.lang.String
public static method toString-impl(p0: java.util.Map): java.lang.String
public synthetic final method unbox-impl(): java.util.Map
public synthetic bridge method values(): java.util.Collection
}
@@ -0,0 +1,20 @@
// IGNORE_ANNOTATIONS
// IGNORE_BACKEND: JVM_IR
// ^ TODO: special bridges <-> inline classes interaction
inline class IT(val x: Int)
inline class InlineMutableCollection(private val mc: MutableCollection<IT>) : MutableCollection<IT> {
override val size: Int get() = mc.size
override fun contains(element: IT): Boolean = mc.contains(element)
override fun containsAll(elements: Collection<IT>): Boolean = mc.containsAll(elements)
override fun isEmpty(): Boolean = mc.isEmpty()
override fun add(element: IT): Boolean = mc.add(element)
override fun addAll(elements: Collection<IT>): Boolean = mc.addAll(elements)
override fun clear() { mc.clear() }
override fun iterator(): MutableIterator<IT> = mc.iterator()
override fun remove(element: IT): Boolean = mc.remove(element)
override fun removeAll(elements: Collection<IT>): Boolean = mc.removeAll(elements)
override fun retainAll(elements: Collection<IT>): Boolean = mc.retainAll(elements)
}
@@ -0,0 +1,60 @@
public final class IT {
// source: 'mutableCollection.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 InlineMutableCollection {
// source: 'mutableCollection.kt'
private final field mc: java.util.Collection
private synthetic method <init>(p0: java.util.Collection): void
public synthetic bridge method add(p0: java.lang.Object): boolean
public method add-jHY5zpA(p0: int): boolean
public static method add-jHY5zpA(p0: java.util.Collection, p1: int): boolean
public method addAll(p0: java.util.Collection): boolean
public static method addAll-impl(p0: java.util.Collection, p1: java.util.Collection): boolean
public synthetic final static method box-impl(p0: java.util.Collection): InlineMutableCollection
public method clear(): void
public static method clear-impl(p0: java.util.Collection): void
public static method constructor-impl(p0: java.util.Collection): java.util.Collection
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.Collection, p1: int): boolean
public method containsAll(p0: java.util.Collection): boolean
public static method containsAll-impl(p0: java.util.Collection, p1: java.util.Collection): boolean
public method equals(p0: java.lang.Object): boolean
public static method equals-impl(p0: java.util.Collection, p1: java.lang.Object): boolean
public final static method equals-impl0(p0: java.util.Collection, p1: java.util.Collection): boolean
public method getSize(): int
public static method getSize-impl(p0: java.util.Collection): int
public method hashCode(): int
public static method hashCode-impl(p0: java.util.Collection): int
public method isEmpty(): boolean
public static method isEmpty-impl(p0: java.util.Collection): boolean
public method iterator(): java.util.Iterator
public static method iterator-impl(p0: java.util.Collection): java.util.Iterator
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.Collection, p1: IT): boolean
public method removeAll(p0: java.util.Collection): boolean
public static method removeAll-impl(p0: java.util.Collection, p1: java.util.Collection): boolean
public method retainAll(p0: java.util.Collection): boolean
public static method retainAll-impl(p0: java.util.Collection, p1: java.util.Collection): boolean
public bridge final method size(): int
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.Collection): java.lang.String
public synthetic final method unbox-impl(): java.util.Collection
}
@@ -0,0 +1,8 @@
// IGNORE_ANNOTATIONS
inline class IT(val x: Int)
inline class InlineMutableIterable(private val it: MutableIterable<IT>) : MutableIterable<IT> {
override fun iterator(): MutableIterator<IT> = it.iterator()
}
@@ -0,0 +1,34 @@
public final class IT {
// source: 'mutableIterable.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 InlineMutableIterable {
// source: 'mutableIterable.kt'
private final field it: java.lang.Iterable
private synthetic method <init>(p0: java.lang.Iterable): void
public synthetic final static method box-impl(p0: java.lang.Iterable): InlineMutableIterable
public static method constructor-impl(p0: java.lang.Iterable): java.lang.Iterable
public method equals(p0: java.lang.Object): boolean
public static method equals-impl(p0: java.lang.Iterable, p1: java.lang.Object): boolean
public final static method equals-impl0(p0: java.lang.Iterable, p1: java.lang.Iterable): boolean
public method hashCode(): int
public static method hashCode-impl(p0: java.lang.Iterable): int
public method iterator(): java.util.Iterator
public static method iterator-impl(p0: java.lang.Iterable): java.util.Iterator
public method toString(): java.lang.String
public static method toString-impl(p0: java.lang.Iterable): java.lang.String
public synthetic final method unbox-impl(): java.lang.Iterable
}
@@ -0,0 +1,9 @@
// IGNORE_ANNOTATIONS
inline class IT(val x: Int)
inline class InlineMutableIterator(private val it: MutableIterator<IT>) : MutableIterator<IT> {
override fun hasNext(): Boolean = it.hasNext()
override fun next(): IT = it.next()
override fun remove() { it.remove() }
}
@@ -0,0 +1,39 @@
public final class IT {
// source: 'mutableIterator.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 InlineMutableIterator {
// source: 'mutableIterator.kt'
private final field it: java.util.Iterator
private synthetic method <init>(p0: java.util.Iterator): void
public synthetic final static method box-impl(p0: java.util.Iterator): InlineMutableIterator
public static method constructor-impl(p0: java.util.Iterator): java.util.Iterator
public method equals(p0: java.lang.Object): boolean
public static method equals-impl(p0: java.util.Iterator, p1: java.lang.Object): boolean
public final static method equals-impl0(p0: java.util.Iterator, p1: java.util.Iterator): boolean
public method hasNext(): boolean
public static method hasNext-impl(p0: java.util.Iterator): boolean
public method hashCode(): int
public static method hashCode-impl(p0: java.util.Iterator): int
public synthetic bridge method next(): java.lang.Object
public method next-XAcLw3A(): int
public static method next-XAcLw3A(p0: java.util.Iterator): int
public method remove(): void
public static method remove-impl(p0: java.util.Iterator): void
public method toString(): java.lang.String
public static method toString-impl(p0: java.util.Iterator): java.lang.String
public synthetic final method unbox-impl(): java.util.Iterator
}
@@ -0,0 +1,29 @@
// IGNORE_ANNOTATIONS
// IGNORE_BACKEND: JVM_IR
// ^ TODO: special bridges <-> inline classes interaction
inline class IT(val x: Int)
inline class InlineMutableList(private val mlist: MutableList<IT>) : MutableList<IT> {
override val size: Int get() = mlist.size
override fun contains(element: IT): Boolean = mlist.contains(element)
override fun containsAll(elements: Collection<IT>): Boolean = mlist.containsAll(elements)
override fun get(index: Int): IT = mlist[index]
override fun indexOf(element: IT): Int = mlist.indexOf(element)
override fun isEmpty(): Boolean = mlist.isEmpty()
override fun iterator(): MutableIterator<IT> = mlist.iterator()
override fun lastIndexOf(element: IT): Int = mlist.lastIndexOf(element)
override fun add(element: IT): Boolean = mlist.add(element)
override fun add(index: Int, element: IT) { mlist.add(index, element) }
override fun addAll(index: Int, elements: Collection<IT>): Boolean = mlist.addAll(index, elements)
override fun addAll(elements: Collection<IT>): Boolean = mlist.addAll(elements)
override fun clear() { mlist.clear() }
override fun listIterator(): MutableListIterator<IT> = mlist.listIterator()
override fun listIterator(index: Int): MutableListIterator<IT> = mlist.listIterator(index)
override fun remove(element: IT): Boolean = mlist.remove(element)
override fun removeAll(elements: Collection<IT>): Boolean = mlist.removeAll(elements)
override fun removeAt(index: Int): IT = mlist.removeAt(index)
override fun retainAll(elements: Collection<IT>): Boolean = mlist.retainAll(elements)
override fun set(index: Int, element: IT): IT = mlist.set(index, element)
override fun subList(fromIndex: Int, toIndex: Int): MutableList<IT> = mlist.subList(fromIndex, toIndex)
}
@@ -0,0 +1,87 @@
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
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 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: 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 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 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 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 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 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 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: java.lang.Object): boolean
public method remove-jHY5zpA(p0: IT): boolean
public static method remove-jHY5zpA(p0: java.util.List, p1: IT): 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 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 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
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
}
@@ -0,0 +1,20 @@
// IGNORE_ANNOTATIONS
inline class IK(val x: Int)
inline class IV(val x: Double)
inline class InlineMutableMap(private val mmap: MutableMap<IK, IV>) : MutableMap<IK, IV> {
override val size: Int get() = mmap.size
override fun containsKey(key: IK): Boolean = mmap.containsKey(key)
override fun containsValue(value: IV): Boolean = mmap.containsValue(value)
override fun get(key: IK): IV? = mmap[key]
override fun isEmpty(): Boolean = mmap.isEmpty()
override val entries: MutableSet<MutableMap.MutableEntry<IK, IV>> get() = mmap.entries
override val keys: MutableSet<IK> get() = mmap.keys
override val values: MutableCollection<IV> get() = mmap.values
override fun clear() { mmap.clear() }
override fun put(key: IK, value: IV): IV? = mmap.put(key, value)
override fun putAll(from: Map<out IK, IV>) { mmap.putAll(from) }
override fun remove(key: IK): IV? = mmap.remove(key)
}
@@ -0,0 +1,82 @@
public final class IK {
// source: 'mutableMap.kt'
private final field x: int
private synthetic method <init>(p0: int): void
public synthetic final static method box-impl(p0: int): IK
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 IV {
// source: 'mutableMap.kt'
private final field x: double
private synthetic method <init>(p0: double): void
public synthetic final static method box-impl(p0: double): IV
public static method constructor-impl(p0: double): double
public method equals(p0: java.lang.Object): boolean
public static method equals-impl(p0: double, p1: java.lang.Object): boolean
public final static method equals-impl0(p0: double, p1: double): boolean
public final method getX(): double
public method hashCode(): int
public static method hashCode-impl(p0: double): int
public method toString(): java.lang.String
public static method toString-impl(p0: double): java.lang.String
public synthetic final method unbox-impl(): double
}
public final class InlineMutableMap {
// source: 'mutableMap.kt'
private final field mmap: java.util.Map
private synthetic method <init>(p0: java.util.Map): void
public synthetic final static method box-impl(p0: java.util.Map): InlineMutableMap
public method clear(): void
public static method clear-impl(p0: java.util.Map): void
public static method constructor-impl(p0: java.util.Map): java.util.Map
public bridge final method containsKey(p0: java.lang.Object): boolean
public method containsKey-FSIWiWE(p0: int): boolean
public static method containsKey-FSIWiWE(p0: java.util.Map, p1: int): boolean
public bridge final method containsValue(p0: java.lang.Object): boolean
public method containsValue-jbX5DO8(p0: double): boolean
public static method containsValue-jbX5DO8(p0: java.util.Map, p1: double): boolean
public bridge final method entrySet(): java.util.Set
public method equals(p0: java.lang.Object): boolean
public static method equals-impl(p0: java.util.Map, p1: java.lang.Object): boolean
public final static method equals-impl0(p0: java.util.Map, p1: java.util.Map): boolean
public bridge final method get(p0: java.lang.Object): java.lang.Object
public method get-FSIWiWE(p0: int): IV
public static method get-FSIWiWE(p0: java.util.Map, p1: int): IV
public method getEntries(): java.util.Set
public static method getEntries-impl(p0: java.util.Map): java.util.Set
public method getKeys(): java.util.Set
public static method getKeys-impl(p0: java.util.Map): java.util.Set
public method getSize(): int
public static method getSize-impl(p0: java.util.Map): int
public method getValues(): java.util.Collection
public static method getValues-impl(p0: java.util.Map): java.util.Collection
public method hashCode(): int
public static method hashCode-impl(p0: java.util.Map): int
public method isEmpty(): boolean
public static method isEmpty-impl(p0: java.util.Map): boolean
public bridge final method keySet(): java.util.Set
public synthetic bridge method put(p0: java.lang.Object, p1: java.lang.Object): java.lang.Object
public method put-pjrbk2k(p0: int, p1: double): IV
public static method put-pjrbk2k(p0: java.util.Map, p1: int, p2: double): IV
public method putAll(p0: java.util.Map): void
public static method putAll-impl(p0: java.util.Map, p1: java.util.Map): void
public bridge final method remove(p0: java.lang.Object): java.lang.Object
public method remove-FSIWiWE(p0: int): IV
public static method remove-FSIWiWE(p0: java.util.Map, p1: int): IV
public bridge final method size(): int
public method toString(): java.lang.String
public static method toString-impl(p0: java.util.Map): java.lang.String
public synthetic final method unbox-impl(): java.util.Map
public bridge final method values(): java.util.Collection
}
@@ -0,0 +1,10 @@
// IGNORE_ANNOTATIONS
inline class IK(val x: Int)
inline class IV(val x: Double)
inline class InlineMutableMapEntry(private val e: MutableMap.MutableEntry<IK, IV>) : MutableMap.MutableEntry<IK, IV> {
override val key: IK get() = e.key
override val value: IV get() = e.value
override fun setValue(newValue: IV): IV = e.setValue(newValue)
}
@@ -0,0 +1,58 @@
public final class IK {
// source: 'mutableMapEntry.kt'
private final field x: int
private synthetic method <init>(p0: int): void
public synthetic final static method box-impl(p0: int): IK
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 IV {
// source: 'mutableMapEntry.kt'
private final field x: double
private synthetic method <init>(p0: double): void
public synthetic final static method box-impl(p0: double): IV
public static method constructor-impl(p0: double): double
public method equals(p0: java.lang.Object): boolean
public static method equals-impl(p0: double, p1: java.lang.Object): boolean
public final static method equals-impl0(p0: double, p1: double): boolean
public final method getX(): double
public method hashCode(): int
public static method hashCode-impl(p0: double): int
public method toString(): java.lang.String
public static method toString-impl(p0: double): java.lang.String
public synthetic final method unbox-impl(): double
}
public final class InlineMutableMapEntry {
// source: 'mutableMapEntry.kt'
private final field e: java.util.Map$Entry
private synthetic method <init>(p0: java.util.Map$Entry): void
public synthetic final static method box-impl(p0: java.util.Map$Entry): InlineMutableMapEntry
public static method constructor-impl(p0: java.util.Map$Entry): java.util.Map$Entry
public method equals(p0: java.lang.Object): boolean
public static method equals-impl(p0: java.util.Map$Entry, p1: java.lang.Object): boolean
public final static method equals-impl0(p0: java.util.Map$Entry, p1: java.util.Map$Entry): boolean
public synthetic bridge method getKey(): java.lang.Object
public method getKey-I5j8jlQ(): int
public static method getKey-I5j8jlQ(p0: java.util.Map$Entry): int
public synthetic bridge method getValue(): java.lang.Object
public method getValue-zSeR6Gk(): double
public static method getValue-zSeR6Gk(p0: java.util.Map$Entry): double
public method hashCode(): int
public static method hashCode-impl(p0: java.util.Map$Entry): int
public synthetic bridge method setValue(p0: java.lang.Object): java.lang.Object
public method setValue-jbX5DO8(p0: double): double
public static method setValue-jbX5DO8(p0: java.util.Map$Entry, p1: double): double
public method toString(): java.lang.String
public static method toString-impl(p0: java.util.Map$Entry): java.lang.String
public synthetic final method unbox-impl(): java.util.Map$Entry
}
@@ -0,0 +1,82 @@
public final class IK {
// source: 'mutableMap.kt'
private final field x: int
private synthetic method <init>(p0: int): void
public synthetic final static method box-impl(p0: int): IK
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 IV {
// source: 'mutableMap.kt'
private final field x: double
private synthetic method <init>(p0: double): void
public synthetic final static method box-impl(p0: double): IV
public static method constructor-impl(p0: double): double
public method equals(p0: java.lang.Object): boolean
public static method equals-impl(p0: double, p1: java.lang.Object): boolean
public final static method equals-impl0(p0: double, p1: double): boolean
public final method getX(): double
public method hashCode(): int
public static method hashCode-impl(p0: double): int
public method toString(): java.lang.String
public static method toString-impl(p0: double): java.lang.String
public synthetic final method unbox-impl(): double
}
public final class InlineMutableMap {
// source: 'mutableMap.kt'
private final field mmap: java.util.Map
private synthetic method <init>(p0: java.util.Map): void
public synthetic final static method box-impl(p0: java.util.Map): InlineMutableMap
public method clear(): void
public static method clear-impl(p0: java.util.Map): void
public static method constructor-impl(p0: java.util.Map): java.util.Map
public synthetic bridge method containsKey(p0: java.lang.Object): boolean
public method containsKey-FSIWiWE(p0: int): boolean
public static method containsKey-FSIWiWE(p0: java.util.Map, p1: int): boolean
public synthetic bridge method containsValue(p0: java.lang.Object): boolean
public method containsValue-jbX5DO8(p0: double): boolean
public static method containsValue-jbX5DO8(p0: java.util.Map, p1: double): boolean
public synthetic bridge method entrySet(): java.util.Set
public method equals(p0: java.lang.Object): boolean
public static method equals-impl(p0: java.util.Map, p1: java.lang.Object): boolean
public final static method equals-impl0(p0: java.util.Map, p1: java.util.Map): boolean
public synthetic bridge method get(p0: java.lang.Object): java.lang.Object
public method get-FSIWiWE(p0: int): IV
public static method get-FSIWiWE(p0: java.util.Map, p1: int): IV
public method getEntries(): java.util.Set
public static method getEntries-impl(p0: java.util.Map): java.util.Set
public method getKeys(): java.util.Set
public static method getKeys-impl(p0: java.util.Map): java.util.Set
public method getSize(): int
public static method getSize-impl(p0: java.util.Map): int
public method getValues(): java.util.Collection
public static method getValues-impl(p0: java.util.Map): java.util.Collection
public method hashCode(): int
public static method hashCode-impl(p0: java.util.Map): int
public method isEmpty(): boolean
public static method isEmpty-impl(p0: java.util.Map): boolean
public synthetic bridge method keySet(): java.util.Set
public synthetic bridge method put(p0: java.lang.Object, p1: java.lang.Object): java.lang.Object
public method put-pjrbk2k(p0: int, p1: double): IV
public static method put-pjrbk2k(p0: java.util.Map, p1: int, p2: double): IV
public method putAll(p0: java.util.Map): void
public static method putAll-impl(p0: java.util.Map, p1: java.util.Map): void
public synthetic bridge method remove(p0: java.lang.Object): java.lang.Object
public method remove-FSIWiWE(p0: int): IV
public static method remove-FSIWiWE(p0: java.util.Map, p1: int): IV
public synthetic bridge method size(): int
public method toString(): java.lang.String
public static method toString-impl(p0: java.util.Map): java.lang.String
public synthetic final method unbox-impl(): java.util.Map
public synthetic bridge method values(): java.util.Collection
}
@@ -0,0 +1,19 @@
// IGNORE_ANNOTATIONS
// IGNORE_BACKEND: JVM_IR
// ^ TODO: special bridges <-> inline classes interaction
inline class IT(val x: Int)
inline class InlineMutableSet(private val ms: MutableSet<IT>) : MutableSet<IT> {
override val size: Int get() = ms.size
override fun contains(element: IT): Boolean = ms.contains(element)
override fun containsAll(elements: Collection<IT>): Boolean = ms.containsAll(elements)
override fun isEmpty(): Boolean = ms.isEmpty()
override fun add(element: IT): Boolean = ms.add(element)
override fun addAll(elements: Collection<IT>): Boolean = ms.addAll(elements)
override fun clear() { ms.clear() }
override fun iterator(): MutableIterator<IT> = ms.iterator()
override fun remove(element: IT): Boolean = ms.remove(element)
override fun removeAll(elements: Collection<IT>): Boolean = ms.removeAll(elements)
override fun retainAll(elements: Collection<IT>): Boolean = ms.retainAll(elements)
}
@@ -0,0 +1,60 @@
public final class IT {
// source: 'mutableSet.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 InlineMutableSet {
// source: 'mutableSet.kt'
private final field ms: java.util.Set
private synthetic method <init>(p0: java.util.Set): void
public synthetic bridge method add(p0: java.lang.Object): boolean
public method add-jHY5zpA(p0: int): boolean
public static method add-jHY5zpA(p0: java.util.Set, p1: int): boolean
public method addAll(p0: java.util.Collection): boolean
public static method addAll-impl(p0: java.util.Set, p1: java.util.Collection): boolean
public synthetic final static method box-impl(p0: java.util.Set): InlineMutableSet
public method clear(): void
public static method clear-impl(p0: java.util.Set): void
public static method constructor-impl(p0: java.util.Set): java.util.Set
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.Set, p1: int): boolean
public method containsAll(p0: java.util.Collection): boolean
public static method containsAll-impl(p0: java.util.Set, p1: java.util.Collection): boolean
public method equals(p0: java.lang.Object): boolean
public static method equals-impl(p0: java.util.Set, p1: java.lang.Object): boolean
public final static method equals-impl0(p0: java.util.Set, p1: java.util.Set): boolean
public method getSize(): int
public static method getSize-impl(p0: java.util.Set): int
public method hashCode(): int
public static method hashCode-impl(p0: java.util.Set): int
public method isEmpty(): boolean
public static method isEmpty-impl(p0: java.util.Set): boolean
public method iterator(): java.util.Iterator
public static method iterator-impl(p0: java.util.Set): java.util.Iterator
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.Set, p1: IT): boolean
public method removeAll(p0: java.util.Collection): boolean
public static method removeAll-impl(p0: java.util.Set, p1: java.util.Collection): boolean
public method retainAll(p0: java.util.Collection): boolean
public static method retainAll-impl(p0: java.util.Set, p1: java.util.Collection): boolean
public bridge final method size(): int
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.Set): java.lang.String
public synthetic final method unbox-impl(): java.util.Set
}
@@ -0,0 +1,11 @@
// IGNORE_ANNOTATIONS
inline class IT(val x: Int)
inline class InlineSet(private val s: Set<IT>) : Set<IT> {
override val size: Int get() = s.size
override fun contains(element: IT): Boolean = s.contains(element)
override fun containsAll(elements: Collection<IT>): Boolean = s.containsAll(elements)
override fun isEmpty(): Boolean = s.isEmpty()
override fun iterator(): Iterator<IT> = s.iterator()
}
@@ -0,0 +1,53 @@
public final class IT {
// source: 'set.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 InlineSet {
// source: 'set.kt'
private final field s: java.util.Set
private synthetic method <init>(p0: java.util.Set): void
public synthetic method add(p0: java.lang.Object): boolean
public method add-jHY5zpA(p0: int): boolean
public method addAll(p0: java.util.Collection): boolean
public synthetic final static method box-impl(p0: java.util.Set): InlineSet
public method clear(): void
public static method constructor-impl(p0: java.util.Set): java.util.Set
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.Set, p1: int): boolean
public method containsAll(p0: java.util.Collection): boolean
public static method containsAll-impl(p0: java.util.Set, p1: java.util.Collection): boolean
public method equals(p0: java.lang.Object): boolean
public static method equals-impl(p0: java.util.Set, p1: java.lang.Object): boolean
public final static method equals-impl0(p0: java.util.Set, p1: java.util.Set): boolean
public method getSize(): int
public static method getSize-impl(p0: java.util.Set): int
public method hashCode(): int
public static method hashCode-impl(p0: java.util.Set): int
public method isEmpty(): boolean
public static method isEmpty-impl(p0: java.util.Set): boolean
public method iterator(): java.util.Iterator
public static method iterator-impl(p0: java.util.Set): java.util.Iterator
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 bridge final method size(): int
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.Set): java.lang.String
public synthetic final method unbox-impl(): java.util.Set
}
@@ -0,0 +1,53 @@
public final class IT {
// source: 'set.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 InlineSet {
// source: 'set.kt'
private final field s: java.util.Set
private synthetic method <init>(p0: java.util.Set): void
public synthetic bridge method add(p0: java.lang.Object): boolean
public method add-jHY5zpA(p0: int): boolean
public method addAll(p0: java.util.Collection): boolean
public synthetic final static method box-impl(p0: java.util.Set): InlineSet
public method clear(): void
public static method constructor-impl(p0: java.util.Set): java.util.Set
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.Set, p1: int): boolean
public method containsAll(p0: java.util.Collection): boolean
public static method containsAll-impl(p0: java.util.Set, p1: java.util.Collection): boolean
public method equals(p0: java.lang.Object): boolean
public static method equals-impl(p0: java.util.Set, p1: java.lang.Object): boolean
public final static method equals-impl0(p0: java.util.Set, p1: java.util.Set): boolean
public method getSize(): int
public static method getSize-impl(p0: java.util.Set): int
public method hashCode(): int
public static method hashCode-impl(p0: java.util.Set): int
public method isEmpty(): boolean
public static method isEmpty-impl(p0: java.util.Set): boolean
public method iterator(): java.util.Iterator
public static method iterator-impl(p0: java.util.Set): java.util.Iterator
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 size(): int
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.Set): java.lang.String
public synthetic final method unbox-impl(): java.util.Set
}