From 39372c06cf882a5e5d45a8ae7fe2babcc72a9988 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Wed, 18 Mar 2020 15:29:51 +0300 Subject: [PATCH] [FIR] Move all checkers and theirs infrastructure to separate module --- build.gradle.kts | 1 + compiler/cli/build.gradle.kts | 1 + ...s.rendering.DefaultErrorMessages$Extension | 2 +- compiler/fir/analysis-tests/build.gradle.kts | 3 +- compiler/fir/checkers/build.gradle.kts | 16 ++++++++ .../analysis}/checkers/call/CallCheckers.kt | 2 +- .../checkers/call/FirExpressionChecker.kt | 4 +- .../declaration/DeclarationCheckers.kt | 8 ++-- .../declaration/FirDeclarationChecker.kt | 4 +- .../FirInfixFunctionDeclarationChecker.kt | 8 ++-- .../collectors/AbstractDiagnosticCollector.kt | 16 ++++---- .../collectors/FirDiagnosticsCollector.kt | 2 +- .../ParallelDiagnosticsCollector.kt | 10 ++--- .../collectors/SimpleDiagnosticsCollector.kt | 10 ++--- .../AbstractDiagnosticCollectorComponent.kt | 6 +-- .../DeclarationCheckersDiagnosticComponent.kt | 10 ++--- .../ErrorNodeDiagnosticCollectorComponent.kt | 9 +++-- .../ExpressionCheckersDiagnosticComponent.kt | 10 ++--- .../analysis}/diagnostics/ConeDiagnostic.kt | 4 +- .../diagnostics/DefaultErrorMessagesFir.kt | 37 ++++++++++--------- .../diagnostics/DiagnosticReporter.kt | 4 +- .../FirDiagnosticFactoriesInitializer.kt | 19 ++++++++++ .../fir/analysis}/diagnostics/FirErrors.kt | 14 +++---- compiler/tests-common/build.gradle.kts | 1 + .../fir/AbstractFirBaseDiagnosticsTest.kt | 4 +- .../kotlin/fir/AbstractFirDiagnosticTest.kt | 4 +- idea/build.gradle.kts | 1 + .../idea/fir/FirIdeDiagnosticsCollector.kt | 8 ++-- .../kotlin/idea/fir/FirModuleResolveState.kt | 2 +- idea/idea-core/build.gradle.kts | 1 + ...s.rendering.DefaultErrorMessages$Extension | 2 +- settings.gradle | 1 + 32 files changed, 134 insertions(+), 90 deletions(-) create mode 100644 compiler/fir/checkers/build.gradle.kts rename compiler/fir/{resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics => checkers/src/org/jetbrains/kotlin/fir/analysis}/checkers/call/CallCheckers.kt (89%) rename compiler/fir/{resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics => checkers/src/org/jetbrains/kotlin/fir/analysis}/checkers/call/FirExpressionChecker.kt (83%) rename compiler/fir/{resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics => checkers/src/org/jetbrains/kotlin/fir/analysis}/checkers/declaration/DeclarationCheckers.kt (67%) rename compiler/fir/{resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics => checkers/src/org/jetbrains/kotlin/fir/analysis}/checkers/declaration/FirDeclarationChecker.kt (73%) rename compiler/fir/{resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics => checkers/src/org/jetbrains/kotlin/fir/analysis}/checkers/declaration/FirInfixFunctionDeclarationChecker.kt (81%) rename compiler/fir/{resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics => checkers/src/org/jetbrains/kotlin/fir/analysis}/collectors/AbstractDiagnosticCollector.kt (72%) rename compiler/fir/{resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics => checkers/src/org/jetbrains/kotlin/fir/analysis}/collectors/FirDiagnosticsCollector.kt (91%) rename compiler/fir/{resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics => checkers/src/org/jetbrains/kotlin/fir/analysis}/collectors/ParallelDiagnosticsCollector.kt (87%) rename compiler/fir/{resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics => checkers/src/org/jetbrains/kotlin/fir/analysis}/collectors/SimpleDiagnosticsCollector.kt (62%) rename compiler/fir/{resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics => checkers/src/org/jetbrains/kotlin/fir/analysis}/collectors/components/AbstractDiagnosticCollectorComponent.kt (71%) rename compiler/fir/{resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics => checkers/src/org/jetbrains/kotlin/fir/analysis}/collectors/components/DeclarationCheckersDiagnosticComponent.kt (82%) rename compiler/fir/{resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics => checkers/src/org/jetbrains/kotlin/fir/analysis}/collectors/components/ErrorNodeDiagnosticCollectorComponent.kt (92%) rename compiler/fir/{resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics => checkers/src/org/jetbrains/kotlin/fir/analysis}/collectors/components/ExpressionCheckersDiagnosticComponent.kt (89%) rename compiler/fir/{resolve/src/org/jetbrains/kotlin/fir/resolve => checkers/src/org/jetbrains/kotlin/fir/analysis}/diagnostics/ConeDiagnostic.kt (91%) rename compiler/fir/{resolve/src/org/jetbrains/kotlin/fir/resolve => checkers/src/org/jetbrains/kotlin/fir/analysis}/diagnostics/DefaultErrorMessagesFir.kt (63%) rename compiler/fir/{resolve/src/org/jetbrains/kotlin/fir/resolve => checkers/src/org/jetbrains/kotlin/fir/analysis}/diagnostics/DiagnosticReporter.kt (80%) create mode 100644 compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirDiagnosticFactoriesInitializer.kt rename compiler/fir/{resolve/src/org/jetbrains/kotlin/fir/resolve => checkers/src/org/jetbrains/kotlin/fir/analysis}/diagnostics/FirErrors.kt (80%) diff --git a/build.gradle.kts b/build.gradle.kts index 2b094264508..b2a5580044f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -260,6 +260,7 @@ extra["compilerModules"] = arrayOf( ":compiler:fir:fir2ir", ":compiler:fir:java", ":compiler:fir:jvm", + ":compiler:fir:checkers", ":compiler:fir:analysis-tests" ) diff --git a/compiler/cli/build.gradle.kts b/compiler/cli/build.gradle.kts index 1a68c855b0d..25d804652d5 100644 --- a/compiler/cli/build.gradle.kts +++ b/compiler/cli/build.gradle.kts @@ -26,6 +26,7 @@ dependencies { compile(project(":compiler:fir:jvm")) compile(project(":compiler:fir:java")) compile(project(":compiler:fir:fir2ir")) + compile(project(":compiler:fir:checkers")) compile(project(":kotlin-util-klib")) compile(project(":kotlin-util-io")) compile(project(":compiler:ir.serialization.common")) diff --git a/compiler/cli/resources/META-INF/services/org.jetbrains.kotlin.diagnostics.rendering.DefaultErrorMessages$Extension b/compiler/cli/resources/META-INF/services/org.jetbrains.kotlin.diagnostics.rendering.DefaultErrorMessages$Extension index 2c9066882b8..14bdc34d7c5 100644 --- a/compiler/cli/resources/META-INF/services/org.jetbrains.kotlin.diagnostics.rendering.DefaultErrorMessages$Extension +++ b/compiler/cli/resources/META-INF/services/org.jetbrains.kotlin.diagnostics.rendering.DefaultErrorMessages$Extension @@ -1,5 +1,5 @@ # Note that this file is also present in idea/src/META-INF/services org.jetbrains.kotlin.resolve.jvm.diagnostics.DefaultErrorMessagesJvm org.jetbrains.kotlin.js.resolve.diagnostics.DefaultErrorMessagesJs -org.jetbrains.kotlin.fir.resolve.diagnostics.DefaultErrorMessagesFir +org.jetbrains.kotlin.fir.analysis.diagnostics.DefaultErrorMessagesFir org.jetbrains.kotlin.resolve.konan.diagnostics.DefaultErrorMessagesNative \ No newline at end of file diff --git a/compiler/fir/analysis-tests/build.gradle.kts b/compiler/fir/analysis-tests/build.gradle.kts index a66d90503c1..b3469156696 100644 --- a/compiler/fir/analysis-tests/build.gradle.kts +++ b/compiler/fir/analysis-tests/build.gradle.kts @@ -17,7 +17,8 @@ dependencies { testCompileOnly(project(":kotlin-test:kotlin-test-jvm")) testCompileOnly(project(":kotlin-test:kotlin-test-junit")) testCompile(projectTests(":compiler:tests-common")) - testCompile(project(":compiler:fir:resolve")) + testCompile(project(":compiler:fir:checkers")) + testCompile(project(":compiler:frontend")) testCompileOnly(project(":kotlin-reflect-api")) testRuntime(project(":kotlin-reflect")) diff --git a/compiler/fir/checkers/build.gradle.kts b/compiler/fir/checkers/build.gradle.kts new file mode 100644 index 00000000000..76678ffda5f --- /dev/null +++ b/compiler/fir/checkers/build.gradle.kts @@ -0,0 +1,16 @@ +plugins { + kotlin("jvm") + id("jps-compatible") +} + +dependencies { + compile(project(":compiler:fir:resolve")) + + compileOnly(project(":kotlin-reflect-api")) + compileOnly(intellijCoreDep()) { includeJars("intellij-core", "guava", rootProject = rootProject) } +} + +sourceSets { + "main" { projectDefault() } + "test" { none() } +} diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/checkers/call/CallCheckers.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/call/CallCheckers.kt similarity index 89% rename from compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/checkers/call/CallCheckers.kt rename to compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/call/CallCheckers.kt index 382d9483da6..c7c42fdf641 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/checkers/call/CallCheckers.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/call/CallCheckers.kt @@ -3,7 +3,7 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.fir.resolve.diagnostics.checkers.call +package org.jetbrains.kotlin.fir.analysis.checkers.call import org.jetbrains.kotlin.fir.expressions.FirExpression diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/checkers/call/FirExpressionChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/call/FirExpressionChecker.kt similarity index 83% rename from compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/checkers/call/FirExpressionChecker.kt rename to compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/call/FirExpressionChecker.kt index ddb5df51db6..65ccf20f3ee 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/checkers/call/FirExpressionChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/call/FirExpressionChecker.kt @@ -3,12 +3,12 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.fir.resolve.diagnostics.checkers.call +package org.jetbrains.kotlin.fir.analysis.checkers.call +import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirFunctionCall import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression -import org.jetbrains.kotlin.fir.resolve.diagnostics.DiagnosticReporter abstract class FirExpressionChecker { abstract fun check(functionCall: E, reporter: DiagnosticReporter) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/checkers/declaration/DeclarationCheckers.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/DeclarationCheckers.kt similarity index 67% rename from compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/checkers/declaration/DeclarationCheckers.kt rename to compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/DeclarationCheckers.kt index 557e48a014c..404b5770704 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/checkers/declaration/DeclarationCheckers.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/DeclarationCheckers.kt @@ -1,14 +1,16 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.fir.resolve.diagnostics.checkers.declaration +package org.jetbrains.kotlin.fir.analysis.checkers.declaration import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration object DeclarationCheckers { val DECLARATIONS: List> = listOf() - val MEMBER_DECLARATIONS: List> = DECLARATIONS + listOf(FirInfixFunctionDeclarationChecker) + val MEMBER_DECLARATIONS: List> = DECLARATIONS + listOf( + FirInfixFunctionDeclarationChecker + ) } \ No newline at end of file diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/checkers/declaration/FirDeclarationChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDeclarationChecker.kt similarity index 73% rename from compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/checkers/declaration/FirDeclarationChecker.kt rename to compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDeclarationChecker.kt index 14a38977a1e..a8c9a0c3479 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/checkers/declaration/FirDeclarationChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDeclarationChecker.kt @@ -3,10 +3,10 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.fir.resolve.diagnostics.checkers.declaration +package org.jetbrains.kotlin.fir.analysis.checkers.declaration +import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter import org.jetbrains.kotlin.fir.declarations.FirDeclaration -import org.jetbrains.kotlin.fir.resolve.diagnostics.DiagnosticReporter abstract class FirDeclarationChecker { abstract fun check(declaration: D, reporter: DiagnosticReporter) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/checkers/declaration/FirInfixFunctionDeclarationChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirInfixFunctionDeclarationChecker.kt similarity index 81% rename from compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/checkers/declaration/FirInfixFunctionDeclarationChecker.kt rename to compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirInfixFunctionDeclarationChecker.kt index 24a8f119ff5..7a083da3a9d 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/checkers/declaration/FirInfixFunctionDeclarationChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirInfixFunctionDeclarationChecker.kt @@ -1,17 +1,17 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.fir.resolve.diagnostics.checkers.declaration +package org.jetbrains.kotlin.fir.analysis.checkers.declaration import org.jetbrains.kotlin.diagnostics.Errors import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter +import org.jetbrains.kotlin.fir.analysis.diagnostics.onSource import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction import org.jetbrains.kotlin.fir.declarations.isInfix -import org.jetbrains.kotlin.fir.resolve.diagnostics.DiagnosticReporter -import org.jetbrains.kotlin.fir.resolve.diagnostics.onSource object FirInfixFunctionDeclarationChecker : FirDeclarationChecker() { override fun check(declaration: FirMemberDeclaration, reporter: DiagnosticReporter) { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/collectors/AbstractDiagnosticCollector.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/AbstractDiagnosticCollector.kt similarity index 72% rename from compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/collectors/AbstractDiagnosticCollector.kt rename to compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/AbstractDiagnosticCollector.kt index b058cafce46..aa31a63d848 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/collectors/AbstractDiagnosticCollector.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/AbstractDiagnosticCollector.kt @@ -1,18 +1,18 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.fir.resolve.diagnostics.collectors +package org.jetbrains.kotlin.fir.analysis.collectors import org.jetbrains.kotlin.fir.FirElement +import org.jetbrains.kotlin.fir.analysis.collectors.components.AbstractDiagnosticCollectorComponent +import org.jetbrains.kotlin.fir.analysis.collectors.components.DeclarationCheckersDiagnosticComponent +import org.jetbrains.kotlin.fir.analysis.collectors.components.ErrorNodeDiagnosticCollectorComponent +import org.jetbrains.kotlin.fir.analysis.collectors.components.ExpressionCheckersDiagnosticComponent +import org.jetbrains.kotlin.fir.analysis.diagnostics.ConeDiagnostic +import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter import org.jetbrains.kotlin.fir.declarations.FirFile -import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeDiagnostic -import org.jetbrains.kotlin.fir.resolve.diagnostics.DiagnosticReporter -import org.jetbrains.kotlin.fir.resolve.diagnostics.collectors.components.AbstractDiagnosticCollectorComponent -import org.jetbrains.kotlin.fir.resolve.diagnostics.collectors.components.ExpressionCheckersDiagnosticComponent -import org.jetbrains.kotlin.fir.resolve.diagnostics.collectors.components.DeclarationCheckersDiagnosticComponent -import org.jetbrains.kotlin.fir.resolve.diagnostics.collectors.components.ErrorNodeDiagnosticCollectorComponent import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid abstract class AbstractDiagnosticCollector { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/collectors/FirDiagnosticsCollector.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/FirDiagnosticsCollector.kt similarity index 91% rename from compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/collectors/FirDiagnosticsCollector.kt rename to compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/FirDiagnosticsCollector.kt index 0435c7150eb..780ed94d469 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/collectors/FirDiagnosticsCollector.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/FirDiagnosticsCollector.kt @@ -3,7 +3,7 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.fir.resolve.diagnostics.collectors +package org.jetbrains.kotlin.fir.analysis.collectors object FirDiagnosticsCollector { fun create(): AbstractDiagnosticCollector { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/collectors/ParallelDiagnosticsCollector.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/ParallelDiagnosticsCollector.kt similarity index 87% rename from compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/collectors/ParallelDiagnosticsCollector.kt rename to compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/ParallelDiagnosticsCollector.kt index 45b8d19279a..142d06c6987 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/collectors/ParallelDiagnosticsCollector.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/ParallelDiagnosticsCollector.kt @@ -1,13 +1,13 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.fir.resolve.diagnostics.collectors +package org.jetbrains.kotlin.fir.analysis.collectors -import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeDiagnostic -import org.jetbrains.kotlin.fir.resolve.diagnostics.DiagnosticReporter -import org.jetbrains.kotlin.fir.resolve.diagnostics.SimpleDiagnosticReporter +import org.jetbrains.kotlin.fir.analysis.diagnostics.ConeDiagnostic +import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter +import org.jetbrains.kotlin.fir.analysis.diagnostics.SimpleDiagnosticReporter import java.util.* import java.util.concurrent.Executors import java.util.concurrent.Future diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/collectors/SimpleDiagnosticsCollector.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/SimpleDiagnosticsCollector.kt similarity index 62% rename from compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/collectors/SimpleDiagnosticsCollector.kt rename to compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/SimpleDiagnosticsCollector.kt index 7c6d08ddaca..69668b9812b 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/collectors/SimpleDiagnosticsCollector.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/SimpleDiagnosticsCollector.kt @@ -1,13 +1,13 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.fir.resolve.diagnostics.collectors +package org.jetbrains.kotlin.fir.analysis.collectors -import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeDiagnostic -import org.jetbrains.kotlin.fir.resolve.diagnostics.DiagnosticReporter -import org.jetbrains.kotlin.fir.resolve.diagnostics.SimpleDiagnosticReporter +import org.jetbrains.kotlin.fir.analysis.diagnostics.ConeDiagnostic +import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter +import org.jetbrains.kotlin.fir.analysis.diagnostics.SimpleDiagnosticReporter class SimpleDiagnosticsCollector : AbstractDiagnosticCollector() { private var reporter = SimpleDiagnosticReporter() diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/collectors/components/AbstractDiagnosticCollectorComponent.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/AbstractDiagnosticCollectorComponent.kt similarity index 71% rename from compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/collectors/components/AbstractDiagnosticCollectorComponent.kt rename to compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/AbstractDiagnosticCollectorComponent.kt index a77c023873d..e84c3c22561 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/collectors/components/AbstractDiagnosticCollectorComponent.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/AbstractDiagnosticCollectorComponent.kt @@ -3,11 +3,11 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.fir.resolve.diagnostics.collectors.components +package org.jetbrains.kotlin.fir.analysis.collectors.components import org.jetbrains.kotlin.fir.FirElement -import org.jetbrains.kotlin.fir.resolve.diagnostics.DiagnosticReporter -import org.jetbrains.kotlin.fir.resolve.diagnostics.collectors.AbstractDiagnosticCollector +import org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollector +import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid abstract class AbstractDiagnosticCollectorComponent(private val collector: AbstractDiagnosticCollector) : FirVisitorVoid() { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/collectors/components/DeclarationCheckersDiagnosticComponent.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/DeclarationCheckersDiagnosticComponent.kt similarity index 82% rename from compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/collectors/components/DeclarationCheckersDiagnosticComponent.kt rename to compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/DeclarationCheckersDiagnosticComponent.kt index 2657bfa8a65..2f372a2386a 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/collectors/components/DeclarationCheckersDiagnosticComponent.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/DeclarationCheckersDiagnosticComponent.kt @@ -3,13 +3,13 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.fir.resolve.diagnostics.collectors.components +package org.jetbrains.kotlin.fir.analysis.collectors.components +import org.jetbrains.kotlin.fir.analysis.checkers.declaration.DeclarationCheckers +import org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirDeclarationChecker +import org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollector +import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter import org.jetbrains.kotlin.fir.declarations.* -import org.jetbrains.kotlin.fir.resolve.diagnostics.DiagnosticReporter -import org.jetbrains.kotlin.fir.resolve.diagnostics.checkers.declaration.DeclarationCheckers -import org.jetbrains.kotlin.fir.resolve.diagnostics.checkers.declaration.FirDeclarationChecker -import org.jetbrains.kotlin.fir.resolve.diagnostics.collectors.AbstractDiagnosticCollector class DeclarationCheckersDiagnosticComponent(collector: AbstractDiagnosticCollector) : AbstractDiagnosticCollectorComponent(collector) { override fun visitProperty(property: FirProperty) { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/collectors/components/ErrorNodeDiagnosticCollectorComponent.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/ErrorNodeDiagnosticCollectorComponent.kt similarity index 92% rename from compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/collectors/components/ErrorNodeDiagnosticCollectorComponent.kt rename to compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/ErrorNodeDiagnosticCollectorComponent.kt index 32d00d50d6c..6224a49fdfc 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/collectors/components/ErrorNodeDiagnosticCollectorComponent.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/ErrorNodeDiagnosticCollectorComponent.kt @@ -3,13 +3,16 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.fir.resolve.diagnostics.collectors.components +package org.jetbrains.kotlin.fir.analysis.collectors.components import com.intellij.psi.PsiElement import org.jetbrains.kotlin.diagnostics.DiagnosticFactory0 import org.jetbrains.kotlin.diagnostics.Errors -import org.jetbrains.kotlin.diagnostics.FirErrors import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollector +import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter +import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors +import org.jetbrains.kotlin.fir.analysis.diagnostics.onSource import org.jetbrains.kotlin.fir.declarations.FirErrorFunction import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind import org.jetbrains.kotlin.fir.diagnostics.FirDiagnostic @@ -19,7 +22,6 @@ import org.jetbrains.kotlin.fir.expressions.FirErrorExpression import org.jetbrains.kotlin.fir.expressions.FirErrorLoop import org.jetbrains.kotlin.fir.references.FirErrorNamedReference import org.jetbrains.kotlin.fir.resolve.diagnostics.* -import org.jetbrains.kotlin.fir.resolve.diagnostics.collectors.AbstractDiagnosticCollector import org.jetbrains.kotlin.fir.types.FirErrorTypeRef class ErrorNodeDiagnosticCollectorComponent(collector: AbstractDiagnosticCollector) : AbstractDiagnosticCollectorComponent(collector) { @@ -66,6 +68,7 @@ class ErrorNodeDiagnosticCollectorComponent(collector: AbstractDiagnosticCollect } private fun FirSimpleDiagnostic.getFactory(): DiagnosticFactory0 { + @Suppress("UNCHECKED_CAST") return when (kind) { DiagnosticKind.Syntax -> FirErrors.SYNTAX_ERROR DiagnosticKind.ReturnNotAllowed -> Errors.RETURN_NOT_ALLOWED diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/collectors/components/ExpressionCheckersDiagnosticComponent.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/ExpressionCheckersDiagnosticComponent.kt similarity index 89% rename from compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/collectors/components/ExpressionCheckersDiagnosticComponent.kt rename to compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/ExpressionCheckersDiagnosticComponent.kt index e15e3c03e15..2277cc3e759 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/collectors/components/ExpressionCheckersDiagnosticComponent.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/ExpressionCheckersDiagnosticComponent.kt @@ -3,13 +3,13 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.fir.resolve.diagnostics.collectors.components +package org.jetbrains.kotlin.fir.analysis.collectors.components +import org.jetbrains.kotlin.fir.analysis.checkers.call.CallCheckers +import org.jetbrains.kotlin.fir.analysis.checkers.call.FirExpressionChecker +import org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollector +import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter import org.jetbrains.kotlin.fir.expressions.* -import org.jetbrains.kotlin.fir.resolve.diagnostics.DiagnosticReporter -import org.jetbrains.kotlin.fir.resolve.diagnostics.checkers.call.CallCheckers -import org.jetbrains.kotlin.fir.resolve.diagnostics.checkers.call.FirExpressionChecker -import org.jetbrains.kotlin.fir.resolve.diagnostics.collectors.AbstractDiagnosticCollector class ExpressionCheckersDiagnosticComponent(collector: AbstractDiagnosticCollector) : AbstractDiagnosticCollectorComponent(collector) { override fun visitTypeOperatorCall(typeOperatorCall: FirTypeOperatorCall) { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/ConeDiagnostic.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/ConeDiagnostic.kt similarity index 91% rename from compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/ConeDiagnostic.kt rename to compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/ConeDiagnostic.kt index 19ac1fc3f20..75cae4bb49e 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/ConeDiagnostic.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/ConeDiagnostic.kt @@ -1,9 +1,9 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.fir.resolve.diagnostics +package org.jetbrains.kotlin.fir.analysis.diagnostics import com.intellij.psi.PsiElement import org.jetbrains.kotlin.diagnostics.* diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/DefaultErrorMessagesFir.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/DefaultErrorMessagesFir.kt similarity index 63% rename from compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/DefaultErrorMessagesFir.kt rename to compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/DefaultErrorMessagesFir.kt index 18ac6dddf21..10a8a0b71df 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/DefaultErrorMessagesFir.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/DefaultErrorMessagesFir.kt @@ -1,26 +1,26 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.fir.resolve.diagnostics +package org.jetbrains.kotlin.fir.analysis.diagnostics -import org.jetbrains.kotlin.diagnostics.FirErrors.AMBIGUITY -import org.jetbrains.kotlin.diagnostics.FirErrors.ASSIGN_OPERATOR_AMBIGUITY -import org.jetbrains.kotlin.diagnostics.FirErrors.DESERIALIZATION_ERROR -import org.jetbrains.kotlin.diagnostics.FirErrors.ENUM_AS_SUPERTYPE -import org.jetbrains.kotlin.diagnostics.FirErrors.ERROR_FROM_JAVA_RESOLUTION -import org.jetbrains.kotlin.diagnostics.FirErrors.ILLEGAL_CONST_EXPRESSION -import org.jetbrains.kotlin.diagnostics.FirErrors.INAPPLICABLE_CANDIDATE -import org.jetbrains.kotlin.diagnostics.FirErrors.INFERENCE_ERROR -import org.jetbrains.kotlin.diagnostics.FirErrors.NO_SUPERTYPE -import org.jetbrains.kotlin.diagnostics.FirErrors.OTHER_ERROR -import org.jetbrains.kotlin.diagnostics.FirErrors.RECURSION_IN_IMPLICIT_TYPES -import org.jetbrains.kotlin.diagnostics.FirErrors.RECURSION_IN_SUPERTYPES -import org.jetbrains.kotlin.diagnostics.FirErrors.SYNTAX_ERROR -import org.jetbrains.kotlin.diagnostics.FirErrors.TYPE_PARAMETER_AS_SUPERTYPE -import org.jetbrains.kotlin.diagnostics.FirErrors.UNRESOLVED_LABEL -import org.jetbrains.kotlin.diagnostics.FirErrors.UNRESOLVED_REFERENCE +import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.AMBIGUITY +import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.ASSIGN_OPERATOR_AMBIGUITY +import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.DESERIALIZATION_ERROR +import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.ENUM_AS_SUPERTYPE +import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.ERROR_FROM_JAVA_RESOLUTION +import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.ILLEGAL_CONST_EXPRESSION +import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.INAPPLICABLE_CANDIDATE +import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.INFERENCE_ERROR +import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.NO_SUPERTYPE +import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.OTHER_ERROR +import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.RECURSION_IN_IMPLICIT_TYPES +import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.RECURSION_IN_SUPERTYPES +import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.SYNTAX_ERROR +import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.TYPE_PARAMETER_AS_SUPERTYPE +import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.UNRESOLVED_LABEL +import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.UNRESOLVED_REFERENCE import org.jetbrains.kotlin.diagnostics.rendering.DefaultErrorMessages import org.jetbrains.kotlin.diagnostics.rendering.DiagnosticFactoryToRendererMap import org.jetbrains.kotlin.diagnostics.rendering.Renderer @@ -28,6 +28,7 @@ import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol +@Suppress("unused") class DefaultErrorMessagesFir : DefaultErrorMessages.Extension { override fun getMap(): DiagnosticFactoryToRendererMap { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/DiagnosticReporter.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/DiagnosticReporter.kt similarity index 80% rename from compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/DiagnosticReporter.kt rename to compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/DiagnosticReporter.kt index 51462d00128..d26839a24f1 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/DiagnosticReporter.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/DiagnosticReporter.kt @@ -1,9 +1,9 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.fir.resolve.diagnostics +package org.jetbrains.kotlin.fir.analysis.diagnostics abstract class DiagnosticReporter { abstract fun report(diagnostic: ConeDiagnostic?) diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirDiagnosticFactoriesInitializer.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirDiagnosticFactoriesInitializer.kt new file mode 100644 index 00000000000..4b3525afe37 --- /dev/null +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirDiagnosticFactoriesInitializer.kt @@ -0,0 +1,19 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +@file:Suppress("PackageDirectoryMismatch") + +package org.jetbrains.kotlin.diagnostics + +import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors +import kotlin.reflect.full.memberProperties + +fun FirErrors.registerExternalFactories() { + val klass = FirErrors::class + for (property in klass.memberProperties) { + val factory = property.get(this) as? DiagnosticFactory<*> ?: continue + factory.name = property.name + } +} \ No newline at end of file diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/FirErrors.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrors.kt similarity index 80% rename from compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/FirErrors.kt rename to compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrors.kt index b3593e2b591..2ce3dae3a1c 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/FirErrors.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrors.kt @@ -1,15 +1,15 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.diagnostics +package org.jetbrains.kotlin.fir.analysis.diagnostics -import org.jetbrains.kotlin.diagnostics.Severity.* +import org.jetbrains.kotlin.diagnostics.* +import org.jetbrains.kotlin.diagnostics.Severity.ERROR import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.psi.KtElement -import kotlin.reflect.full.memberProperties object FirErrors { val UNRESOLVED_REFERENCE = DiagnosticFactory1.create(ERROR) @@ -31,10 +31,6 @@ object FirErrors { val TYPE_MISMATCH = DiagnosticFactory2.create(ERROR) init { - val klass = FirErrors::class - for (property in klass.memberProperties) { - val factory = property.get(this) as? DiagnosticFactory<*> ?: continue - factory.name = property.name - } + registerExternalFactories() } } \ No newline at end of file diff --git a/compiler/tests-common/build.gradle.kts b/compiler/tests-common/build.gradle.kts index ba6086479c8..b5bacb6992f 100644 --- a/compiler/tests-common/build.gradle.kts +++ b/compiler/tests-common/build.gradle.kts @@ -17,6 +17,7 @@ dependencies { testCompile(project(":compiler:fir:fir2ir")) testCompile(project(":compiler:fir:cones")) testCompile(project(":compiler:fir:resolve")) + testCompile(project(":compiler:fir:checkers")) testCompile(project(":compiler:fir:java")) testCompile(project(":compiler:ir.ir2cfg")) testCompile(project(":compiler:frontend")) diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/fir/AbstractFirBaseDiagnosticsTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/fir/AbstractFirBaseDiagnosticsTest.kt index c565f65737a..075bac53410 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/fir/AbstractFirBaseDiagnosticsTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/fir/AbstractFirBaseDiagnosticsTest.kt @@ -21,15 +21,15 @@ import org.jetbrains.kotlin.checkers.diagnostics.TextDiagnostic import org.jetbrains.kotlin.checkers.utils.CheckerTestUtil import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment import org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM -import org.jetbrains.kotlin.diagnostics.FirErrors import org.jetbrains.kotlin.diagnostics.PsiDiagnosticUtils +import org.jetbrains.kotlin.fir.analysis.diagnostics.ConeDiagnostic +import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors import org.jetbrains.kotlin.fir.builder.RawFirBuilder import org.jetbrains.kotlin.fir.declarations.FirFile import org.jetbrains.kotlin.fir.java.FirJavaModuleBasedSession import org.jetbrains.kotlin.fir.java.FirLibrarySession import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider import org.jetbrains.kotlin.fir.lightTree.LightTree2Fir -import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.resolve.firProvider import org.jetbrains.kotlin.fir.resolve.impl.FirProviderImpl import org.jetbrains.kotlin.name.FqName diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/fir/AbstractFirDiagnosticTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/fir/AbstractFirDiagnosticTest.kt index 50464c32d1a..921b7e0295b 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/fir/AbstractFirDiagnosticTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/fir/AbstractFirDiagnosticTest.kt @@ -6,6 +6,8 @@ package org.jetbrains.kotlin.fir import junit.framework.TestCase +import org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollector +import org.jetbrains.kotlin.fir.analysis.collectors.FirDiagnosticsCollector import org.jetbrains.kotlin.fir.declarations.FirFile import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference import org.jetbrains.kotlin.fir.resolve.dfa.FirControlFlowGraphReferenceImpl @@ -13,8 +15,6 @@ import org.jetbrains.kotlin.fir.resolve.dfa.cfg.CFGNode import org.jetbrains.kotlin.fir.resolve.dfa.cfg.ControlFlowGraph import org.jetbrains.kotlin.fir.resolve.dfa.cfg.EdgeKind import org.jetbrains.kotlin.fir.resolve.dfa.cfg.FirControlFlowGraphRenderVisitor -import org.jetbrains.kotlin.fir.resolve.diagnostics.collectors.AbstractDiagnosticCollector -import org.jetbrains.kotlin.fir.resolve.diagnostics.collectors.FirDiagnosticsCollector import org.jetbrains.kotlin.fir.resolve.transformers.FirTotalResolveTransformer import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid import org.jetbrains.kotlin.test.KotlinTestUtils diff --git a/idea/build.gradle.kts b/idea/build.gradle.kts index 91f4ab7ae8b..5930df548ee 100644 --- a/idea/build.gradle.kts +++ b/idea/build.gradle.kts @@ -62,6 +62,7 @@ dependencies { compile(project(":idea:formatter")) compile(project(":compiler:fir:fir2ir")) compile(project(":compiler:fir:resolve")) + compile(project(":compiler:fir:checkers")) compile(project(":compiler:fir:java")) compile(project(":compiler:fir:jvm")) compile(project(":idea:idea-core")) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirIdeDiagnosticsCollector.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirIdeDiagnosticsCollector.kt index 3cd98d6f598..32adaf5613a 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirIdeDiagnosticsCollector.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirIdeDiagnosticsCollector.kt @@ -5,11 +5,11 @@ package org.jetbrains.kotlin.idea.fir +import org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollector +import org.jetbrains.kotlin.fir.analysis.collectors.registerAllComponents +import org.jetbrains.kotlin.fir.analysis.diagnostics.ConeDiagnostic +import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter import org.jetbrains.kotlin.fir.psi -import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeDiagnostic -import org.jetbrains.kotlin.fir.resolve.diagnostics.DiagnosticReporter -import org.jetbrains.kotlin.fir.resolve.diagnostics.collectors.AbstractDiagnosticCollector -import org.jetbrains.kotlin.fir.resolve.diagnostics.collectors.registerAllComponents import org.jetbrains.kotlin.psi.KtElement class FirIdeDiagnosticsCollector(private val resolveState: FirModuleResolveState) : AbstractDiagnosticCollector() { diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirModuleResolveState.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirModuleResolveState.kt index 60bdb9e6ea3..f769d1ff94b 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirModuleResolveState.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirModuleResolveState.kt @@ -11,10 +11,10 @@ import com.intellij.psi.PsiElementVisitor import org.jetbrains.kotlin.diagnostics.Diagnostic import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.analysis.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.declarations.FirFile import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider import org.jetbrains.kotlin.fir.psi -import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.idea.caches.project.ModuleSourceInfo import org.jetbrains.kotlin.idea.caches.project.getModuleInfo import org.jetbrains.kotlin.psi.KtElement diff --git a/idea/idea-core/build.gradle.kts b/idea/idea-core/build.gradle.kts index e7ad2ffe485..c4ef858bca9 100644 --- a/idea/idea-core/build.gradle.kts +++ b/idea/idea-core/build.gradle.kts @@ -22,6 +22,7 @@ dependencies { compile(project(":compiler:fir:psi2fir")) compile(project(":compiler:fir:fir2ir")) compile(project(":compiler:fir:resolve")) + compile(project(":compiler:fir:checkers")) compile(project(":compiler:fir:java")) compile(project(":compiler:fir:jvm")) compile(commonDep("org.jetbrains.kotlinx", "kotlinx-coroutines-core")) { isTransitive = false } diff --git a/idea/resources/META-INF/services/org.jetbrains.kotlin.diagnostics.rendering.DefaultErrorMessages$Extension b/idea/resources/META-INF/services/org.jetbrains.kotlin.diagnostics.rendering.DefaultErrorMessages$Extension index 6bc5ead4674..d009510a1c0 100644 --- a/idea/resources/META-INF/services/org.jetbrains.kotlin.diagnostics.rendering.DefaultErrorMessages$Extension +++ b/idea/resources/META-INF/services/org.jetbrains.kotlin.diagnostics.rendering.DefaultErrorMessages$Extension @@ -1,5 +1,5 @@ # Note that this file is also present in compiler/cli/src/META-INF/services org.jetbrains.kotlin.resolve.jvm.diagnostics.DefaultErrorMessagesJvm org.jetbrains.kotlin.js.resolve.diagnostics.DefaultErrorMessagesJs -org.jetbrains.kotlin.fir.resolve.diagnostics.DefaultErrorMessagesFir +org.jetbrains.kotlin.fir.analysis.diagnostics.DefaultErrorMessagesFir org.jetbrains.kotlin.resolve.konan.diagnostics.DefaultErrorMessagesNative \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 249fcc4fcc9..4d8eb52a62a 100644 --- a/settings.gradle +++ b/settings.gradle @@ -88,6 +88,7 @@ include ":kotlin-build-common", ":compiler:fir:modularized-tests", ":compiler:fir:dump", ":compiler:fir:jvm", + ":compiler:fir:checkers", ":compiler:fir:analysis-tests", ":compiler:frontend", ":compiler:frontend.common",