~~ Attempt to fix Gradle trouble
diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/overloads/ConeOverloadConflictResolver.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/overloads/ConeOverloadConflictResolver.kt
index ff565e8..e6fbbbe 100644
--- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/overloads/ConeOverloadConflictResolver.kt
+++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/overloads/ConeOverloadConflictResolver.kt
@@ -191,14 +191,6 @@
candidates: Set<Candidate>,
discriminationFlags: DiscriminationFlags
): Set<Candidate> {
- if (discriminationFlags.lowPrioritySAMs) {
- filterCandidatesByDiscriminationFlag(
- candidates,
- { !it.shouldHaveLowPriorityDueToSAM(transformerComponents) },
- { discriminationFlags.copy(lowPrioritySAMs = false) },
- )?.let { return it }
- }
-
if (discriminationFlags.adaptationsInPostponedAtoms) {
filterCandidatesByDiscriminationFlag(
candidates,
@@ -209,6 +201,14 @@
findMaximallySpecificCall(candidates, false)?.let { return setOf(it) }
+ if (discriminationFlags.lowPrioritySAMs) {
+ filterCandidatesByDiscriminationFlag(
+ candidates,
+ { !it.shouldHaveLowPriorityDueToSAM(transformerComponents) },
+ { discriminationFlags.copy(lowPrioritySAMs = false) },
+ )?.let { return it }
+ }
+
if (discriminationFlags.generics) {
findMaximallySpecificCall(candidates, true)?.let { return setOf(it) }
}
diff --git a/compiler/testData/diagnostics/tests/j+k/sam/compatibilityResolveToOuterScopeForKotlinFunctions.fir.kt b/compiler/testData/diagnostics/tests/j+k/sam/compatibilityResolveToOuterScopeForKotlinFunctions.fir.kt
index 2894f01..1932980 100644
--- a/compiler/testData/diagnostics/tests/j+k/sam/compatibilityResolveToOuterScopeForKotlinFunctions.fir.kt
+++ b/compiler/testData/diagnostics/tests/j+k/sam/compatibilityResolveToOuterScopeForKotlinFunctions.fir.kt
@@ -42,7 +42,7 @@
fun test(f: () -> Unit) {
val result = foo(1, f)
- <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>result<!>
+ <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>result<!>
}
}
@@ -54,7 +54,7 @@
fun test() {
val result = foo(1, ::bar)
- <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>result<!>
+ <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>result<!>
}
}
diff --git a/compiler/testData/diagnostics/tests/samConversions/samPriorityVsGenericCompatibilityDisabled.fir.kt b/compiler/testData/diagnostics/tests/samConversions/samPriorityVsGeneric.fir.kt
similarity index 74%
rename from compiler/testData/diagnostics/tests/samConversions/samPriorityVsGenericCompatibilityDisabled.fir.kt
rename to compiler/testData/diagnostics/tests/samConversions/samPriorityVsGeneric.fir.kt
index 899d1b4..4995524 100644
--- a/compiler/testData/diagnostics/tests/samConversions/samPriorityVsGenericCompatibilityDisabled.fir.kt
+++ b/compiler/testData/diagnostics/tests/samConversions/samPriorityVsGeneric.fir.kt
@@ -1,5 +1,4 @@
-// RUN_PIPELINE_TILL: BACKEND
-// LANGUAGE: +DisableCompatibilityModeForNewInference
+// RUN_PIPELINE_TILL: FRONTEND
// SKIP_TXT
// FULL_JDK
@@ -10,5 +9,5 @@
fun main() {
val x = bar() { foo() } // OK with default current 1.5/1.6, Error with DisableCompatibilityModeForNewInference enabled, Ok in K2
- x.length
+ x.<!UNRESOLVED_REFERENCE!>length<!>
}
diff --git a/compiler/testData/diagnostics/tests/samConversions/samPriorityVsGeneric.kt b/compiler/testData/diagnostics/tests/samConversions/samPriorityVsGeneric.kt
index 390c36b..137d5ab 100644
--- a/compiler/testData/diagnostics/tests/samConversions/samPriorityVsGeneric.kt
+++ b/compiler/testData/diagnostics/tests/samConversions/samPriorityVsGeneric.kt
@@ -1,5 +1,4 @@
-// RUN_PIPELINE_TILL: BACKEND
-// FIR_IDENTICAL
+// RUN_PIPELINE_TILL: FRONTEND
// SKIP_TXT
// FULL_JDK
diff --git a/compiler/testData/diagnostics/tests/samConversions/samPriorityVsGenericCompatibilityDisabled.kt b/compiler/testData/diagnostics/tests/samConversions/samPriorityVsGenericCompatibilityDisabled.kt
index 6ed2021..ceb1bc8 100644
--- a/compiler/testData/diagnostics/tests/samConversions/samPriorityVsGenericCompatibilityDisabled.kt
+++ b/compiler/testData/diagnostics/tests/samConversions/samPriorityVsGenericCompatibilityDisabled.kt
@@ -1,4 +1,5 @@
-// RUN_PIPELINE_TILL: BACKEND
+// FIR_IDENTICAL
+// RUN_PIPELINE_TILL: FRONTEND
// LANGUAGE: +DisableCompatibilityModeForNewInference
// SKIP_TXT
// FULL_JDK
diff --git a/compiler/testData/diagnostics/tests/samConversions/samPriorityVsGenericCompatibilityEnabled2.fir.kt b/compiler/testData/diagnostics/tests/samConversions/samPriorityVsGenericCompatibilityEnabled2.fir.kt
deleted file mode 100644
index 8bfab14..0000000
--- a/compiler/testData/diagnostics/tests/samConversions/samPriorityVsGenericCompatibilityEnabled2.fir.kt
+++ /dev/null
@@ -1,23 +0,0 @@
-// RUN_PIPELINE_TILL: FRONTEND
-// LANGUAGE: +DisableCompatibilityModeForNewInference
-// FULL_JDK
-
-import java.util.function.Consumer
-
-class Exec
-
-fun <T> register(vararg constructorArgs: Any): String = "1" // (1)
-fun <T> register(configurationAction: Consumer<in T>): Int = 2 // (2)
-
-fun withConversion(): (Exec) -> Unit = {}
-fun withoutConversion() = Consumer<Exec> {}
-
-fun main() {
- val x = register<Exec>(withConversion()) // K2 -> (1)
- acceptInt(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
-
- val y = register<Exec>(withoutConversion()) // K2 -> (2)
- acceptInt(y)
-}
-
-fun acceptInt(i: Int) {}
diff --git a/compiler/testData/diagnostics/tests/samConversions/samPriorityVsGenericCompatibilityEnabled2.kt b/compiler/testData/diagnostics/tests/samConversions/samPriorityVsGenericCompatibilityEnabled2.kt
index 0898809..03dc6b3 100644
--- a/compiler/testData/diagnostics/tests/samConversions/samPriorityVsGenericCompatibilityEnabled2.kt
+++ b/compiler/testData/diagnostics/tests/samConversions/samPriorityVsGenericCompatibilityEnabled2.kt
@@ -1,4 +1,5 @@
-// RUN_PIPELINE_TILL: FRONTEND
+// FIR_IDENTICAL
+// RUN_PIPELINE_TILL: BACKEND
// LANGUAGE: +DisableCompatibilityModeForNewInference
// FULL_JDK