JVM_IR KT-48945 generate special bridge with unsubstituted signature
This commit is contained in:
committed by
TeamCityServer
parent
4c3404888a
commit
30ceb49442
+24
@@ -6556,6 +6556,30 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT
|
||||
runTest("compiler/testData/codegen/box/collections/kt44233.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt48945.kt")
|
||||
public void testKt48945() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/collections/kt48945.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt48945a.kt")
|
||||
public void testKt48945a() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/collections/kt48945a.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt48945b.kt")
|
||||
public void testKt48945b() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/collections/kt48945b.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt48945c.kt")
|
||||
public void testKt48945c() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/collections/kt48945c.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("mutableList.kt")
|
||||
public void testMutableList() throws Exception {
|
||||
|
||||
+4
-3
@@ -24,6 +24,7 @@ data class SpecialMethodWithDefaultInfo(
|
||||
val defaultValueGenerator: (IrSimpleFunction) -> IrExpression,
|
||||
val argumentsToCheck: Int,
|
||||
val needsGenericSignature: Boolean = false,
|
||||
val needsUnsubstitutedBridge: Boolean = false
|
||||
)
|
||||
|
||||
class BuiltInWithDifferentJvmName(
|
||||
@@ -78,11 +79,11 @@ class SpecialBridgeMethods(val context: CommonBackendContext) {
|
||||
makeDescription(StandardNames.FqNames.list, "lastIndexOf", 1) to
|
||||
SpecialMethodWithDefaultInfo(::constMinusOne, 1),
|
||||
makeDescription(StandardNames.FqNames.map, "getOrDefault", 2) to
|
||||
SpecialMethodWithDefaultInfo(::getSecondArg, 1, needsGenericSignature = true),
|
||||
SpecialMethodWithDefaultInfo(::getSecondArg, 1, needsGenericSignature = true, needsUnsubstitutedBridge = true),
|
||||
makeDescription(StandardNames.FqNames.map, "get", 1) to
|
||||
SpecialMethodWithDefaultInfo(::constNull, 1, needsGenericSignature = true),
|
||||
SpecialMethodWithDefaultInfo(::constNull, 1, needsGenericSignature = true, needsUnsubstitutedBridge = true),
|
||||
makeDescription(StandardNames.FqNames.mutableMap, "remove", 1) to
|
||||
SpecialMethodWithDefaultInfo(::constNull, 1, needsGenericSignature = true)
|
||||
SpecialMethodWithDefaultInfo(::constNull, 1, needsGenericSignature = true, needsUnsubstitutedBridge = true)
|
||||
)
|
||||
|
||||
private val specialProperties = mapOf(
|
||||
|
||||
+26
-5
@@ -265,18 +265,35 @@ internal class BridgeLowering(val context: JvmBackendContext) : FileLoweringPass
|
||||
irClass.addSpecialBridge(superBridge, superTarget)
|
||||
}
|
||||
}
|
||||
else -> irFunction
|
||||
else -> {
|
||||
irFunction
|
||||
}
|
||||
}
|
||||
|
||||
blacklist += bridgeTarget.jvmMethod
|
||||
}
|
||||
|
||||
if (irClass.functions.any { !it.isFakeOverride && it.name == irFunction.name && specialBridge.signature == it.jvmMethod }) {
|
||||
return irFunction
|
||||
// Add special bridge with unsubstituted signature (as generated by old JVM back-end) if required.
|
||||
// According to KT-40277 we generate special bridges for 'get', 'getOrDefault', and 'remove' with substituted return type.
|
||||
// However, this introduces performance regressions and changes in behavior if cases like KT-48945
|
||||
// (where a Kotlin class implements a read-only collection interface and extends a Java collection class).
|
||||
val unsubstitutedSpecialBridge = specialBridge.unsubstitutedSpecialBridge
|
||||
if (unsubstitutedSpecialBridge != null &&
|
||||
irClass.functions.none { it.isClashingWithPotentialBridge(irFunction.name, unsubstitutedSpecialBridge.signature) }
|
||||
) {
|
||||
blacklist += unsubstitutedSpecialBridge.signature
|
||||
// TODO what should be the special bridge target if we CAN NOT add a substituted special bridge
|
||||
// (below, clashes with existing method),
|
||||
// but CAN add an unsubstituted special bridge (here)?
|
||||
irClass.addSpecialBridge(unsubstitutedSpecialBridge, bridgeTarget)
|
||||
}
|
||||
|
||||
blacklist += specialBridge.signature
|
||||
return irClass.addSpecialBridge(specialBridge, bridgeTarget)
|
||||
if (irClass.functions.none { it.isClashingWithPotentialBridge(irFunction.name, specialBridge.signature) }) {
|
||||
blacklist += specialBridge.signature
|
||||
return irClass.addSpecialBridge(specialBridge, bridgeTarget)
|
||||
}
|
||||
|
||||
return irFunction
|
||||
}
|
||||
|
||||
val specialBridgeTarget = getSpecialBridgeTargetAddingExtraBridges()
|
||||
@@ -339,6 +356,10 @@ internal class BridgeLowering(val context: JvmBackendContext) : FileLoweringPass
|
||||
.forEach { irClass.addBridge(it, bridgeTarget) }
|
||||
}
|
||||
|
||||
private fun IrSimpleFunction.isClashingWithPotentialBridge(name: Name, signature: Method): Boolean =
|
||||
(!this.isFakeOverride || this.modality == Modality.FINAL) && this.name == name && this.jvmMethod == signature
|
||||
|
||||
|
||||
// Returns the special bridge overridden by the current methods if it exists.
|
||||
private val IrSimpleFunction.specialBridgeOrNull: SpecialBridge?
|
||||
get() = context.bridgeLoweringCache.computeSpecialBridge(this)
|
||||
|
||||
@@ -42,4 +42,9 @@ data class SpecialBridge(
|
||||
val isFinal: Boolean = true,
|
||||
val isSynthetic: Boolean = false,
|
||||
val isOverriding: Boolean = true,
|
||||
// 'true' if we also should produce a synthetic bridge with unsubstituted signature.
|
||||
// NB this is passed down the hierarchy to the point where 'unsubstitutedSpecialBridge' is created,
|
||||
// see BridgeLoweringCache::computeSpecialBridge
|
||||
val needsUnsubstitutedBridge: Boolean = false,
|
||||
val unsubstitutedSpecialBridge: SpecialBridge? = null
|
||||
)
|
||||
|
||||
+18
-3
@@ -54,7 +54,10 @@ class BridgeLoweringCache(private val context: JvmBackendContext) {
|
||||
val specialMethodInfo = specialBridgeMethods.getSpecialMethodInfo(function)
|
||||
if (specialMethodInfo != null)
|
||||
return SpecialBridge(
|
||||
function, computeJvmMethod(function), specialMethodInfo.needsGenericSignature, methodInfo = specialMethodInfo
|
||||
overridden = function, signature = computeJvmMethod(function),
|
||||
needsGenericSignature = specialMethodInfo.needsGenericSignature,
|
||||
methodInfo = specialMethodInfo,
|
||||
needsUnsubstitutedBridge = specialMethodInfo.needsUnsubstitutedBridge
|
||||
)
|
||||
|
||||
val specialBuiltInInfo = specialBridgeMethods.getBuiltInWithDifferentJvmName(function)
|
||||
@@ -87,10 +90,22 @@ class BridgeLoweringCache(private val context: JvmBackendContext) {
|
||||
parent = function.parent
|
||||
}
|
||||
|
||||
val substitutedOverrideSignature = computeJvmMethod(substitutedOverride)
|
||||
val unsubstitutedSpecialBridge =
|
||||
when {
|
||||
specialBridge.unsubstitutedSpecialBridge != null ->
|
||||
specialBridge.unsubstitutedSpecialBridge
|
||||
specialBridge.needsUnsubstitutedBridge && specialBridge.signature != substitutedOverrideSignature ->
|
||||
specialBridge.copy(isSynthetic = true)
|
||||
else ->
|
||||
null
|
||||
}
|
||||
|
||||
return specialBridge.copy(
|
||||
signature = computeJvmMethod(substitutedOverride),
|
||||
signature = substitutedOverrideSignature,
|
||||
substitutedParameterTypes = substitutedParameterTypes,
|
||||
substitutedReturnType = function.returnType
|
||||
substitutedReturnType = function.returnType,
|
||||
unsubstitutedSpecialBridge = unsubstitutedSpecialBridge
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// IGNORE_BACKEND: ANDROID
|
||||
// ^ NSME: java.util.AbstractMap.remove
|
||||
// FULL_JDK
|
||||
|
||||
class Test : Map<String, String>, java.util.AbstractMap<String, String>() {
|
||||
override val entries: MutableSet<MutableMap.MutableEntry<String, String>>
|
||||
get() = throw Exception()
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
Test().remove(null, "")
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// IGNORE_BACKEND: ANDROID
|
||||
// ^ NSME: java.util.AbstractMap.remove
|
||||
// FULL_JDK
|
||||
interface MSS : Map<String, String>
|
||||
|
||||
class Test : MSS, java.util.AbstractMap<String, String>() {
|
||||
override val entries: MutableSet<MutableMap.MutableEntry<String, String>>
|
||||
get() = throw Exception()
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
Test().remove(null, "")
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// IGNORE_BACKEND: ANDROID
|
||||
// ^ NSME: java.util.AbstractMap.remove
|
||||
// FULL_JDK
|
||||
|
||||
// FILE: kt48945b.kt
|
||||
interface MSS : Map<String, String>
|
||||
|
||||
class Test : MSS, JASM<String>() {
|
||||
override val entries: MutableSet<MutableMap.MutableEntry<String, String>>
|
||||
get() = throw Exception()
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
Test().remove(null, "")
|
||||
return "OK"
|
||||
}
|
||||
|
||||
// FILE: JASM.java
|
||||
public abstract class JASM<V> extends java.util.AbstractMap<String, V> {
|
||||
@Override
|
||||
public V get(Object key) {
|
||||
return super.get(key);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// IGNORE_BACKEND: ANDROID
|
||||
// ^ NSME: java.util.AbstractMap.remove
|
||||
// FULL_JDK
|
||||
|
||||
// FILE: kt48945b.kt
|
||||
interface MSS : Map<String, String>
|
||||
|
||||
class Test : MSS, JASM<String>() {
|
||||
override val entries: MutableSet<MutableMap.MutableEntry<String, String>>
|
||||
get() = throw Exception()
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
Test().remove(null, "")
|
||||
return "OK"
|
||||
}
|
||||
|
||||
// FILE: JASM.java
|
||||
public abstract class JASM<V> extends java.util.AbstractMap<String, V> {
|
||||
}
|
||||
Vendored
+2
-2
@@ -9,14 +9,14 @@ public abstract class MindMap {
|
||||
public bridge final method entrySet(): java.util.Set
|
||||
public final @org.jetbrains.annotations.Nullable method get(@org.jetbrains.annotations.Nullable p0: java.lang.Object): java.lang.String
|
||||
public abstract method get(p0: int): java.lang.String
|
||||
public synthetic bridge method get(p0: java.lang.Object): java.lang.Object
|
||||
public synthetic bridge final method get(p0: java.lang.Object): java.lang.Object
|
||||
public abstract method getEntries(): java.util.Set
|
||||
public abstract method getKeys(): java.util.Set
|
||||
public abstract method getSize(): int
|
||||
public abstract method getValues(): java.util.Collection
|
||||
public bridge final method keySet(): java.util.Set
|
||||
public abstract method remove(p0: int): java.lang.String
|
||||
public synthetic bridge method remove(p0: java.lang.Object): java.lang.Object
|
||||
public synthetic bridge final method remove(p0: java.lang.Object): java.lang.Object
|
||||
public bridge final method remove(p0: java.lang.Object): java.lang.String
|
||||
public bridge final method size(): int
|
||||
public bridge final method values(): java.util.Collection
|
||||
|
||||
compiler/testData/codegen/bytecodeListing/collectionStubs/abstractStubSignatures/byteShortMap_ir.txt
Vendored
+1
-1
@@ -12,7 +12,7 @@ public abstract class<Ljava/lang/Object;Ljava/util/Map<Ljava/lang/Byte;Ljava/lan
|
||||
public bridge final <null> method containsValue(p0: java.lang.Object): boolean
|
||||
public abstract <null> method containsValue(p0: short): boolean
|
||||
public abstract <null> method get(p0: byte): java.lang.Short
|
||||
public synthetic bridge <null> method get(p0: java.lang.Object): java.lang.Object
|
||||
public synthetic bridge final <null> method get(p0: java.lang.Object): java.lang.Object
|
||||
public bridge final <null> method get(p0: java.lang.Object): java.lang.Short
|
||||
public abstract <null> method getEntries(): java.util.Set
|
||||
public abstract <null> method getKeys(): java.util.Set
|
||||
|
||||
+2
-2
@@ -10,14 +10,14 @@ public abstract class<Ljava/lang/Object;Ljava/util/Map<Ljava/lang/Byte;Ljava/lan
|
||||
public bridge final <null> method containsValue(p0: java.lang.Object): boolean
|
||||
public abstract <null> method containsValue(p0: short): boolean
|
||||
public abstract <null> method get(p0: byte): java.lang.Short
|
||||
public synthetic bridge <null> method get(p0: java.lang.Object): java.lang.Object
|
||||
public synthetic bridge final <null> method get(p0: java.lang.Object): java.lang.Object
|
||||
public bridge final <null> method get(p0: java.lang.Object): java.lang.Short
|
||||
public abstract <null> method getEntries(): java.util.Set
|
||||
public abstract <null> method getKeys(): java.util.Set
|
||||
public abstract <null> method getSize(): int
|
||||
public abstract <null> method getValues(): java.util.Collection
|
||||
public abstract <null> method remove(p0: byte): java.lang.Short
|
||||
public synthetic bridge <null> method remove(p0: java.lang.Object): java.lang.Object
|
||||
public synthetic bridge final <null> method remove(p0: java.lang.Object): java.lang.Object
|
||||
public bridge final <null> method remove(p0: java.lang.Object): java.lang.Short
|
||||
public bridge final <null> method size(): int
|
||||
}
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ public abstract class<Ljava/lang/Object;Ljava/util/Map<Ljava/lang/Number;Ljava/l
|
||||
public bridge final <null> method containsValue(p0: java.lang.Object): boolean
|
||||
public abstract <null> method containsValue(p0: java.lang.String): boolean
|
||||
public abstract <null> method get(p0: java.lang.Number): java.lang.String
|
||||
public synthetic bridge <null> method get(p0: java.lang.Object): java.lang.Object
|
||||
public synthetic bridge final <null> method get(p0: java.lang.Object): java.lang.Object
|
||||
public bridge final <null> method get(p0: java.lang.Object): java.lang.String
|
||||
public abstract <null> method getEntries(): java.util.Set
|
||||
public abstract <null> method getKeys(): java.util.Set
|
||||
|
||||
+2
-2
@@ -10,14 +10,14 @@ public abstract class<Ljava/lang/Object;Ljava/util/Map<Ljava/lang/Number;Ljava/l
|
||||
public bridge final <null> method containsValue(p0: java.lang.Object): boolean
|
||||
public abstract <null> method containsValue(p0: java.lang.String): boolean
|
||||
public abstract <null> method get(p0: java.lang.Number): java.lang.String
|
||||
public synthetic bridge <null> method get(p0: java.lang.Object): java.lang.Object
|
||||
public synthetic bridge final <null> method get(p0: java.lang.Object): java.lang.Object
|
||||
public bridge final <null> method get(p0: java.lang.Object): java.lang.String
|
||||
public abstract <null> method getEntries(): java.util.Set
|
||||
public abstract <null> method getKeys(): java.util.Set
|
||||
public abstract <null> method getSize(): int
|
||||
public abstract <null> method getValues(): java.util.Collection
|
||||
public abstract <null> method remove(p0: java.lang.Number): java.lang.String
|
||||
public synthetic bridge <null> method remove(p0: java.lang.Object): java.lang.Object
|
||||
public synthetic bridge final <null> method remove(p0: java.lang.Object): java.lang.Object
|
||||
public bridge final <null> method remove(p0: java.lang.Object): java.lang.String
|
||||
public bridge final <null> method size(): int
|
||||
}
|
||||
|
||||
+1
-1
@@ -25,6 +25,6 @@ public abstract class<LGenericMap<Ljava/lang/Number;Ljava/lang/String;>;> Numbe
|
||||
public bridge final <null> method containsValue(p0: java.lang.Object): boolean
|
||||
public abstract <null> method containsValue(p0: java.lang.String): boolean
|
||||
public abstract <null> method get(p0: java.lang.Number): java.lang.String
|
||||
public synthetic bridge <null> method get(p0: java.lang.Object): java.lang.Object
|
||||
public synthetic bridge final <null> method get(p0: java.lang.Object): java.lang.Object
|
||||
public bridge final <null> method get(p0: java.lang.Object): java.lang.String
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -169,7 +169,7 @@ public final class DStringMap {
|
||||
public bridge final method entrySet(): java.util.Set
|
||||
public @org.jetbrains.annotations.Nullable method get(@org.jetbrains.annotations.NotNull p0: java.lang.String): java.lang.Number
|
||||
public bridge final method get(p0: java.lang.Object): java.lang.Number
|
||||
public synthetic bridge method get(p0: java.lang.Object): java.lang.Object
|
||||
public synthetic bridge final 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
|
||||
|
||||
+1
-1
@@ -158,7 +158,7 @@ public final class DStringMap {
|
||||
public bridge final method entrySet(): java.util.Set
|
||||
public @org.jetbrains.annotations.Nullable method get(@org.jetbrains.annotations.NotNull p0: java.lang.String): java.lang.Number
|
||||
public bridge final method get(p0: java.lang.Object): java.lang.Number
|
||||
public synthetic bridge method get(p0: java.lang.Object): java.lang.Object
|
||||
public synthetic bridge final 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
|
||||
|
||||
Vendored
+1
-1
@@ -169,7 +169,7 @@ public final class DIntMap {
|
||||
public bridge final method entrySet(): java.util.Set
|
||||
public @org.jetbrains.annotations.Nullable method get(p0: int): java.lang.Double
|
||||
public bridge final method get(p0: java.lang.Object): java.lang.Double
|
||||
public synthetic bridge method get(p0: java.lang.Object): java.lang.Object
|
||||
public synthetic bridge final 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
|
||||
|
||||
+1
-1
@@ -158,7 +158,7 @@ public final class DIntMap {
|
||||
public bridge final method entrySet(): java.util.Set
|
||||
public @org.jetbrains.annotations.Nullable method get(p0: int): java.lang.Double
|
||||
public bridge final method get(p0: java.lang.Object): java.lang.Double
|
||||
public synthetic bridge method get(p0: java.lang.Object): java.lang.Object
|
||||
public synthetic bridge final 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
|
||||
|
||||
+1
-1
@@ -99,7 +99,7 @@ public abstract class AbstractMap {
|
||||
public bridge final method containsValue(p0: java.lang.Object): boolean
|
||||
public bridge final method entrySet(): java.util.Set
|
||||
public bridge final method get(p0: java.lang.Object): java.lang.Number
|
||||
public synthetic bridge method get(p0: java.lang.Object): java.lang.Object
|
||||
public synthetic bridge final method get(p0: java.lang.Object): java.lang.Object
|
||||
public abstract method get(p0: java.lang.String): java.lang.Number
|
||||
public abstract method getEntries(): java.util.Set
|
||||
public abstract method getKeys(): java.util.Set
|
||||
|
||||
+3
@@ -7,8 +7,10 @@ public abstract class AMMapSD {
|
||||
public bridge method containsValue(p0: double): boolean
|
||||
public bridge final method containsValue(p0: java.lang.Object): boolean
|
||||
public bridge final method get(p0: java.lang.Object): java.lang.Double
|
||||
public synthetic bridge final method get(p0: java.lang.Object): java.lang.Object
|
||||
public bridge method get(p0: java.lang.String): java.lang.Double
|
||||
public bridge final method remove(p0: java.lang.Object): java.lang.Double
|
||||
public synthetic bridge final method remove(p0: java.lang.Object): java.lang.Object
|
||||
public bridge method remove(p0: java.lang.String): java.lang.Double
|
||||
}
|
||||
|
||||
@@ -21,5 +23,6 @@ public abstract class AMapSD {
|
||||
public bridge method containsValue(p0: double): boolean
|
||||
public bridge final method containsValue(p0: java.lang.Object): boolean
|
||||
public bridge final method get(p0: java.lang.Object): java.lang.Double
|
||||
public synthetic bridge final method get(p0: java.lang.Object): java.lang.Object
|
||||
public bridge method get(p0: java.lang.String): java.lang.Double
|
||||
}
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ public abstract class IntIntMap {
|
||||
public bridge final method entrySet(): java.util.Set
|
||||
public abstract method get(p0: int): java.lang.Integer
|
||||
public bridge final method get(p0: java.lang.Object): java.lang.Integer
|
||||
public synthetic bridge method get(p0: java.lang.Object): java.lang.Object
|
||||
public synthetic bridge final method get(p0: java.lang.Object): java.lang.Object
|
||||
public abstract method getEntries(): java.util.Set
|
||||
public abstract method getKeys(): java.util.Set
|
||||
public abstract method getSize(): int
|
||||
|
||||
Vendored
+2
-2
@@ -50,7 +50,7 @@ public final class InlineMap {
|
||||
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): IV
|
||||
public synthetic bridge method get(p0: java.lang.Object): java.lang.Object
|
||||
public synthetic bridge final method get(p0: java.lang.Object): java.lang.Object
|
||||
public method get-qgyy0Jc(p0: int): IV
|
||||
public static method get-qgyy0Jc(p0: java.util.Map, p1: int): IV
|
||||
public method getEntries(): java.util.Set
|
||||
@@ -70,7 +70,7 @@ public final class InlineMap {
|
||||
public method put-t80dRTo(p0: int, p1: double): IV
|
||||
public method putAll(p0: java.util.Map): void
|
||||
public bridge final method remove(p0: java.lang.Object): IV
|
||||
public synthetic bridge method remove(p0: java.lang.Object): java.lang.Object
|
||||
public synthetic bridge final method remove(p0: java.lang.Object): java.lang.Object
|
||||
public method remove-TbaaF6U(p0: java.lang.Object): IV
|
||||
public synthetic bridge method size(): int
|
||||
public method toString(): java.lang.String
|
||||
|
||||
+2
-2
@@ -51,7 +51,7 @@ public final class InlineMutableMap {
|
||||
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): IV
|
||||
public synthetic bridge method get(p0: java.lang.Object): java.lang.Object
|
||||
public synthetic bridge final method get(p0: java.lang.Object): java.lang.Object
|
||||
public method get-qgyy0Jc(p0: int): IV
|
||||
public static method get-qgyy0Jc(p0: java.util.Map, p1: int): IV
|
||||
public method getEntries(): java.util.Set
|
||||
@@ -73,7 +73,7 @@ public final class InlineMutableMap {
|
||||
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): IV
|
||||
public synthetic bridge method remove(p0: java.lang.Object): java.lang.Object
|
||||
public synthetic bridge final method remove(p0: java.lang.Object): java.lang.Object
|
||||
public method remove-qgyy0Jc(p0: int): IV
|
||||
public static method remove-qgyy0Jc(p0: java.util.Map, p1: int): IV
|
||||
public synthetic bridge method size(): int
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
// WITH_STDLIB
|
||||
|
||||
// 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()
|
||||
@@ -7,6 +7,7 @@ public class A {
|
||||
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 synthetic bridge final method get(p0: java.lang.Object): java.lang.Object
|
||||
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
|
||||
@@ -14,6 +15,7 @@ public class A {
|
||||
public bridge method getSize(): int
|
||||
public bridge method getValues(): java.util.Collection
|
||||
public bridge final method keySet(): java.util.Set
|
||||
public synthetic bridge final method remove(p0: java.lang.Object): java.lang.Object
|
||||
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
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// FULL_JDK
|
||||
|
||||
// FILE: kt48945.kt
|
||||
interface MSS : Map<String, String>
|
||||
interface GM<K, V> : Map<K, V>
|
||||
interface SMSS : GM<String, String>
|
||||
|
||||
class Test_MapStringString_AbstractMapStringString :
|
||||
Map<String, String>, java.util.AbstractMap<String, String>()
|
||||
{
|
||||
override val entries: MutableSet<MutableMap.MutableEntry<String, String>>
|
||||
get() = TODO()
|
||||
}
|
||||
|
||||
class Test_MapStringString_JMapFinalRemove :
|
||||
Map<String, String>, JMapFinalRemove()
|
||||
{
|
||||
override val entries: MutableSet<MutableMap.MutableEntry<String, String>>
|
||||
get() = TODO()
|
||||
}
|
||||
|
||||
class Test_MSS_AbstractMapStringString :
|
||||
MSS, java.util.AbstractMap<String, String>()
|
||||
{
|
||||
override val entries: MutableSet<MutableMap.MutableEntry<String, String>>
|
||||
get() = TODO()
|
||||
}
|
||||
|
||||
class Test_MSS_JMapFinalRemove :
|
||||
MSS, JMapFinalRemove()
|
||||
{
|
||||
override val entries: MutableSet<MutableMap.MutableEntry<String, String>>
|
||||
get() = TODO()
|
||||
}
|
||||
|
||||
class Test_GMStringString_AbstractMapStringString :
|
||||
GM<String, String>, java.util.AbstractMap<String, String>()
|
||||
{
|
||||
override val entries: MutableSet<MutableMap.MutableEntry<String, String>>
|
||||
get() = TODO()
|
||||
}
|
||||
|
||||
class Test_GMStringString_JMapFinalRemove :
|
||||
GM<String, String>, JMapFinalRemove()
|
||||
{
|
||||
override val entries: MutableSet<MutableMap.MutableEntry<String, String>>
|
||||
get() = TODO()
|
||||
}
|
||||
|
||||
class Test_SMSS_AbstractMapStringString :
|
||||
SMSS, java.util.AbstractMap<String, String>()
|
||||
{
|
||||
override val entries: MutableSet<MutableMap.MutableEntry<String, String>>
|
||||
get() = TODO()
|
||||
}
|
||||
|
||||
class Test_SMSS_JMapFinalRemove :
|
||||
SMSS, JMapFinalRemove()
|
||||
{
|
||||
override val entries: MutableSet<MutableMap.MutableEntry<String, String>>
|
||||
get() = TODO()
|
||||
}
|
||||
|
||||
// FILE: JMapFinalRemove.java
|
||||
import java.util.AbstractMap;
|
||||
|
||||
public abstract class JMapFinalRemove extends AbstractMap<String, String> {
|
||||
@Override
|
||||
public final String remove(Object key) {
|
||||
return super.remove(key);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,206 @@
|
||||
@kotlin.Metadata
|
||||
public interface GM {
|
||||
// source: 'kt48945.kt'
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public interface MSS {
|
||||
// source: 'kt48945.kt'
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public interface SMSS {
|
||||
// source: 'kt48945.kt'
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class Test_GMStringString_AbstractMapStringString {
|
||||
// source: 'kt48945.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 @org.jetbrains.annotations.NotNull 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 final method remove(p0: java.lang.Object, p1: java.lang.Object): boolean
|
||||
public bridge method remove(p0: java.lang.String): java.lang.String
|
||||
public bridge method remove(p0: java.lang.String, p1: java.lang.String): boolean
|
||||
public bridge final method size(): int
|
||||
public bridge final method values(): java.util.Collection
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class Test_GMStringString_JMapFinalRemove {
|
||||
// source: 'kt48945.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 @org.jetbrains.annotations.NotNull 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 final method remove(p0: java.lang.Object, p1: java.lang.Object): boolean
|
||||
public bridge method remove(p0: java.lang.String): java.lang.String
|
||||
public bridge method remove(p0: java.lang.String, p1: java.lang.String): boolean
|
||||
public bridge final method size(): int
|
||||
public bridge final method values(): java.util.Collection
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class Test_MSS_AbstractMapStringString {
|
||||
// source: 'kt48945.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 @org.jetbrains.annotations.NotNull 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 final method remove(p0: java.lang.Object, p1: java.lang.Object): boolean
|
||||
public bridge method remove(p0: java.lang.String): java.lang.String
|
||||
public bridge method remove(p0: java.lang.String, p1: java.lang.String): boolean
|
||||
public bridge final method size(): int
|
||||
public bridge final method values(): java.util.Collection
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class Test_MSS_JMapFinalRemove {
|
||||
// source: 'kt48945.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 @org.jetbrains.annotations.NotNull 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 final method remove(p0: java.lang.Object, p1: java.lang.Object): boolean
|
||||
public bridge method remove(p0: java.lang.String): java.lang.String
|
||||
public bridge method remove(p0: java.lang.String, p1: java.lang.String): boolean
|
||||
public bridge final method size(): int
|
||||
public bridge final method values(): java.util.Collection
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class Test_MapStringString_AbstractMapStringString {
|
||||
// source: 'kt48945.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 @org.jetbrains.annotations.NotNull 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 final method remove(p0: java.lang.Object, p1: java.lang.Object): boolean
|
||||
public bridge method remove(p0: java.lang.String): java.lang.String
|
||||
public bridge method remove(p0: java.lang.String, p1: java.lang.String): boolean
|
||||
public bridge final method size(): int
|
||||
public bridge final method values(): java.util.Collection
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class Test_MapStringString_JMapFinalRemove {
|
||||
// source: 'kt48945.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 @org.jetbrains.annotations.NotNull 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 final method remove(p0: java.lang.Object, p1: java.lang.Object): boolean
|
||||
public bridge method remove(p0: java.lang.String): java.lang.String
|
||||
public bridge method remove(p0: java.lang.String, p1: java.lang.String): boolean
|
||||
public bridge final method size(): int
|
||||
public bridge final method values(): java.util.Collection
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class Test_SMSS_AbstractMapStringString {
|
||||
// source: 'kt48945.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 @org.jetbrains.annotations.NotNull 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 final method remove(p0: java.lang.Object, p1: java.lang.Object): boolean
|
||||
public bridge method remove(p0: java.lang.String): java.lang.String
|
||||
public bridge method remove(p0: java.lang.String, p1: java.lang.String): boolean
|
||||
public bridge final method size(): int
|
||||
public bridge final method values(): java.util.Collection
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class Test_SMSS_JMapFinalRemove {
|
||||
// source: 'kt48945.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 @org.jetbrains.annotations.NotNull 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 final method remove(p0: java.lang.Object, p1: java.lang.Object): boolean
|
||||
public bridge method remove(p0: java.lang.String): java.lang.String
|
||||
public bridge method remove(p0: java.lang.String, p1: java.lang.String): boolean
|
||||
public bridge final method size(): int
|
||||
public bridge final method values(): java.util.Collection
|
||||
}
|
||||
@@ -0,0 +1,238 @@
|
||||
@kotlin.Metadata
|
||||
public interface GM {
|
||||
// source: 'kt48945.kt'
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public interface MSS {
|
||||
// source: 'kt48945.kt'
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public interface SMSS {
|
||||
// source: 'kt48945.kt'
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class Test_GMStringString_AbstractMapStringString {
|
||||
// source: 'kt48945.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 synthetic bridge final method get(p0: java.lang.Object): java.lang.Object
|
||||
public bridge final method get(p0: java.lang.Object): java.lang.String
|
||||
public bridge method get(p0: java.lang.String): java.lang.String
|
||||
public @org.jetbrains.annotations.NotNull method getEntries(): java.util.Set
|
||||
public bridge method getKeys(): java.util.Set
|
||||
public synthetic bridge final method getOrDefault(p0: java.lang.Object, p1: java.lang.Object): java.lang.Object
|
||||
public bridge final method getOrDefault(p0: java.lang.Object, p1: java.lang.String): java.lang.String
|
||||
public bridge method getOrDefault(p0: java.lang.String, p1: java.lang.String): java.lang.String
|
||||
public bridge method getSize(): int
|
||||
public bridge method getValues(): java.util.Collection
|
||||
public bridge final method keySet(): java.util.Set
|
||||
public synthetic bridge final method remove(p0: java.lang.Object): java.lang.Object
|
||||
public bridge final method remove(p0: java.lang.Object): java.lang.String
|
||||
public bridge final method remove(p0: java.lang.Object, p1: java.lang.Object): boolean
|
||||
public bridge method remove(p0: java.lang.String): java.lang.String
|
||||
public bridge method remove(p0: java.lang.String, p1: java.lang.String): boolean
|
||||
public bridge final method size(): int
|
||||
public bridge final method values(): java.util.Collection
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class Test_GMStringString_JMapFinalRemove {
|
||||
// source: 'kt48945.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 synthetic bridge final method get(p0: java.lang.Object): java.lang.Object
|
||||
public bridge final method get(p0: java.lang.Object): java.lang.String
|
||||
public bridge method get(p0: java.lang.String): java.lang.String
|
||||
public @org.jetbrains.annotations.NotNull method getEntries(): java.util.Set
|
||||
public bridge method getKeys(): java.util.Set
|
||||
public synthetic bridge final method getOrDefault(p0: java.lang.Object, p1: java.lang.Object): java.lang.Object
|
||||
public bridge final method getOrDefault(p0: java.lang.Object, p1: java.lang.String): java.lang.String
|
||||
public bridge method getOrDefault(p0: java.lang.String, p1: java.lang.String): java.lang.String
|
||||
public bridge method getSize(): int
|
||||
public bridge method getValues(): java.util.Collection
|
||||
public bridge final method keySet(): java.util.Set
|
||||
public synthetic bridge method remove(p0: java.lang.Object): java.lang.Object
|
||||
public bridge final method remove(p0: java.lang.Object, p1: java.lang.Object): boolean
|
||||
public bridge method remove(p0: java.lang.String, p1: java.lang.String): boolean
|
||||
public bridge final method size(): int
|
||||
public bridge final method values(): java.util.Collection
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class Test_MSS_AbstractMapStringString {
|
||||
// source: 'kt48945.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 synthetic bridge final method get(p0: java.lang.Object): java.lang.Object
|
||||
public bridge final method get(p0: java.lang.Object): java.lang.String
|
||||
public bridge method get(p0: java.lang.String): java.lang.String
|
||||
public @org.jetbrains.annotations.NotNull method getEntries(): java.util.Set
|
||||
public bridge method getKeys(): java.util.Set
|
||||
public synthetic bridge final method getOrDefault(p0: java.lang.Object, p1: java.lang.Object): java.lang.Object
|
||||
public bridge final method getOrDefault(p0: java.lang.Object, p1: java.lang.String): java.lang.String
|
||||
public bridge method getOrDefault(p0: java.lang.String, p1: java.lang.String): java.lang.String
|
||||
public bridge method getSize(): int
|
||||
public bridge method getValues(): java.util.Collection
|
||||
public bridge final method keySet(): java.util.Set
|
||||
public synthetic bridge final method remove(p0: java.lang.Object): java.lang.Object
|
||||
public bridge final method remove(p0: java.lang.Object): java.lang.String
|
||||
public bridge final method remove(p0: java.lang.Object, p1: java.lang.Object): boolean
|
||||
public bridge method remove(p0: java.lang.String): java.lang.String
|
||||
public bridge method remove(p0: java.lang.String, p1: java.lang.String): boolean
|
||||
public bridge final method size(): int
|
||||
public bridge final method values(): java.util.Collection
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class Test_MSS_JMapFinalRemove {
|
||||
// source: 'kt48945.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 synthetic bridge final method get(p0: java.lang.Object): java.lang.Object
|
||||
public bridge final method get(p0: java.lang.Object): java.lang.String
|
||||
public bridge method get(p0: java.lang.String): java.lang.String
|
||||
public @org.jetbrains.annotations.NotNull method getEntries(): java.util.Set
|
||||
public bridge method getKeys(): java.util.Set
|
||||
public synthetic bridge final method getOrDefault(p0: java.lang.Object, p1: java.lang.Object): java.lang.Object
|
||||
public bridge final method getOrDefault(p0: java.lang.Object, p1: java.lang.String): java.lang.String
|
||||
public bridge method getOrDefault(p0: java.lang.String, p1: java.lang.String): java.lang.String
|
||||
public bridge method getSize(): int
|
||||
public bridge method getValues(): java.util.Collection
|
||||
public bridge final method keySet(): java.util.Set
|
||||
public synthetic bridge method remove(p0: java.lang.Object): java.lang.Object
|
||||
public bridge final method remove(p0: java.lang.Object, p1: java.lang.Object): boolean
|
||||
public bridge method remove(p0: java.lang.String, p1: java.lang.String): boolean
|
||||
public bridge final method size(): int
|
||||
public bridge final method values(): java.util.Collection
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class Test_MapStringString_AbstractMapStringString {
|
||||
// source: 'kt48945.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 synthetic bridge final method get(p0: java.lang.Object): java.lang.Object
|
||||
public bridge final method get(p0: java.lang.Object): java.lang.String
|
||||
public bridge method get(p0: java.lang.String): java.lang.String
|
||||
public @org.jetbrains.annotations.NotNull method getEntries(): java.util.Set
|
||||
public bridge method getKeys(): java.util.Set
|
||||
public synthetic bridge final method getOrDefault(p0: java.lang.Object, p1: java.lang.Object): java.lang.Object
|
||||
public bridge final method getOrDefault(p0: java.lang.Object, p1: java.lang.String): java.lang.String
|
||||
public bridge method getOrDefault(p0: java.lang.String, p1: java.lang.String): java.lang.String
|
||||
public bridge method getSize(): int
|
||||
public bridge method getValues(): java.util.Collection
|
||||
public bridge final method keySet(): java.util.Set
|
||||
public synthetic bridge final method remove(p0: java.lang.Object): java.lang.Object
|
||||
public bridge final method remove(p0: java.lang.Object): java.lang.String
|
||||
public bridge final method remove(p0: java.lang.Object, p1: java.lang.Object): boolean
|
||||
public bridge method remove(p0: java.lang.String): java.lang.String
|
||||
public bridge method remove(p0: java.lang.String, p1: java.lang.String): boolean
|
||||
public bridge final method size(): int
|
||||
public bridge final method values(): java.util.Collection
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class Test_MapStringString_JMapFinalRemove {
|
||||
// source: 'kt48945.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 synthetic bridge final method get(p0: java.lang.Object): java.lang.Object
|
||||
public bridge final method get(p0: java.lang.Object): java.lang.String
|
||||
public bridge method get(p0: java.lang.String): java.lang.String
|
||||
public @org.jetbrains.annotations.NotNull method getEntries(): java.util.Set
|
||||
public bridge method getKeys(): java.util.Set
|
||||
public synthetic bridge final method getOrDefault(p0: java.lang.Object, p1: java.lang.Object): java.lang.Object
|
||||
public bridge final method getOrDefault(p0: java.lang.Object, p1: java.lang.String): java.lang.String
|
||||
public bridge method getOrDefault(p0: java.lang.String, p1: java.lang.String): java.lang.String
|
||||
public bridge method getSize(): int
|
||||
public bridge method getValues(): java.util.Collection
|
||||
public bridge final method keySet(): java.util.Set
|
||||
public synthetic bridge method remove(p0: java.lang.Object): java.lang.Object
|
||||
public bridge final method remove(p0: java.lang.Object, p1: java.lang.Object): boolean
|
||||
public bridge method remove(p0: java.lang.String, p1: java.lang.String): boolean
|
||||
public bridge final method size(): int
|
||||
public bridge final method values(): java.util.Collection
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class Test_SMSS_AbstractMapStringString {
|
||||
// source: 'kt48945.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 synthetic bridge final method get(p0: java.lang.Object): java.lang.Object
|
||||
public bridge final method get(p0: java.lang.Object): java.lang.String
|
||||
public bridge method get(p0: java.lang.String): java.lang.String
|
||||
public @org.jetbrains.annotations.NotNull method getEntries(): java.util.Set
|
||||
public bridge method getKeys(): java.util.Set
|
||||
public synthetic bridge final method getOrDefault(p0: java.lang.Object, p1: java.lang.Object): java.lang.Object
|
||||
public bridge final method getOrDefault(p0: java.lang.Object, p1: java.lang.String): java.lang.String
|
||||
public bridge method getOrDefault(p0: java.lang.String, p1: java.lang.String): java.lang.String
|
||||
public bridge method getSize(): int
|
||||
public bridge method getValues(): java.util.Collection
|
||||
public bridge final method keySet(): java.util.Set
|
||||
public synthetic bridge final method remove(p0: java.lang.Object): java.lang.Object
|
||||
public bridge final method remove(p0: java.lang.Object): java.lang.String
|
||||
public bridge final method remove(p0: java.lang.Object, p1: java.lang.Object): boolean
|
||||
public bridge method remove(p0: java.lang.String): java.lang.String
|
||||
public bridge method remove(p0: java.lang.String, p1: java.lang.String): boolean
|
||||
public bridge final method size(): int
|
||||
public bridge final method values(): java.util.Collection
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class Test_SMSS_JMapFinalRemove {
|
||||
// source: 'kt48945.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 synthetic bridge final method get(p0: java.lang.Object): java.lang.Object
|
||||
public bridge final method get(p0: java.lang.Object): java.lang.String
|
||||
public bridge method get(p0: java.lang.String): java.lang.String
|
||||
public @org.jetbrains.annotations.NotNull method getEntries(): java.util.Set
|
||||
public bridge method getKeys(): java.util.Set
|
||||
public synthetic bridge final method getOrDefault(p0: java.lang.Object, p1: java.lang.Object): java.lang.Object
|
||||
public bridge final method getOrDefault(p0: java.lang.Object, p1: java.lang.String): java.lang.String
|
||||
public bridge method getOrDefault(p0: java.lang.String, p1: java.lang.String): java.lang.String
|
||||
public bridge method getSize(): int
|
||||
public bridge method getValues(): java.util.Collection
|
||||
public bridge final method keySet(): java.util.Set
|
||||
public synthetic bridge method remove(p0: java.lang.Object): java.lang.Object
|
||||
public bridge final method remove(p0: java.lang.Object, p1: java.lang.Object): boolean
|
||||
public bridge method remove(p0: java.lang.String, p1: java.lang.String): boolean
|
||||
public bridge final method size(): int
|
||||
public bridge final method values(): java.util.Collection
|
||||
}
|
||||
+4
-4
@@ -15,14 +15,14 @@ public abstract class<Ljava/lang/Object;Ljava/util/Map<Ljava/lang/String;Ljava/l
|
||||
public <null> method containsValue(@org.jetbrains.annotations.NotNull p0: java.lang.String): boolean
|
||||
public bridge final <null> method containsValue(p0: java.lang.Object): boolean
|
||||
public @org.jetbrains.annotations.Nullable <null> method get(@org.jetbrains.annotations.NotNull p0: java.lang.String): java.lang.String
|
||||
public synthetic bridge <null> method get(p0: java.lang.Object): java.lang.Object
|
||||
public synthetic bridge final <null> method get(p0: java.lang.Object): java.lang.Object
|
||||
public bridge final <null> method get(p0: java.lang.Object): java.lang.String
|
||||
public <null> method getSize(): int
|
||||
public <null> method isEmpty(): boolean
|
||||
public @org.jetbrains.annotations.Nullable <null> method put(@org.jetbrains.annotations.NotNull p0: java.lang.String, @org.jetbrains.annotations.NotNull p1: java.lang.String): java.lang.String
|
||||
public synthetic bridge <null> method put(p0: java.lang.Object, p1: java.lang.Object): java.lang.Object
|
||||
public @org.jetbrains.annotations.Nullable <null> method remove(@org.jetbrains.annotations.NotNull p0: java.lang.String): java.lang.String
|
||||
public synthetic bridge <null> method remove(p0: java.lang.Object): java.lang.Object
|
||||
public synthetic bridge final <null> method remove(p0: java.lang.Object): java.lang.Object
|
||||
public bridge final <null> method remove(p0: java.lang.Object): java.lang.String
|
||||
public bridge final <null> method size(): int
|
||||
private synthetic final field <Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/String;>;> $$delegate_0: java.util.HashMap
|
||||
@@ -45,14 +45,14 @@ public final class<Ljava/lang/Object;Ljava/util/Map<Ljava/lang/String;Ljava/lang
|
||||
public <null> method containsValue(@org.jetbrains.annotations.NotNull p0: java.lang.String): boolean
|
||||
public bridge final <null> method containsValue(p0: java.lang.Object): boolean
|
||||
public @org.jetbrains.annotations.Nullable <null> method get(@org.jetbrains.annotations.NotNull p0: java.lang.String): java.lang.String
|
||||
public synthetic bridge <null> method get(p0: java.lang.Object): java.lang.Object
|
||||
public synthetic bridge final <null> method get(p0: java.lang.Object): java.lang.Object
|
||||
public bridge final <null> method get(p0: java.lang.Object): java.lang.String
|
||||
public <null> method getSize(): int
|
||||
public <null> method isEmpty(): boolean
|
||||
public @org.jetbrains.annotations.Nullable <null> method put(@org.jetbrains.annotations.NotNull p0: java.lang.String, @org.jetbrains.annotations.NotNull p1: java.lang.String): java.lang.String
|
||||
public synthetic bridge <null> method put(p0: java.lang.Object, p1: java.lang.Object): java.lang.Object
|
||||
public @org.jetbrains.annotations.Nullable <null> method remove(@org.jetbrains.annotations.NotNull p0: java.lang.String): java.lang.String
|
||||
public synthetic bridge <null> method remove(p0: java.lang.Object): java.lang.Object
|
||||
public synthetic bridge final <null> method remove(p0: java.lang.Object): java.lang.Object
|
||||
public bridge final <null> method remove(p0: java.lang.Object): java.lang.String
|
||||
public bridge final <null> method size(): int
|
||||
private synthetic final field <Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/String;>;> $$delegate_0: java.util.HashMap
|
||||
|
||||
+24
@@ -6484,6 +6484,30 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
||||
runTest("compiler/testData/codegen/box/collections/kt44233.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt48945.kt")
|
||||
public void testKt48945() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/collections/kt48945.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt48945a.kt")
|
||||
public void testKt48945a() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/collections/kt48945a.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt48945b.kt")
|
||||
public void testKt48945b() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/collections/kt48945b.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt48945c.kt")
|
||||
public void testKt48945c() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/collections/kt48945c.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("mutableList.kt")
|
||||
public void testMutableList() throws Exception {
|
||||
|
||||
+6
@@ -2248,6 +2248,12 @@ public class BytecodeListingTestGenerated extends AbstractBytecodeListingTest {
|
||||
runTest("compiler/testData/codegen/bytecodeListing/specialBridges/kt41123.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt48945.kt")
|
||||
public void testKt48945() throws Exception {
|
||||
runTest("compiler/testData/codegen/bytecodeListing/specialBridges/kt48945.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("mutableCollectionOfPrimitive.kt")
|
||||
public void testMutableCollectionOfPrimitive() throws Exception {
|
||||
|
||||
+24
@@ -6556,6 +6556,30 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
|
||||
runTest("compiler/testData/codegen/box/collections/kt44233.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt48945.kt")
|
||||
public void testKt48945() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/collections/kt48945.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt48945a.kt")
|
||||
public void testKt48945a() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/collections/kt48945a.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt48945b.kt")
|
||||
public void testKt48945b() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/collections/kt48945b.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt48945c.kt")
|
||||
public void testKt48945c() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/collections/kt48945c.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("mutableList.kt")
|
||||
public void testMutableList() throws Exception {
|
||||
|
||||
+6
@@ -2296,6 +2296,12 @@ public class IrBytecodeListingTestGenerated extends AbstractIrBytecodeListingTes
|
||||
runTest("compiler/testData/codegen/bytecodeListing/specialBridges/kt41123.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt48945.kt")
|
||||
public void testKt48945() throws Exception {
|
||||
runTest("compiler/testData/codegen/bytecodeListing/specialBridges/kt48945.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("mutableCollectionOfPrimitive.kt")
|
||||
public void testMutableCollectionOfPrimitive() throws Exception {
|
||||
|
||||
+20
@@ -5655,6 +5655,26 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
|
||||
runTest("compiler/testData/codegen/box/collections/kt44233.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt48945.kt")
|
||||
public void testKt48945() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/collections/kt48945.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt48945a.kt")
|
||||
public void testKt48945a() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/collections/kt48945a.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt48945b.kt")
|
||||
public void testKt48945b() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/collections/kt48945b.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt48945c.kt")
|
||||
public void testKt48945c() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/collections/kt48945c.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("mutableList.kt")
|
||||
public void testMutableList() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/collections/mutableList.kt");
|
||||
|
||||
+24
@@ -6630,6 +6630,30 @@ public class NativeExtBlackBoxTestGenerated extends AbstractNativeBlackBoxTest {
|
||||
runTest("compiler/testData/codegen/box/collections/kt44233.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt48945.kt")
|
||||
public void testKt48945() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/collections/kt48945.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt48945a.kt")
|
||||
public void testKt48945a() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/collections/kt48945a.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt48945b.kt")
|
||||
public void testKt48945b() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/collections/kt48945b.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt48945c.kt")
|
||||
public void testKt48945c() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/collections/kt48945c.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("mutableList.kt")
|
||||
public void testMutableList() throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user