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 5bbe52a6f87..78a701d8f4f 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 @@ -39149,6 +39149,22 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia } } + @Nested + @TestMetadata("compiler/testData/diagnostics/testsWithStdLib/delegateInference") + @TestDataPath("$PROJECT_ROOT") + public class DelegateInference { + @Test + public void testAllFilesPresentInDelegateInference() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/testsWithStdLib/delegateInference"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true); + } + + @Test + @TestMetadata("ifWithCallableReferenceInLazy.kt") + public void testIfWithCallableReferenceInLazy() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/delegateInference/ifWithCallableReferenceInLazy.kt"); + } + } + @Nested @TestMetadata("compiler/testData/diagnostics/testsWithStdLib/deprecated") @TestDataPath("$PROJECT_ROOT") 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 4ff0feb27b8..ba508f703fe 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 @@ -39149,6 +39149,22 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated } } + @Nested + @TestMetadata("compiler/testData/diagnostics/testsWithStdLib/delegateInference") + @TestDataPath("$PROJECT_ROOT") + public class DelegateInference { + @Test + public void testAllFilesPresentInDelegateInference() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/testsWithStdLib/delegateInference"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true); + } + + @Test + @TestMetadata("ifWithCallableReferenceInLazy.kt") + public void testIfWithCallableReferenceInLazy() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/delegateInference/ifWithCallableReferenceInLazy.kt"); + } + } + @Nested @TestMetadata("compiler/testData/diagnostics/testsWithStdLib/deprecated") @TestDataPath("$PROJECT_ROOT") 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 f3114ff941d..20bab3559df 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 @@ -39149,6 +39149,22 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir } } + @Nested + @TestMetadata("compiler/testData/diagnostics/testsWithStdLib/delegateInference") + @TestDataPath("$PROJECT_ROOT") + public class DelegateInference { + @Test + public void testAllFilesPresentInDelegateInference() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/testsWithStdLib/delegateInference"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true); + } + + @Test + @TestMetadata("ifWithCallableReferenceInLazy.kt") + public void testIfWithCallableReferenceInLazy() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/delegateInference/ifWithCallableReferenceInLazy.kt"); + } + } + @Nested @TestMetadata("compiler/testData/diagnostics/testsWithStdLib/deprecated") @TestDataPath("$PROJECT_ROOT") 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 60cbe15fdfc..a2c817a62b9 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 @@ -39245,6 +39245,22 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia } } + @Nested + @TestMetadata("compiler/testData/diagnostics/testsWithStdLib/delegateInference") + @TestDataPath("$PROJECT_ROOT") + public class DelegateInference { + @Test + public void testAllFilesPresentInDelegateInference() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/testsWithStdLib/delegateInference"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true); + } + + @Test + @TestMetadata("ifWithCallableReferenceInLazy.kt") + public void testIfWithCallableReferenceInLazy() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/delegateInference/ifWithCallableReferenceInLazy.kt"); + } + } + @Nested @TestMetadata("compiler/testData/diagnostics/testsWithStdLib/deprecated") @TestDataPath("$PROJECT_ROOT") diff --git a/compiler/testData/diagnostics/testsWithStdLib/delegateInference/ifWithCallableReferenceInLazy.fir.kt b/compiler/testData/diagnostics/testsWithStdLib/delegateInference/ifWithCallableReferenceInLazy.fir.kt new file mode 100644 index 00000000000..04e3bbccca8 --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/delegateInference/ifWithCallableReferenceInLazy.fir.kt @@ -0,0 +1,37 @@ +// ISSUE: KT-58754 + +fun foo() {} +fun bar() {} + +class Test(b: Boolean) { + private val test_1 by lazy { + val a = if (b) { + ::foo + } else { + ::bar + } + a + } + + private val test_2 by lazy { + val a = if (b) ::foo else ::bar + a + } + + private val test_3 by lazy { + val a = when { + b -> { ::foo } + else -> { ::bar } + } + a + } + + private val test_4 by lazy { + val a = when { + b -> ::foo + else -> ::bar + } + a + } +} + diff --git a/compiler/testData/diagnostics/testsWithStdLib/delegateInference/ifWithCallableReferenceInLazy.kt b/compiler/testData/diagnostics/testsWithStdLib/delegateInference/ifWithCallableReferenceInLazy.kt new file mode 100644 index 00000000000..e5007c318a6 --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/delegateInference/ifWithCallableReferenceInLazy.kt @@ -0,0 +1,37 @@ +// ISSUE: KT-58754 + +fun foo() {} +fun bar() {} + +class Test(b: Boolean) { + private val test_1 by lazy { + val a = if (b) { + ::foo + } else { + ::bar + } + a + } + + private val test_2 by lazy { + val a = if (b) ::foo else ::bar + a + } + + private val test_3 by lazy { + val a = when { + b -> { ::foo } + else -> { ::bar } + } + a + } + + private val test_4 by lazy { + val a = when { + b -> ::foo + else -> ::bar + } + a + } +} + 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 098d7b774d9..cb56f620174 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 @@ -40071,6 +40071,22 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { } } + @Nested + @TestMetadata("compiler/testData/diagnostics/testsWithStdLib/delegateInference") + @TestDataPath("$PROJECT_ROOT") + public class DelegateInference { + @Test + public void testAllFilesPresentInDelegateInference() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/testsWithStdLib/delegateInference"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true); + } + + @Test + @TestMetadata("ifWithCallableReferenceInLazy.kt") + public void testIfWithCallableReferenceInLazy() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/delegateInference/ifWithCallableReferenceInLazy.kt"); + } + } + @Nested @TestMetadata("compiler/testData/diagnostics/testsWithStdLib/deprecated") @TestDataPath("$PROJECT_ROOT")