[FIR] Add some corner case tests for KT-64891

Note that there are some that K2
correctly supports, while K1 fails.

^KT-64891
This commit is contained in:
Nikolay Lunyak
2024-01-15 14:21:52 +02:00
committed by Space Team
parent 3a36a786d4
commit eb11901d43
10 changed files with 174 additions and 0 deletions
@@ -375,6 +375,24 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia
runTest("compiler/testData/diagnostics/tests/equalityWithSmartCastInIfBlock.kt");
}
@Test
@TestMetadata("expressionsInQaSelectorsCornerCases.kt")
public void testExpressionsInQaSelectorsCornerCases() throws Exception {
runTest("compiler/testData/diagnostics/tests/expressionsInQaSelectorsCornerCases.kt");
}
@Test
@TestMetadata("expressionsInQaSelectorsReceiverConversion.kt")
public void testExpressionsInQaSelectorsReceiverConversion() throws Exception {
runTest("compiler/testData/diagnostics/tests/expressionsInQaSelectorsReceiverConversion.kt");
}
@Test
@TestMetadata("expressionsInQaSelectorsWithElvis.kt")
public void testExpressionsInQaSelectorsWithElvis() throws Exception {
runTest("compiler/testData/diagnostics/tests/expressionsInQaSelectorsWithElvis.kt");
}
@Test
@TestMetadata("ExtensionCallInvoke.kt")
public void testExtensionCallInvoke() throws Exception {
@@ -375,6 +375,24 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated
runTest("compiler/testData/diagnostics/tests/equalityWithSmartCastInIfBlock.kt");
}
@Test
@TestMetadata("expressionsInQaSelectorsCornerCases.kt")
public void testExpressionsInQaSelectorsCornerCases() throws Exception {
runTest("compiler/testData/diagnostics/tests/expressionsInQaSelectorsCornerCases.kt");
}
@Test
@TestMetadata("expressionsInQaSelectorsReceiverConversion.kt")
public void testExpressionsInQaSelectorsReceiverConversion() throws Exception {
runTest("compiler/testData/diagnostics/tests/expressionsInQaSelectorsReceiverConversion.kt");
}
@Test
@TestMetadata("expressionsInQaSelectorsWithElvis.kt")
public void testExpressionsInQaSelectorsWithElvis() throws Exception {
runTest("compiler/testData/diagnostics/tests/expressionsInQaSelectorsWithElvis.kt");
}
@Test
@TestMetadata("ExtensionCallInvoke.kt")
public void testExtensionCallInvoke() throws Exception {
@@ -375,6 +375,24 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir
runTest("compiler/testData/diagnostics/tests/equalityWithSmartCastInIfBlock.kt");
}
@Test
@TestMetadata("expressionsInQaSelectorsCornerCases.kt")
public void testExpressionsInQaSelectorsCornerCases() throws Exception {
runTest("compiler/testData/diagnostics/tests/expressionsInQaSelectorsCornerCases.kt");
}
@Test
@TestMetadata("expressionsInQaSelectorsReceiverConversion.kt")
public void testExpressionsInQaSelectorsReceiverConversion() throws Exception {
runTest("compiler/testData/diagnostics/tests/expressionsInQaSelectorsReceiverConversion.kt");
}
@Test
@TestMetadata("expressionsInQaSelectorsWithElvis.kt")
public void testExpressionsInQaSelectorsWithElvis() throws Exception {
runTest("compiler/testData/diagnostics/tests/expressionsInQaSelectorsWithElvis.kt");
}
@Test
@TestMetadata("ExtensionCallInvoke.kt")
public void testExtensionCallInvoke() throws Exception {
@@ -375,6 +375,24 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia
runTest("compiler/testData/diagnostics/tests/equalityWithSmartCastInIfBlock.kt");
}
@Test
@TestMetadata("expressionsInQaSelectorsCornerCases.kt")
public void testExpressionsInQaSelectorsCornerCases() throws Exception {
runTest("compiler/testData/diagnostics/tests/expressionsInQaSelectorsCornerCases.kt");
}
@Test
@TestMetadata("expressionsInQaSelectorsReceiverConversion.kt")
public void testExpressionsInQaSelectorsReceiverConversion() throws Exception {
runTest("compiler/testData/diagnostics/tests/expressionsInQaSelectorsReceiverConversion.kt");
}
@Test
@TestMetadata("expressionsInQaSelectorsWithElvis.kt")
public void testExpressionsInQaSelectorsWithElvis() throws Exception {
runTest("compiler/testData/diagnostics/tests/expressionsInQaSelectorsWithElvis.kt");
}
@Test
@TestMetadata("ExtensionCallInvoke.kt")
public void testExtensionCallInvoke() throws Exception {
@@ -0,0 +1,34 @@
// ISSUE: KT-64891
fun <T> T.b(): Int = 10
fun <T> Int.a(it: T): Int = this
fun main() {
5.(<!UNRESOLVED_REFERENCE!>::<!UNRESOLVED_REFERENCE!>b<!><!>)().inv()
5.(<!UNRESOLVED_REFERENCE!>::<!UNRESOLVED_REFERENCE!>a<!><!>)('=').inv()
val c = Int::b
5.(c)().inv()
val f: Int.() -> Int = Int::b
5.(f)().inv()
5.(Int::b)().inv()
val d = Int::<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>a<!>
5.(d)('=').inv()
val e: Int.(Char) -> Int = Int::a
5.(e)('=').inv()
}
val <T> T.x get(): Int = 10
fun rain() {
5.(<!UNRESOLVED_REFERENCE!>x<!>)().inv()
5.(<!UNRESOLVED_REFERENCE!>::<!UNRESOLVED_REFERENCE!>x<!><!>)().inv()
5.(Int::x)().inv()
}
@@ -0,0 +1,34 @@
// ISSUE: KT-64891
fun <T> T.b(): Int = 10
fun <T> Int.a(it: T): Int = this
fun main() {
5.<!FUNCTION_EXPECTED!>(::<!UNRESOLVED_REFERENCE!>b<!>)<!>().<!DEBUG_INFO_MISSING_UNRESOLVED!>inv<!>()
5.<!FUNCTION_EXPECTED!>(::<!UNRESOLVED_REFERENCE!>a<!>)<!>('=').<!DEBUG_INFO_MISSING_UNRESOLVED!>inv<!>()
val c = Int::b
5.<!FUNCTION_EXPECTED!>(c)<!>().<!DEBUG_INFO_MISSING_UNRESOLVED!>inv<!>()
val f: Int.() -> Int = Int::b
5.(f)().inv()
5.<!FUNCTION_EXPECTED!>(Int::b)<!>().<!DEBUG_INFO_MISSING_UNRESOLVED!>inv<!>()
val d = Int::<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>a<!>
5.<!FUNCTION_EXPECTED!>(<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>d<!>)<!>('=').<!DEBUG_INFO_MISSING_UNRESOLVED!>inv<!>()
val e: Int.(Char) -> Int = Int::a
5.(e)('=').inv()
}
val <T> T.x get(): Int = 10
fun rain() {
5.<!FUNCTION_EXPECTED!>(<!UNRESOLVED_REFERENCE!>x<!>)<!>().<!DEBUG_INFO_MISSING_UNRESOLVED!>inv<!>()
5.<!FUNCTION_EXPECTED!>(::<!UNRESOLVED_REFERENCE!>x<!>)<!>().<!DEBUG_INFO_MISSING_UNRESOLVED!>inv<!>()
5.<!FUNCTION_EXPECTED!>(Int::x)<!>().<!DEBUG_INFO_MISSING_UNRESOLVED!>inv<!>()
}
@@ -0,0 +1,5 @@
// ISSUE: KT-64891
fun test(f: (Int) -> Int) {
2.(f)()
}
@@ -0,0 +1,5 @@
// ISSUE: KT-64891
fun test(f: (Int) -> Int) {
2.<!NO_RECEIVER_ALLOWED!>(f)<!>()
}
@@ -0,0 +1,6 @@
// FIR_IDENTICAL
// ISSUE: KT-64891
fun test(a: (Int.() -> Int)?, b: Int.() -> Int) {
2.(a ?: b)()
}
@@ -375,6 +375,24 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest {
runTest("compiler/testData/diagnostics/tests/equalityWithSmartCastInIfBlock.kt");
}
@Test
@TestMetadata("expressionsInQaSelectorsCornerCases.kt")
public void testExpressionsInQaSelectorsCornerCases() throws Exception {
runTest("compiler/testData/diagnostics/tests/expressionsInQaSelectorsCornerCases.kt");
}
@Test
@TestMetadata("expressionsInQaSelectorsReceiverConversion.kt")
public void testExpressionsInQaSelectorsReceiverConversion() throws Exception {
runTest("compiler/testData/diagnostics/tests/expressionsInQaSelectorsReceiverConversion.kt");
}
@Test
@TestMetadata("expressionsInQaSelectorsWithElvis.kt")
public void testExpressionsInQaSelectorsWithElvis() throws Exception {
runTest("compiler/testData/diagnostics/tests/expressionsInQaSelectorsWithElvis.kt");
}
@Test
@TestMetadata("ExtensionCallInvoke.kt")
public void testExtensionCallInvoke() throws Exception {