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 c9c801eab27..0af002921d6 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 @@ -11579,6 +11579,12 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirDiagnosti runTest("compiler/testData/diagnostics/tests/imports/importFunctionWithAllUnderImportAfterNamedImport.kt"); } + @Test + @TestMetadata("ImportFunctionWithPackageName.kt") + public void testImportFunctionWithPackageName() throws Exception { + runTest("compiler/testData/diagnostics/tests/imports/ImportFunctionWithPackageName.kt"); + } + @Test @TestMetadata("ImportHidingDefinitionInTheSameFile.kt") public void testImportHidingDefinitionInTheSameFile() 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 98101e7e268..39c043b4136 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 @@ -11579,6 +11579,12 @@ public class FirOldFrontendDiagnosticsWithLightTreeTestGenerated extends Abstrac runTest("compiler/testData/diagnostics/tests/imports/importFunctionWithAllUnderImportAfterNamedImport.kt"); } + @Test + @TestMetadata("ImportFunctionWithPackageName.kt") + public void testImportFunctionWithPackageName() throws Exception { + runTest("compiler/testData/diagnostics/tests/imports/ImportFunctionWithPackageName.kt"); + } + @Test @TestMetadata("ImportHidingDefinitionInTheSameFile.kt") public void testImportHidingDefinitionInTheSameFile() throws Exception { diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirImportsChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirImportsChecker.kt index 380a881da26..f30938802ff 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirImportsChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirImportsChecker.kt @@ -65,7 +65,9 @@ object FirImportsChecker : FirFileChecker() { } } else { val importedClassId = ClassId.topLevel(importedFqName) - if (importedClassId.resolveToClass(context) != null) { + if (importedClassId.resolveToClass(context) != null + || context.session.symbolProvider.getTopLevelCallableSymbols(importedFqName.parent(), importedName).isNotEmpty() + ) { return } context.session.symbolProvider.getPackage(importedFqName)?.let { diff --git a/compiler/testData/diagnostics/tests/imports/ImportFunctionWithPackageName.kt b/compiler/testData/diagnostics/tests/imports/ImportFunctionWithPackageName.kt new file mode 100644 index 00000000000..05be62fa440 --- /dev/null +++ b/compiler/testData/diagnostics/tests/imports/ImportFunctionWithPackageName.kt @@ -0,0 +1,13 @@ +// FIR_IDENTICAL +//FILE:a.kt +package a.foo + +//FILE:b.kt +package a + +fun foo() = 2 + +//FILE:c.kt +package c + +import a.foo 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 bb118968603..6a422956661 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 @@ -11585,6 +11585,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/imports/importFunctionWithAllUnderImportAfterNamedImport.kt"); } + @Test + @TestMetadata("ImportFunctionWithPackageName.kt") + public void testImportFunctionWithPackageName() throws Exception { + runTest("compiler/testData/diagnostics/tests/imports/ImportFunctionWithPackageName.kt"); + } + @Test @TestMetadata("ImportHidingDefinitionInTheSameFile.kt") public void testImportHidingDefinitionInTheSameFile() throws Exception { diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java index 55bcfd55cb5..7314e6da435 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java @@ -10097,6 +10097,11 @@ public class DiagnosisCompilerTestFE10TestdataTestGenerated extends AbstractDiag runTest("compiler/testData/diagnostics/tests/imports/importFunctionWithAllUnderImportAfterNamedImport.kt"); } + @TestMetadata("ImportFunctionWithPackageName.kt") + public void testImportFunctionWithPackageName() throws Exception { + runTest("compiler/testData/diagnostics/tests/imports/ImportFunctionWithPackageName.kt"); + } + @TestMetadata("ImportHidingDefinitionInTheSameFile.kt") public void testImportHidingDefinitionInTheSameFile() throws Exception { runTest("compiler/testData/diagnostics/tests/imports/ImportHidingDefinitionInTheSameFile.kt");