JVM_IR prevent clash of unsubstituted special bridges

This commit is contained in:
Dmitry Petrov
2021-11-23 10:05:09 +03:00
committed by Space
parent 1e98748e0b
commit 55d1fdfbc2
12 changed files with 230 additions and 13 deletions
@@ -0,0 +1,13 @@
// TARGET_BACKEND: JVM
// WITH_STDLIB
// FULL_JDK
abstract class AMap1<K1, V1>(private val m: Map<K1, V1>) : Map<K1, V1> by m
interface Value2
abstract class AMap2<V2 : Value2>(m: Map<String, V2>) : AMap1<String, V2>(m)
class C(val value: String): Value2
class Map3(m: Map<String, C>) : AMap2<C>(m)
@@ -0,0 +1,64 @@
@kotlin.Metadata
public abstract class AMap1 {
// source: 'specialBridgeForGet.kt'
private final field m: java.util.Map
public method <init>(@org.jetbrains.annotations.NotNull p0: java.util.Map): void
public method clear(): void
public method compute(p0: java.lang.Object, p1: java.util.function.BiFunction): java.lang.Object
public method computeIfAbsent(p0: java.lang.Object, p1: java.util.function.Function): java.lang.Object
public method computeIfPresent(p0: java.lang.Object, p1: java.util.function.BiFunction): java.lang.Object
public method containsKey(p0: java.lang.Object): boolean
public method containsValue(p0: java.lang.Object): boolean
public bridge final method entrySet(): java.util.Set
public @org.jetbrains.annotations.Nullable method get(p0: java.lang.Object): java.lang.Object
public @org.jetbrains.annotations.NotNull method getEntries(): java.util.Set
public @org.jetbrains.annotations.NotNull method getKeys(): java.util.Set
public method getSize(): int
public @org.jetbrains.annotations.NotNull method getValues(): java.util.Collection
public method isEmpty(): boolean
public bridge final method keySet(): java.util.Set
public method merge(p0: java.lang.Object, p1: java.lang.Object, p2: java.util.function.BiFunction): java.lang.Object
public method put(p0: java.lang.Object, p1: java.lang.Object): java.lang.Object
public method putAll(p0: java.util.Map): void
public method putIfAbsent(p0: java.lang.Object, p1: java.lang.Object): java.lang.Object
public method remove(p0: java.lang.Object): java.lang.Object
public method remove(p0: java.lang.Object, p1: java.lang.Object): boolean
public method replace(p0: java.lang.Object, p1: java.lang.Object): java.lang.Object
public method replace(p0: java.lang.Object, p1: java.lang.Object, p2: java.lang.Object): boolean
public method replaceAll(p0: java.util.function.BiFunction): void
public bridge final method size(): int
public bridge final method values(): java.util.Collection
}
@kotlin.Metadata
public abstract class AMap2 {
// source: 'specialBridgeForGet.kt'
public method <init>(@org.jetbrains.annotations.NotNull p0: java.util.Map): void
public bridge final method containsKey(p0: java.lang.Object): boolean
public bridge method containsKey(p0: java.lang.String): boolean
public bridge method containsValue(p0: Value2): boolean
public bridge final method containsValue(p0: java.lang.Object): boolean
public bridge final method get(p0: java.lang.Object): java.lang.Object
public bridge method get(p0: java.lang.String): Value2
public bridge final method getOrDefault(p0: java.lang.Object, p1: java.lang.Object): java.lang.Object
public bridge method getOrDefault(p0: java.lang.String, p1: Value2): Value2
}
@kotlin.Metadata
public final class C {
// source: 'specialBridgeForGet.kt'
private final @org.jetbrains.annotations.NotNull field value: java.lang.String
public method <init>(@org.jetbrains.annotations.NotNull p0: java.lang.String): void
public final @org.jetbrains.annotations.NotNull method getValue(): java.lang.String
}
@kotlin.Metadata
public final class Map3 {
// source: 'specialBridgeForGet.kt'
public method <init>(@org.jetbrains.annotations.NotNull p0: java.util.Map): void
}
@kotlin.Metadata
public interface Value2 {
// source: 'specialBridgeForGet.kt'
}
@@ -0,0 +1,70 @@
@kotlin.Metadata
public abstract class AMap1 {
// source: 'specialBridgeForGet.kt'
private final @org.jetbrains.annotations.NotNull field m: java.util.Map
public method <init>(@org.jetbrains.annotations.NotNull p0: java.util.Map): void
public method clear(): void
public method compute(p0: java.lang.Object, p1: java.util.function.BiFunction): java.lang.Object
public method computeIfAbsent(p0: java.lang.Object, p1: java.util.function.Function): java.lang.Object
public method computeIfPresent(p0: java.lang.Object, p1: java.util.function.BiFunction): java.lang.Object
public method containsKey(p0: java.lang.Object): boolean
public method containsValue(p0: java.lang.Object): boolean
public bridge final method entrySet(): java.util.Set
public @org.jetbrains.annotations.Nullable method get(p0: java.lang.Object): java.lang.Object
public @org.jetbrains.annotations.NotNull method getEntries(): java.util.Set
public @org.jetbrains.annotations.NotNull method getKeys(): java.util.Set
public method getSize(): int
public @org.jetbrains.annotations.NotNull method getValues(): java.util.Collection
public method isEmpty(): boolean
public bridge final method keySet(): java.util.Set
public method merge(p0: java.lang.Object, p1: java.lang.Object, p2: java.util.function.BiFunction): java.lang.Object
public method put(p0: java.lang.Object, p1: java.lang.Object): java.lang.Object
public method putAll(p0: java.util.Map): void
public method putIfAbsent(p0: java.lang.Object, p1: java.lang.Object): java.lang.Object
public method remove(p0: java.lang.Object): java.lang.Object
public method remove(p0: java.lang.Object, p1: java.lang.Object): boolean
public method replace(p0: java.lang.Object, p1: java.lang.Object): java.lang.Object
public method replace(p0: java.lang.Object, p1: java.lang.Object, p2: java.lang.Object): boolean
public method replaceAll(p0: java.util.function.BiFunction): void
public bridge final method size(): int
public bridge final method values(): java.util.Collection
}
@kotlin.Metadata
public abstract class AMap2 {
// source: 'specialBridgeForGet.kt'
public method <init>(@org.jetbrains.annotations.NotNull p0: java.util.Map): void
public bridge final method containsKey(p0: java.lang.Object): boolean
public bridge method containsKey(p0: java.lang.String): boolean
public bridge method containsValue(p0: Value2): boolean
public bridge final method containsValue(p0: java.lang.Object): boolean
public bridge final method get(p0: java.lang.Object): Value2
public synthetic bridge final method get(p0: java.lang.Object): java.lang.Object
public bridge method get(p0: java.lang.String): Value2
public bridge final method getOrDefault(p0: java.lang.Object, p1: Value2): Value2
public synthetic bridge final method getOrDefault(p0: java.lang.Object, p1: java.lang.Object): java.lang.Object
public bridge method getOrDefault(p0: java.lang.String, p1: Value2): Value2
}
@kotlin.Metadata
public final class C {
// source: 'specialBridgeForGet.kt'
private final @org.jetbrains.annotations.NotNull field value: java.lang.String
public method <init>(@org.jetbrains.annotations.NotNull p0: java.lang.String): void
public final @org.jetbrains.annotations.NotNull method getValue(): java.lang.String
}
@kotlin.Metadata
public final class Map3 {
// source: 'specialBridgeForGet.kt'
public method <init>(@org.jetbrains.annotations.NotNull p0: java.util.Map): void
public bridge final method get(p0: java.lang.Object): C
public bridge method get(p0: java.lang.String): C
public bridge final method getOrDefault(p0: java.lang.Object, p1: C): C
public bridge method getOrDefault(p0: java.lang.String, p1: C): C
}
@kotlin.Metadata
public interface Value2 {
// source: 'specialBridgeForGet.kt'
}