K1/K2: consider List.(add/remove)(First/Last) as mutable list methods

#KT-64640 Fixed
This commit is contained in:
Mikhail Glukhikh
2024-01-02 13:59:54 +01:00
committed by Space Team
parent 8a560d2629
commit 0ef41d75b5
5 changed files with 24 additions and 10 deletions
@@ -57,3 +57,6 @@ fun foo(x: MutableList<String>, y: ArrayList<String>, z: A<String>) {
z.<!DEBUG_INFO_CALL("fqName: A.removeLast; typeCall: function")!>removeLast()<!> z.<!DEBUG_INFO_CALL("fqName: A.removeLast; typeCall: function")!>removeLast()<!>
z.<!DEBUG_INFO_CALL("fqName: kotlin.collections.reversed; typeCall: extension function")!>reversed()<!> z.<!DEBUG_INFO_CALL("fqName: kotlin.collections.reversed; typeCall: extension function")!>reversed()<!>
} }
// DIAGNOSTICS: -JAVA_MODULE_DOES_NOT_EXPORT_PACKAGE
// accidentally reported (K1 only) on x.addFirst/addLast/removeFirst/removeLast (no such diagnostics on y and z)
@@ -57,3 +57,6 @@ fun foo(x: MutableList<String>, y: ArrayList<String>, z: A<String>) {
z.<!DEBUG_INFO_CALL("fqName: A.removeLast; typeCall: function")!>removeLast()<!> z.<!DEBUG_INFO_CALL("fqName: A.removeLast; typeCall: function")!>removeLast()<!>
z.<!DEBUG_INFO_CALL("fqName: kotlin.collections.reversed; typeCall: extension function")!>reversed()<!> z.<!DEBUG_INFO_CALL("fqName: kotlin.collections.reversed; typeCall: extension function")!>reversed()<!>
} }
// DIAGNOSTICS: -JAVA_MODULE_DOES_NOT_EXPORT_PACKAGE
// accidentally reported (K1 only) on x.addFirst/addLast/removeFirst/removeLast (no such diagnostics on y and z)
@@ -2,8 +2,8 @@
// WITH_STDLIB // WITH_STDLIB
fun bar(x: List<String>) { fun bar(x: List<String>) {
x.addFirst("") x.<!UNRESOLVED_REFERENCE!>addFirst<!>("")
x.addLast("") x.<!UNRESOLVED_REFERENCE!>addLast<!>("")
x.removeFirst() x.<!UNRESOLVED_REFERENCE!>removeFirst<!>()
x.removeLast() x.<!UNRESOLVED_REFERENCE!>removeLast<!>()
} }
@@ -2,8 +2,8 @@
// WITH_STDLIB // WITH_STDLIB
fun bar(x: List<String>) { fun bar(x: List<String>) {
x.<!JAVA_MODULE_DOES_NOT_EXPORT_PACKAGE!>addFirst<!>("") x.<!UNRESOLVED_REFERENCE!>addFirst<!>("")
x.<!JAVA_MODULE_DOES_NOT_EXPORT_PACKAGE!>addLast<!>("") x.<!UNRESOLVED_REFERENCE!>addLast<!>("")
x.<!JAVA_MODULE_DOES_NOT_EXPORT_PACKAGE!>removeFirst<!>() x.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>removeFirst<!>()
x.<!JAVA_MODULE_DOES_NOT_EXPORT_PACKAGE!>removeLast<!>() x.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>removeLast<!>()
} }
@@ -136,7 +136,15 @@ object JvmBuiltInsSignatures {
signatures { signatures {
inJavaUtil("Collection", "removeIf(Ljava/util/function/Predicate;)Z") + inJavaUtil("Collection", "removeIf(Ljava/util/function/Predicate;)Z") +
inJavaUtil("List", "replaceAll(Ljava/util/function/UnaryOperator;)V", "sort(Ljava/util/Comparator;)V") + inJavaUtil(
"List",
"replaceAll(Ljava/util/function/UnaryOperator;)V",
"sort(Ljava/util/Comparator;)V",
"addFirst(Ljava/lang/Object;)V",
"addLast(Ljava/lang/Object;)V",
"removeFirst()Ljava/lang/Object;",
"removeLast()Ljava/lang/Object;",
) +
inJavaUtil( inJavaUtil(
"Map", "Map",