JVM_IR KT-48945 generate special bridge with unsubstituted signature

This commit is contained in:
Dmitry Petrov
2021-11-15 15:51:28 +03:00
committed by TeamCityServer
parent 4c3404888a
commit 30ceb49442
36 changed files with 809 additions and 42 deletions
@@ -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 {
@@ -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(
@@ -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
)
@@ -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
)
}
+16
View File
@@ -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"
}
+17
View File
@@ -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"
}
+27
View File
@@ -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);
}
}
+23
View File
@@ -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> {
}
@@ -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
@@ -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
@@ -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
}
@@ -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
@@ -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
}
@@ -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
}
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
}
@@ -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
@@ -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
@@ -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
}
@@ -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
@@ -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 {
@@ -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 {
@@ -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 {
@@ -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 {
@@ -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");
@@ -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 {