diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java index 7abc07e97da..7df5771139b 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java @@ -10594,6 +10594,12 @@ public class DiagnosisCompilerTestFE10TestdataTestGenerated extends AbstractDiag runTest("compiler/testData/diagnostics/tests/extensions/contextReceivers/contextReceiverTypeParamsUsageError.kt"); } + @Test + @TestMetadata("contextualFunctionalTypeConversion.kt") + public void testContextualFunctionalTypeConversion() throws Exception { + runTest("compiler/testData/diagnostics/tests/extensions/contextReceivers/contextualFunctionalTypeConversion.kt"); + } + @Test @TestMetadata("functionalType.kt") public void testFunctionalType() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java index 50c0a31e357..e5fa8107c21 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java @@ -10594,6 +10594,12 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirDiagnosti runTest("compiler/testData/diagnostics/tests/extensions/contextReceivers/contextReceiverTypeParamsUsageError.kt"); } + @Test + @TestMetadata("contextualFunctionalTypeConversion.kt") + public void testContextualFunctionalTypeConversion() throws Exception { + runTest("compiler/testData/diagnostics/tests/extensions/contextReceivers/contextualFunctionalTypeConversion.kt"); + } + @Test @TestMetadata("functionalType.kt") public void testFunctionalType() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java index 4a821d9e20d..a07634e3599 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java @@ -10594,6 +10594,12 @@ public class FirOldFrontendDiagnosticsWithLightTreeTestGenerated extends Abstrac runTest("compiler/testData/diagnostics/tests/extensions/contextReceivers/contextReceiverTypeParamsUsageError.kt"); } + @Test + @TestMetadata("contextualFunctionalTypeConversion.kt") + public void testContextualFunctionalTypeConversion() throws Exception { + runTest("compiler/testData/diagnostics/tests/extensions/contextReceivers/contextualFunctionalTypeConversion.kt"); + } + @Test @TestMetadata("functionalType.kt") public void testFunctionalType() throws Exception { diff --git a/compiler/testData/diagnostics/tests/extensions/contextReceivers/contextualFunctionalTypeConversion.fir.kt b/compiler/testData/diagnostics/tests/extensions/contextReceivers/contextualFunctionalTypeConversion.fir.kt new file mode 100644 index 00000000000..5bc2e643c86 --- /dev/null +++ b/compiler/testData/diagnostics/tests/extensions/contextReceivers/contextualFunctionalTypeConversion.fir.kt @@ -0,0 +1,13 @@ +// !LANGUAGE: +ContextReceivers + +class A +class B + +fun expectAB(f: context(A, B) () -> Unit) { + f(A(), B()) +} + +fun test() { + val l: context(B, A) () -> Unit = { } + expectAB(l) +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/extensions/contextReceivers/contextualFunctionalTypeConversion.kt b/compiler/testData/diagnostics/tests/extensions/contextReceivers/contextualFunctionalTypeConversion.kt new file mode 100644 index 00000000000..cc3c26a9fe0 --- /dev/null +++ b/compiler/testData/diagnostics/tests/extensions/contextReceivers/contextualFunctionalTypeConversion.kt @@ -0,0 +1,13 @@ +// !LANGUAGE: +ContextReceivers + +class A +class B + +fun expectAB(f: context(A, B) () -> Unit) { + f(A(), B()) +} + +fun test() { + val l: context(B, A) () -> Unit = { } + expectAB(l) +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/extensions/contextReceivers/contextualFunctionalTypeConversion.txt b/compiler/testData/diagnostics/tests/extensions/contextReceivers/contextualFunctionalTypeConversion.txt new file mode 100644 index 00000000000..bfc144111ad --- /dev/null +++ b/compiler/testData/diagnostics/tests/extensions/contextReceivers/contextualFunctionalTypeConversion.txt @@ -0,0 +1,18 @@ +package + +public fun expectAB(/*0*/ f: context(A, B) () -> kotlin.Unit): kotlin.Unit +public fun test(): kotlin.Unit + +public final class A { + public constructor A() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} + +public final class B { + public constructor B() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} 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 830050c0459..3444e46f192 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 @@ -10600,6 +10600,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/extensions/contextReceivers/contextReceiverTypeParamsUsageError.kt"); } + @Test + @TestMetadata("contextualFunctionalTypeConversion.kt") + public void testContextualFunctionalTypeConversion() throws Exception { + runTest("compiler/testData/diagnostics/tests/extensions/contextReceivers/contextualFunctionalTypeConversion.kt"); + } + @Test @TestMetadata("functionalType.kt") public void testFunctionalType() throws Exception {