[FIR] Implement replacing Object with type parameters for specials builtins

#KT-42601 Fixed
This commit is contained in:
Mikhail Glukhikh
2020-10-12 12:45:03 +03:00
parent d40248cb53
commit d3e85dbce0
19 changed files with 410 additions and 27 deletions
@@ -8,9 +8,9 @@ val concurrentHash: ConcurrentHashMap<String, Int> = null!!
fun foo() {
concurrent.remove("", 1)
concurrent.remove("", "")
concurrent.<!INAPPLICABLE_CANDIDATE!>remove<!>("", "")
concurrentHash.remove("", 1)
concurrentHash.remove("", "")
concurrentHash.<!INAPPLICABLE_CANDIDATE!>remove<!>("", "")
// Flexible types
concurrent.remove(null, 1)
@@ -4,17 +4,17 @@ abstract class A : Map<Int, String>
fun foo(x: Map<Int, String>, a: A, b: java.util.HashMap<Int, String>) {
x.getOrDefault(1, "")
x.getOrDefault("", "")
x.<!NONE_APPLICABLE!>getOrDefault<!>("", "")
x.<!NONE_APPLICABLE!>getOrDefault<!>(1, 2)
x.<!NONE_APPLICABLE!>getOrDefault<!>("", 2)
a.getOrDefault(1, "")
a.getOrDefault("", "")
a.<!NONE_APPLICABLE!>getOrDefault<!>("", "")
a.<!NONE_APPLICABLE!>getOrDefault<!>(1, 2)
a.<!NONE_APPLICABLE!>getOrDefault<!>("", 2)
b.getOrDefault(1, "")
b.getOrDefault("", "")
b.<!INAPPLICABLE_CANDIDATE!>getOrDefault<!>("", "")
b.<!INAPPLICABLE_CANDIDATE!>getOrDefault<!>(1, 2)
b.<!INAPPLICABLE_CANDIDATE!>getOrDefault<!>("", 2)
}
@@ -22,7 +22,7 @@ fun foo(x: MutableMap<String, Int>, y: java.util.HashMap<String, Int>, z: java.u
x.<!INAPPLICABLE_CANDIDATE!>remove<!>("", null)
y.remove("", 1)
y.remove("", "")
y.<!INAPPLICABLE_CANDIDATE!>remove<!>("", "")
y.remove("", null)
z.remove("", 1)