From bad30a4b99a7ce8b37da7721058c9270b8fd19d9 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Thu, 18 Oct 2018 18:56:12 +0200 Subject: [PATCH] Add module to ExperimentalMarkerDeclarationAnnotationChecker Will be used in a subsequent commit --- .../src/org/jetbrains/kotlin/frontend/di/injection.kt | 1 + .../src/org/jetbrains/kotlin/resolve/TargetPlatform.kt | 9 ++++++--- .../ExperimentalMarkerDeclarationAnnotationChecker.kt | 3 ++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/frontend/di/injection.kt b/compiler/frontend/src/org/jetbrains/kotlin/frontend/di/injection.kt index 9abdf04301d..277e9b86738 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/frontend/di/injection.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/frontend/di/injection.kt @@ -54,6 +54,7 @@ fun StorageComponentContainer.configureModule( useInstance(platformVersion) platform.platformConfigurator.configureModuleComponents(this) + platform.platformConfigurator.configureModuleDependentCheckers(this) for (extension in StorageComponentContainerContributor.getInstances(moduleContext.project)) { extension.registerModuleComponents(this, platform, moduleContext.module) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt index 989102d1a2e..41e6e0df304 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt @@ -9,6 +9,7 @@ import org.jetbrains.kotlin.builtins.PlatformToKotlinClassMap import org.jetbrains.kotlin.config.* import org.jetbrains.kotlin.container.StorageComponentContainer import org.jetbrains.kotlin.container.composeContainer +import org.jetbrains.kotlin.container.useImpl import org.jetbrains.kotlin.container.useInstance import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.resolve.calls.checkers.* @@ -139,9 +140,7 @@ private val DEFAULT_CLASSIFIER_USAGE_CHECKERS = listOf( DeprecatedClassifierUsageChecker(), ApiVersionClassifierUsageChecker, MissingDependencyClassChecker.ClassifierUsage, OptionalExpectationUsageChecker() ) -private val DEFAULT_ANNOTATION_CHECKERS = listOf( - ExperimentalMarkerDeclarationAnnotationChecker -) +private val DEFAULT_ANNOTATION_CHECKERS = listOf() abstract class PlatformConfigurator( @@ -181,6 +180,10 @@ abstract class PlatformConfigurator( useInstance(overridesBackwardCompatibilityHelper) useInstance(declarationReturnTypeSanitizer) } + + fun configureModuleDependentCheckers(container: StorageComponentContainer) { + container.useImpl() + } } fun createContainer(id: String, platform: TargetPlatform, init: StorageComponentContainer.() -> Unit) = diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/ExperimentalMarkerDeclarationAnnotationChecker.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/ExperimentalMarkerDeclarationAnnotationChecker.kt index 4132096d006..177955193df 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/ExperimentalMarkerDeclarationAnnotationChecker.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/ExperimentalMarkerDeclarationAnnotationChecker.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.resolve.checkers import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.descriptors.ClassDescriptor +import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.annotations.KotlinTarget import org.jetbrains.kotlin.diagnostics.Errors import org.jetbrains.kotlin.psi.KtAnnotationEntry @@ -19,7 +20,7 @@ import org.jetbrains.kotlin.resolve.constants.ConstantValue import org.jetbrains.kotlin.resolve.constants.KClassValue import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe -object ExperimentalMarkerDeclarationAnnotationChecker : AdditionalAnnotationChecker { +class ExperimentalMarkerDeclarationAnnotationChecker(private val module: ModuleDescriptor) : AdditionalAnnotationChecker { private val WRONG_TARGETS_FOR_MARKER = setOf(KotlinTarget.EXPRESSION, KotlinTarget.FILE) override fun checkEntries(entries: List, actualTargets: List, trace: BindingTrace) {