diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java index ae33d542f1c..e7eea69fd66 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java @@ -38358,6 +38358,18 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/tests/suspendConversion/chainedFunSuspendConversionForSimpleExpression.kt"); } + @Test + @TestMetadata("implicitInvokeFromChildClass.kt") + public void testImplicitInvokeFromChildClass() { + runTest("compiler/testData/diagnostics/tests/suspendConversion/implicitInvokeFromChildClass.kt"); + } + + @Test + @TestMetadata("implicitInvokeWithSpecificType.kt") + public void testImplicitInvokeWithSpecificType() { + runTest("compiler/testData/diagnostics/tests/suspendConversion/implicitInvokeWithSpecificType.kt"); + } + @Test @TestMetadata("inGenericArgument.kt") public void testInGenericArgument() { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java index 9786bdf9613..505ff95ea7a 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java @@ -38358,6 +38358,18 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/tests/suspendConversion/chainedFunSuspendConversionForSimpleExpression.kt"); } + @Test + @TestMetadata("implicitInvokeFromChildClass.kt") + public void testImplicitInvokeFromChildClass() { + runTest("compiler/testData/diagnostics/tests/suspendConversion/implicitInvokeFromChildClass.kt"); + } + + @Test + @TestMetadata("implicitInvokeWithSpecificType.kt") + public void testImplicitInvokeWithSpecificType() { + runTest("compiler/testData/diagnostics/tests/suspendConversion/implicitInvokeWithSpecificType.kt"); + } + @Test @TestMetadata("inGenericArgument.kt") public void testInGenericArgument() { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java index 788c876a6fc..9ea3f1f87a6 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java @@ -35930,6 +35930,18 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/suspendConversion/chainedFunSuspendConversionForSimpleExpression.kt"); } + @Test + @TestMetadata("implicitInvokeFromChildClass.kt") + public void testImplicitInvokeFromChildClass() { + runTest("compiler/testData/diagnostics/tests/suspendConversion/implicitInvokeFromChildClass.kt"); + } + + @Test + @TestMetadata("implicitInvokeWithSpecificType.kt") + public void testImplicitInvokeWithSpecificType() { + runTest("compiler/testData/diagnostics/tests/suspendConversion/implicitInvokeWithSpecificType.kt"); + } + @Test @TestMetadata("inGenericArgument.kt") public void testInGenericArgument() { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java index 8af765d9b37..185fe3f741a 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java @@ -36068,6 +36068,18 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/suspendConversion/chainedFunSuspendConversionForSimpleExpression.kt"); } + @Test + @TestMetadata("implicitInvokeFromChildClass.kt") + public void testImplicitInvokeFromChildClass() { + runTest("compiler/testData/diagnostics/tests/suspendConversion/implicitInvokeFromChildClass.kt"); + } + + @Test + @TestMetadata("implicitInvokeWithSpecificType.kt") + public void testImplicitInvokeWithSpecificType() { + runTest("compiler/testData/diagnostics/tests/suspendConversion/implicitInvokeWithSpecificType.kt"); + } + @Test @TestMetadata("inGenericArgument.kt") public void testInGenericArgument() { diff --git a/compiler/testData/diagnostics/tests/suspendConversion/implicitInvokeFromChildClass.kt b/compiler/testData/diagnostics/tests/suspendConversion/implicitInvokeFromChildClass.kt new file mode 100644 index 00000000000..cb8ca53bf05 --- /dev/null +++ b/compiler/testData/diagnostics/tests/suspendConversion/implicitInvokeFromChildClass.kt @@ -0,0 +1,14 @@ +// FIR_IDENTICAL +// IGNORE_DIAGNOSTIC_API +// ISSUE: KT-62836 +fun box() { + useSuspendFunInt(Child()) +} + +fun useSuspendFunInt(fn: suspend () -> String): String = "" + +abstract class Test : () -> String + +open class Child: Test() { + override fun invoke() = "OK" +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/suspendConversion/implicitInvokeWithSpecificType.fir.kt b/compiler/testData/diagnostics/tests/suspendConversion/implicitInvokeWithSpecificType.fir.kt new file mode 100644 index 00000000000..20c03c393b8 --- /dev/null +++ b/compiler/testData/diagnostics/tests/suspendConversion/implicitInvokeWithSpecificType.fir.kt @@ -0,0 +1,11 @@ +// IGNORE_DIAGNOSTIC_API +// ISSUE: KT-62836 +fun box() { + useSuspendFunInt(Test()) +} + +fun useSuspendFunInt(fn: suspend () -> String): String = "" + +open class Test : () -> String? { + override fun invoke() = "OK" +} diff --git a/compiler/testData/diagnostics/tests/suspendConversion/implicitInvokeWithSpecificType.kt b/compiler/testData/diagnostics/tests/suspendConversion/implicitInvokeWithSpecificType.kt new file mode 100644 index 00000000000..8e48af13d2d --- /dev/null +++ b/compiler/testData/diagnostics/tests/suspendConversion/implicitInvokeWithSpecificType.kt @@ -0,0 +1,11 @@ +// IGNORE_DIAGNOSTIC_API +// ISSUE: KT-62836 +fun box() { + useSuspendFunInt(Test()) +} + +fun useSuspendFunInt(fn: suspend () -> String): String = "" + +open class Test : () -> String? { + override fun invoke() = "OK" +} diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java index 5cfb4652a22..cc25a5a6697 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java @@ -38358,6 +38358,18 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/suspendConversion/chainedFunSuspendConversionForSimpleExpression.kt"); } + @Test + @TestMetadata("implicitInvokeFromChildClass.kt") + public void testImplicitInvokeFromChildClass() { + runTest("compiler/testData/diagnostics/tests/suspendConversion/implicitInvokeFromChildClass.kt"); + } + + @Test + @TestMetadata("implicitInvokeWithSpecificType.kt") + public void testImplicitInvokeWithSpecificType() { + runTest("compiler/testData/diagnostics/tests/suspendConversion/implicitInvokeWithSpecificType.kt"); + } + @Test @TestMetadata("inGenericArgument.kt") public void testInGenericArgument() {