diff --git a/compiler/testData/codegen/bytecodeListing/collectionStubs/abstractStubSignatures/specializedGenericMap.kt b/compiler/testData/codegen/bytecodeListing/collectionStubs/abstractStubSignatures/specializedGenericMap.kt new file mode 100644 index 00000000000..61f12b38f9b --- /dev/null +++ b/compiler/testData/codegen/bytecodeListing/collectionStubs/abstractStubSignatures/specializedGenericMap.kt @@ -0,0 +1,5 @@ +// WITH_SIGNATURES + +abstract class GenericMap : Map + +abstract class NumberStringMap : GenericMap() \ No newline at end of file diff --git a/compiler/testData/codegen/bytecodeListing/collectionStubs/abstractStubSignatures/specializedGenericMap.txt b/compiler/testData/codegen/bytecodeListing/collectionStubs/abstractStubSignatures/specializedGenericMap.txt new file mode 100644 index 00000000000..6658121f473 --- /dev/null +++ b/compiler/testData/codegen/bytecodeListing/collectionStubs/abstractStubSignatures/specializedGenericMap.txt @@ -0,0 +1,29 @@ +@kotlin.Metadata +public abstract class<Ljava/lang/Object;Ljava/util/Map;Lkotlin/jvm/internal/markers/KMappedMarker;> GenericMap { + // source: 'specializedGenericMap.kt' + public bridge final <()Ljava/util/Collection;> method values(): java.util.Collection + public bridge final <()Ljava/util/Set;>;> method entrySet(): java.util.Set + public bridge final <()Ljava/util/Set;> method keySet(): java.util.Set + public <(Ljava/lang/Object;)TV;> method remove(p0: java.lang.Object): java.lang.Object + public <(Ljava/util/Map<+TK;+TV;>;)V> method putAll(p0: java.util.Map): void + public <(TK;TV;)TV;> method put(p0: java.lang.Object, p1: java.lang.Object): java.lang.Object + public method (): void + public method clear(): void + public abstract method containsKey(p0: java.lang.Object): boolean + public abstract method containsValue(p0: java.lang.Object): boolean + public abstract 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 size(): int +} + +@kotlin.Metadata +public abstract class;> NumberStringMap { + // source: 'specializedGenericMap.kt' + public method (): void + public bridge final method containsKey(p0: java.lang.Object): boolean + public bridge final method containsValue(p0: java.lang.Object): boolean + public bridge final method get(p0: java.lang.Object): java.lang.Object +} diff --git a/compiler/testData/codegen/bytecodeListing/collectionStubs/abstractStubSignatures/specializedGenericMap_ir.txt b/compiler/testData/codegen/bytecodeListing/collectionStubs/abstractStubSignatures/specializedGenericMap_ir.txt new file mode 100644 index 00000000000..c3b0bc3d955 --- /dev/null +++ b/compiler/testData/codegen/bytecodeListing/collectionStubs/abstractStubSignatures/specializedGenericMap_ir.txt @@ -0,0 +1,30 @@ +@kotlin.Metadata +public abstract class<Ljava/lang/Object;Ljava/util/Map;Lkotlin/jvm/internal/markers/KMappedMarker;> GenericMap { + // source: 'specializedGenericMap.kt' + public bridge final <()Ljava/util/Collection;> method values(): java.util.Collection + public bridge final <()Ljava/util/Set;>;> method entrySet(): java.util.Set + public bridge final <()Ljava/util/Set;> method keySet(): java.util.Set + public <(Ljava/lang/Object;)TV;> method remove(p0: java.lang.Object): java.lang.Object + public <(Ljava/util/Map<+TK;+TV;>;)V> method putAll(p0: java.util.Map): void + public <(TK;TV;)TV;> method put(p0: java.lang.Object, p1: java.lang.Object): java.lang.Object + public method (): void + public method clear(): void + 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 size(): int +} + +@kotlin.Metadata +public abstract class;> NumberStringMap { + // source: 'specializedGenericMap.kt' + public method (): void + public abstract method containsKey(p0: java.lang.Number): boolean + public bridge final method containsKey(p0: java.lang.Object): boolean + public bridge final method containsValue(p0: java.lang.Object): boolean + public abstract method containsValue(p0: java.lang.String): boolean + public abstract method get(p0: java.lang.Number): java.lang.String + public synthetic bridge method get(p0: java.lang.Object): java.lang.Object + public bridge final method get(p0: java.lang.Object): java.lang.String +} diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeListingTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeListingTestGenerated.java index 21e2e2d6d03..70599b657f8 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeListingTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeListingTestGenerated.java @@ -491,6 +491,11 @@ public class BytecodeListingTestGenerated extends AbstractBytecodeListingTest { runTest("compiler/testData/codegen/bytecodeListing/collectionStubs/abstractStubSignatures/set.kt"); } + @TestMetadata("specializedGenericMap.kt") + public void testSpecializedGenericMap() throws Exception { + runTest("compiler/testData/codegen/bytecodeListing/collectionStubs/abstractStubSignatures/specializedGenericMap.kt"); + } + @TestMetadata("stringGenericMap.kt") public void testStringGenericMap() throws Exception { runTest("compiler/testData/codegen/bytecodeListing/collectionStubs/abstractStubSignatures/stringGenericMap.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBytecodeListingTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBytecodeListingTestGenerated.java index 39e08ffebb8..a83c1f14338 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBytecodeListingTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBytecodeListingTestGenerated.java @@ -491,6 +491,11 @@ public class IrBytecodeListingTestGenerated extends AbstractIrBytecodeListingTes runTest("compiler/testData/codegen/bytecodeListing/collectionStubs/abstractStubSignatures/set.kt"); } + @TestMetadata("specializedGenericMap.kt") + public void testSpecializedGenericMap() throws Exception { + runTest("compiler/testData/codegen/bytecodeListing/collectionStubs/abstractStubSignatures/specializedGenericMap.kt"); + } + @TestMetadata("stringGenericMap.kt") public void testStringGenericMap() throws Exception { runTest("compiler/testData/codegen/bytecodeListing/collectionStubs/abstractStubSignatures/stringGenericMap.kt");