JVM_IR emulate old back-end behavior in special bridges + inline classes

KT-42491 KT-42539
This commit is contained in:
Dmitry Petrov
2020-10-08 15:32:18 +03:00
parent 92fa13cbab
commit a412596d8e
57 changed files with 1508 additions and 1172 deletions
@@ -0,0 +1,3 @@
// IGNORE_ANNOTATIONS
abstract class MutableCollectionOfLong : MutableList<Long>
@@ -0,0 +1,19 @@
public abstract class MutableCollectionOfLong {
// source: 'abstractMutableCollectionOfPrimitive.kt'
public method <init>(): void
public bridge final method contains(p0: java.lang.Object): boolean
public abstract method contains(p0: long): boolean
public abstract method getSize(): int
public bridge final method indexOf(p0: java.lang.Object): int
public abstract method indexOf(p0: long): int
public bridge final method lastIndexOf(p0: java.lang.Object): int
public abstract method lastIndexOf(p0: long): 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 abstract method remove(p0: long): boolean
public abstract method removeAt(p0: int): java.lang.Long
public bridge final method size(): int
public method toArray(): java.lang.Object[]
public method toArray(p0: java.lang.Object[]): java.lang.Object[]
}
@@ -0,0 +1,3 @@
// IGNORE_ANNOTATIONS
abstract class MutableListOfLong : MutableList<Long>
@@ -0,0 +1,19 @@
public abstract class MutableListOfLong {
// source: 'abstractMutableListOfPrimitive.kt'
public method <init>(): void
public bridge final method contains(p0: java.lang.Object): boolean
public abstract method contains(p0: long): boolean
public abstract method getSize(): int
public bridge final method indexOf(p0: java.lang.Object): int
public abstract method indexOf(p0: long): int
public bridge final method lastIndexOf(p0: java.lang.Object): int
public abstract method lastIndexOf(p0: long): 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 abstract method remove(p0: long): boolean
public abstract method removeAt(p0: int): java.lang.Long
public bridge final method size(): int
public method toArray(): java.lang.Object[]
public method toArray(p0: java.lang.Object[]): java.lang.Object[]
}
@@ -33,11 +33,11 @@ public abstract class AMLI {
public bridge final method indexOf(p0: java.lang.Object): int
public abstract method lastIndexOf(p0: int): int
public bridge final method lastIndexOf(p0: java.lang.Object): int
public bridge final method remove(p0: int): java.lang.Integer
public bridge final method remove(p0: int): int
public synthetic bridge method remove(p0: int): java.lang.Object
public abstract method remove(p0: java.lang.Integer): boolean
public bridge final method remove(p0: java.lang.Object): boolean
public abstract method removeAt(p0: int): int
public abstract method removeAt(p0: int): java.lang.Integer
public bridge final method size(): int
public method toArray(): java.lang.Object[]
public method toArray(p0: java.lang.Object[]): java.lang.Object[]
@@ -0,0 +1,25 @@
// IGNORE_ANNOTATIONS
class MutableListOfLong(private val ml: MutableList<Long>) : MutableList<Long> {
override val size: Int get() = ml.size
override fun contains(element: Long): Boolean = ml.contains(element)
override fun containsAll(elements: Collection<Long>): Boolean = ml.containsAll(elements)
override fun get(index: Int): Long = ml.get(index)
override fun indexOf(element: Long): Int = ml.indexOf(element)
override fun isEmpty(): Boolean = ml.isEmpty()
override fun iterator(): MutableIterator<Long> = ml.iterator()
override fun lastIndexOf(element: Long): Int = ml.lastIndexOf(element)
override fun add(element: Long): Boolean = ml.add(element)
override fun add(index: Int, element: Long) = ml.add(index, element)
override fun addAll(index: Int, elements: Collection<Long>): Boolean = ml.addAll(index, elements)
override fun addAll(elements: Collection<Long>): Boolean = ml.addAll(elements)
override fun clear() = ml.clear()
override fun listIterator(): MutableListIterator<Long> = ml.listIterator()
override fun listIterator(index: Int): MutableListIterator<Long> = ml.listIterator(index)
override fun remove(element: Long): Boolean = ml.remove(element)
override fun removeAll(elements: Collection<Long>): Boolean = ml.removeAll(elements)
override fun removeAt(index: Int): Long = ml.removeAt(index)
override fun retainAll(elements: Collection<Long>): Boolean = ml.retainAll(elements)
override fun set(index: Int, element: Long): Long = ml.set(index, element)
override fun subList(fromIndex: Int, toIndex: Int): MutableList<Long> = ml.subList(fromIndex, toIndex)
}
@@ -0,0 +1,39 @@
public final class MutableListOfLong {
// source: 'mutableListOfPrimitive.kt'
private final field ml: java.util.List
public method <init>(p0: java.util.List): void
public synthetic bridge method add(p0: int, p1: java.lang.Object): void
public method add(p0: int, p1: long): void
public synthetic bridge method add(p0: java.lang.Object): boolean
public method add(p0: long): boolean
public method addAll(p0: int, p1: java.util.Collection): boolean
public method addAll(p0: java.util.Collection): boolean
public method clear(): void
public bridge final method contains(p0: java.lang.Object): boolean
public method contains(p0: long): boolean
public method containsAll(p0: java.util.Collection): boolean
public method get(p0: int): java.lang.Long
public synthetic bridge method get(p0: int): java.lang.Object
public method getSize(): int
public bridge final method indexOf(p0: java.lang.Object): int
public method indexOf(p0: long): int
public method isEmpty(): boolean
public method iterator(): java.util.Iterator
public bridge final method lastIndexOf(p0: java.lang.Object): int
public method lastIndexOf(p0: long): int
public method listIterator(): java.util.ListIterator
public method listIterator(p0: int): java.util.ListIterator
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(p0: long): boolean
public method removeAll(p0: java.util.Collection): boolean
public method removeAt(p0: int): java.lang.Long
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(p0: int, p1: long): java.lang.Long
public bridge final method size(): int
public method subList(p0: int, p1: int): java.util.List
public method toArray(): java.lang.Object[]
public method toArray(p0: java.lang.Object[]): java.lang.Object[]
}