From 9e34a5ad82393c2abb990714d5ed726e4c59094e Mon Sep 17 00:00:00 2001 From: Kirill Rakhman Date: Thu, 20 Apr 2023 12:14:42 +0200 Subject: [PATCH] [FIR] Ignore error declarations in conflict checking --- .../testData/resolve/diagnostics/conflictingOverloads.fir.txt | 2 ++ .../testData/resolve/diagnostics/conflictingOverloads.kt | 3 +++ .../testData/resolve/diagnostics/conflictingOverloads.ll.kt | 3 +++ .../checkers/declaration/FirConflictsDeclarationChecker.kt | 1 + 4 files changed, 9 insertions(+) diff --git a/compiler/fir/analysis-tests/testData/resolve/diagnostics/conflictingOverloads.fir.txt b/compiler/fir/analysis-tests/testData/resolve/diagnostics/conflictingOverloads.fir.txt index 8bdec4228ba..b3c363b7f87 100644 --- a/compiler/fir/analysis-tests/testData/resolve/diagnostics/conflictingOverloads.fir.txt +++ b/compiler/fir/analysis-tests/testData/resolve/diagnostics/conflictingOverloads.fir.txt @@ -64,6 +64,8 @@ FILE: conflictingOverloads.kt public get(): R|kotlin/Int| public final val u: R|kotlin/Int| = Int(20) public get(): R|kotlin/Int| + + public final typealias TA = R|A| public final typealias TA = R|B| public final typealias BA = R|A| diff --git a/compiler/fir/analysis-tests/testData/resolve/diagnostics/conflictingOverloads.kt b/compiler/fir/analysis-tests/testData/resolve/diagnostics/conflictingOverloads.kt index da5d2512fca..9bcf42f222f 100644 --- a/compiler/fir/analysis-tests/testData/resolve/diagnostics/conflictingOverloads.kt +++ b/compiler/fir/analysis-tests/testData/resolve/diagnostics/conflictingOverloads.kt @@ -33,6 +33,9 @@ enum class B val u = 10 val u = 20 +val (a,b) = 30 to 40 +val (c,d) = 50 to 60 + typealias TA = A typealias TA = B diff --git a/compiler/fir/analysis-tests/testData/resolve/diagnostics/conflictingOverloads.ll.kt b/compiler/fir/analysis-tests/testData/resolve/diagnostics/conflictingOverloads.ll.kt index c4f1c97579f..7f568ff4361 100644 --- a/compiler/fir/analysis-tests/testData/resolve/diagnostics/conflictingOverloads.ll.kt +++ b/compiler/fir/analysis-tests/testData/resolve/diagnostics/conflictingOverloads.ll.kt @@ -37,6 +37,9 @@ enum class B val u = 10 val u = 20 +val (a,b) = 30 to 40 +val (c,d) = 50 to 60 + typealias TA = A typealias TA = B diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirConflictsDeclarationChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirConflictsDeclarationChecker.kt index d0d9ba8f82a..b2bd6609c54 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirConflictsDeclarationChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirConflictsDeclarationChecker.kt @@ -77,6 +77,7 @@ object FirConflictsDeclarationChecker : FirBasicDeclarationChecker() { FirPackageMemberScope(file.packageFqName, context.sessionHolder.session) } for (topLevelDeclaration in file.declarations) { + if (topLevelDeclaration is FirErrorProperty || topLevelDeclaration is FirErrorFunction) continue inspector.collectWithExternalConflicts(topLevelDeclaration, file, context.session, packageMemberScope) } }