mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-08 15:53:19 +00:00
Refine generic signature for Map.get/remove
Before this change generic signature wasn't written because of wrong assumption about it absence in all cases where we replace generic parameter with Object
This commit is contained in:
13
compiler/testData/codegen/boxWithJava/collections/readOnlyMap/J.java
vendored
Normal file
13
compiler/testData/codegen/boxWithJava/collections/readOnlyMap/J.java
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
import java.util.*;
|
||||
|
||||
public class J {
|
||||
|
||||
private static class MyMap<K, V> extends KMap<K, V> {}
|
||||
|
||||
public static String foo() {
|
||||
Map<String, Integer> collection = new MyMap<String, Integer>();
|
||||
if (!collection.containsKey("ABCDE")) return "fail 1";
|
||||
if (!collection.containsValue(1)) return "fail 2";
|
||||
return "OK";
|
||||
}
|
||||
}
|
||||
24
compiler/testData/codegen/boxWithJava/collections/readOnlyMap/readOnlyMap.kt
vendored
Normal file
24
compiler/testData/codegen/boxWithJava/collections/readOnlyMap/readOnlyMap.kt
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
open class KMap<K, V> : Map<K, V> {
|
||||
override val size: Int
|
||||
get() = throw UnsupportedOperationException()
|
||||
|
||||
override fun isEmpty(): Boolean {
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
override fun containsKey(key: K) = true
|
||||
override fun containsValue(value: V) = true
|
||||
|
||||
override fun get(key: K): V? {
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
override val keys: Set<K>
|
||||
get() = throw UnsupportedOperationException()
|
||||
override val values: Collection<V>
|
||||
get() = throw UnsupportedOperationException()
|
||||
override val entries: Set<Map.Entry<K, V>>
|
||||
get() = throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
fun box() = J.foo()
|
||||
Reference in New Issue
Block a user