[FIR] Fix false negative ARRAY_EQUALITY_OPERATOR_CAN_BE_REPLACED_WITH_EQUALS

... in presence of typealiases.

#KT-61921
This commit is contained in:
Kirill Rakhman
2023-09-14 09:54:07 +02:00
committed by Space Team
parent 9475bc250c
commit 9949de36c9
3 changed files with 14 additions and 3 deletions
@@ -1,12 +1,19 @@
FILE: ArrayEqualityCanBeReplacedWithEquals.kt
public final typealias A<T> = R|kotlin/Array<T>|
public final fun foo(p: R|kotlin/Int|): R|kotlin/Unit| {
lval a: R|kotlin/Array<kotlin/Int>| = R|kotlin/arrayOf|<R|kotlin/Int|>(vararg(Int(1), Int(2), Int(3)))
lval b: R|kotlin/Array<kotlin/Int>| = R|kotlin/arrayOf|<R|kotlin/Int|>(vararg(Int(3), Int(2), Int(1)))
lval c: R|A<kotlin/Int>| = R|kotlin/arrayOf|<R|kotlin/Int|>(vararg(Int(3), Int(2), Int(1)))
when () {
==(R|<local>/a|, R|<local>/b|) -> {
}
}
when () {
==(R|<local>/a|, R|<local>/c|) -> {
}
}
}
public final fun testsFromIdea(): R|kotlin/Unit| {
lval a: R|kotlin/Array<kotlin/String>| = R|kotlin/arrayOf|<R|kotlin/String|>(vararg(String(a)))
@@ -1,10 +1,14 @@
// WITH_STDLIB
typealias A<T> = Array<T>
fun foo(p: Int) {
val a = arrayOf(1, 2, 3)
val b = arrayOf(3, 2, 1)
val c : A<Int> = arrayOf(3, 2, 1)
if (a <!ARRAY_EQUALITY_OPERATOR_CAN_BE_REPLACED_WITH_EQUALS!>==<!> b) { }
if (a <!ARRAY_EQUALITY_OPERATOR_CAN_BE_REPLACED_WITH_EQUALS!>==<!> c) { }
}
fun testsFromIdea() {