JVM_IR more precise check for special bridges in super class

KT-41123
This commit is contained in:
Dmitry Petrov
2020-10-01 17:54:07 +03:00
parent cf5bd38bec
commit e018f2bd3e
19 changed files with 156 additions and 118 deletions
@@ -1,105 +0,0 @@
@kotlin.Metadata
public abstract class AJALA {
// source: 'abstractListsWithJavaBase.kt'
public method <init>(): void
public abstract method getSize(): int
public bridge final method remove(p0: int): java.lang.Object
public bridge method removeAt(p0: int): java.lang.Object
public bridge final method size(): int
}
@kotlin.Metadata
public abstract class AJALAN {
// source: 'abstractListsWithJavaBase.kt'
public method <init>(): void
public abstract method getSize(): int
public bridge final method remove(p0: int): java.lang.Object
public bridge method removeAt(p0: int): java.lang.Object
public bridge final method size(): int
}
@kotlin.Metadata
public abstract class AJALI {
// source: 'abstractListsWithJavaBase.kt'
public method <init>(): void
public bridge method contains(p0: java.lang.Integer): boolean
public bridge final method contains(p0: java.lang.Object): boolean
public abstract method getSize(): int
public bridge method indexOf(p0: java.lang.Integer): int
public bridge final method indexOf(p0: java.lang.Object): int
public bridge method lastIndexOf(p0: java.lang.Integer): int
public bridge final method lastIndexOf(p0: java.lang.Object): int
public bridge final method remove(p0: int): java.lang.Integer
public synthetic bridge method remove(p0: int): java.lang.Object
public bridge method remove(p0: java.lang.Integer): boolean
public bridge final method remove(p0: java.lang.Object): boolean
public bridge method removeAt(p0: int): java.lang.Integer
public bridge final method size(): int
}
@kotlin.Metadata
public abstract class AJALIN {
// source: 'abstractListsWithJavaBase.kt'
public method <init>(): void
public bridge method contains(p0: java.lang.Integer): boolean
public bridge final method contains(p0: java.lang.Object): boolean
public abstract method getSize(): int
public bridge method indexOf(p0: java.lang.Integer): int
public bridge final method indexOf(p0: java.lang.Object): int
public bridge method lastIndexOf(p0: java.lang.Integer): int
public bridge final method lastIndexOf(p0: java.lang.Object): int
public bridge final method remove(p0: int): java.lang.Integer
public synthetic bridge method remove(p0: int): java.lang.Object
public bridge method remove(p0: java.lang.Integer): boolean
public bridge final method remove(p0: java.lang.Object): boolean
public bridge method removeAt(p0: int): java.lang.Integer
public bridge final method size(): int
}
@kotlin.Metadata
public abstract class AJALS {
// source: 'abstractListsWithJavaBase.kt'
public method <init>(): void
public bridge final method contains(p0: java.lang.Object): boolean
public bridge method contains(p0: java.lang.String): boolean
public abstract method getSize(): int
public bridge final method indexOf(p0: java.lang.Object): int
public bridge method indexOf(p0: java.lang.String): int
public bridge final method lastIndexOf(p0: java.lang.Object): int
public bridge method lastIndexOf(p0: java.lang.String): int
public synthetic bridge method remove(p0: int): java.lang.Object
public bridge final method remove(p0: int): java.lang.String
public bridge final method remove(p0: java.lang.Object): boolean
public bridge method remove(p0: java.lang.String): boolean
public bridge method removeAt(p0: int): java.lang.String
public bridge final method size(): int
}
@kotlin.Metadata
public abstract class AJALSN {
// source: 'abstractListsWithJavaBase.kt'
public method <init>(): void
public bridge final method contains(p0: java.lang.Object): boolean
public bridge method contains(p0: java.lang.String): boolean
public abstract method getSize(): int
public bridge final method indexOf(p0: java.lang.Object): int
public bridge method indexOf(p0: java.lang.String): int
public bridge final method lastIndexOf(p0: java.lang.Object): int
public bridge method lastIndexOf(p0: java.lang.String): int
public synthetic bridge method remove(p0: int): java.lang.Object
public bridge final method remove(p0: int): java.lang.String
public bridge final method remove(p0: java.lang.Object): boolean
public bridge method remove(p0: java.lang.String): boolean
public bridge method removeAt(p0: int): java.lang.String
public bridge final method size(): int
}
@kotlin.Metadata
public abstract class AJALT {
// source: 'abstractListsWithJavaBase.kt'
public method <init>(): void
public abstract method getSize(): int
public bridge final method remove(p0: int): java.lang.Object
public bridge method removeAt(p0: int): java.lang.Object
public bridge final method size(): int
}
@@ -58,7 +58,6 @@ public abstract class A5 {
public bridge method indexOf(p0: java.lang.String): int
public bridge final method lastIndexOf(p0: java.lang.Object): int
public bridge method lastIndexOf(p0: java.lang.String): int
public synthetic bridge method remove(p0: int): java.lang.Object
public bridge final method remove(p0: int): java.lang.String
public bridge final method remove(p0: java.lang.Object): boolean
public bridge method remove(p0: java.lang.String): boolean
@@ -78,7 +77,6 @@ public abstract class A6 {
public bridge method indexOf(p0: java.lang.String): int
public bridge final method lastIndexOf(p0: java.lang.Object): int
public bridge method lastIndexOf(p0: java.lang.String): int
public synthetic bridge method remove(p0: int): java.lang.Object
public bridge final method remove(p0: int): java.lang.String
public bridge final method remove(p0: java.lang.Object): boolean
public bridge method remove(p0: java.lang.String): boolean
@@ -0,0 +1,13 @@
// WITH_RUNTIME
// TODO KT-42391
// JVM:
// public bridge final method get(p0: java.lang.Object): java.lang.Object
// public bridge final method remove(p0: java.lang.Object): java.lang.Object
// JVM_IR:
// public bridge final method get(p0: java.lang.Object): java.lang.String
// public bridge final method remove(p0: java.lang.Object): java.lang.String
open class A : HashMap<String, String>()
class B : A()
@@ -0,0 +1,27 @@
@kotlin.Metadata
public class A {
// source: 'kt41123.kt'
public method <init>(): void
public bridge final method containsKey(p0: java.lang.Object): boolean
public bridge method containsKey(p0: java.lang.String): boolean
public bridge final method containsValue(p0: java.lang.Object): boolean
public bridge method containsValue(p0: java.lang.String): boolean
public bridge final method entrySet(): java.util.Set
public bridge final method get(p0: java.lang.Object): java.lang.Object
public bridge method get(p0: java.lang.String): java.lang.String
public bridge method getEntries(): java.util.Set
public bridge method getKeys(): java.util.Set
public bridge method getSize(): int
public bridge method getValues(): java.util.Collection
public bridge final method keySet(): java.util.Set
public bridge final method remove(p0: java.lang.Object): java.lang.Object
public bridge method remove(p0: java.lang.String): java.lang.String
public bridge final method size(): int
public bridge final method values(): java.util.Collection
}
@kotlin.Metadata
public final class B {
// source: 'kt41123.kt'
public method <init>(): void
}
@@ -0,0 +1,27 @@
@kotlin.Metadata
public class A {
// source: 'kt41123.kt'
public method <init>(): void
public bridge final method containsKey(p0: java.lang.Object): boolean
public bridge method containsKey(p0: java.lang.String): boolean
public bridge final method containsValue(p0: java.lang.Object): boolean
public bridge method containsValue(p0: java.lang.String): boolean
public bridge final method entrySet(): java.util.Set
public bridge final method get(p0: java.lang.Object): java.lang.String
public bridge method get(p0: java.lang.String): java.lang.String
public bridge method getEntries(): java.util.Set
public bridge method getKeys(): java.util.Set
public bridge method getSize(): int
public bridge method getValues(): java.util.Collection
public bridge final method keySet(): java.util.Set
public bridge final method remove(p0: java.lang.Object): java.lang.String
public bridge method remove(p0: java.lang.String): java.lang.String
public bridge final method size(): int
public bridge final method values(): java.util.Collection
}
@kotlin.Metadata
public final class B {
// source: 'kt41123.kt'
public method <init>(): void
}