[FE] Fix TypeParameterUpperBounds incompatibility priority
^KT-60902 Fixed Review: https://jetbrains.team/p/kt/reviews/11039/timeline We should prioritize to return STRONG incompatibilities over WEAK incompatibilities. But this invariant broke in `areCompatibleCallables`, because `areCompatibleTypeParameters` returns incompatibilities of both types, and `areCompatibleTypeParameters` is called in WEAK incompatibilities section. The fix is to split `areCompatibleTypeParameters` into two functions: `areStrongIncompatibleTypeParameters` and `areWeakIncompatibleTypeParameters`. And call each of this function in appropriate `areCompatibleCallables` sections.
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
// FIR_IDENTICAL
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
public expect fun <T : Comparable<T>> Array<out T>.foo()
|
||||
|
||||
// MODULE: m2-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
public actual fun <T : Comparable<T>> Array<out T>.foo() {
|
||||
}
|
||||
|
||||
private fun <T> Array<out T>.foo() {
|
||||
}
|
||||
Reference in New Issue
Block a user