diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/ModuleAnnotationsResolver.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/ModuleAnnotationsResolver.kt index 86f56d9ef63..b1148ff9275 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/ModuleAnnotationsResolver.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/ModuleAnnotationsResolver.kt @@ -10,6 +10,10 @@ import com.intellij.openapi.project.Project import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.name.ClassId +// This interface was introduced to load module annotations for Kotlin/JVM to support the -Xexperimental mode, where the whole module +// would be marked as experimental, and usages of any declarations from the module would require an explicit opt-in. +// It was decided to remove this feature shortly thereafter, so now this interface is unused. +// It can be useful again in the future if there are going to be other use cases for module annotations. interface ModuleAnnotationsResolver { fun getAnnotationsOnContainingModule(descriptor: DeclarationDescriptor): List diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/ExperimentalUsageChecker.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/ExperimentalUsageChecker.kt index 06c11b58322..f1197b658c6 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/ExperimentalUsageChecker.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/ExperimentalUsageChecker.kt @@ -35,13 +35,13 @@ import org.jetbrains.kotlin.resolve.* import org.jetbrains.kotlin.resolve.calls.checkers.CallChecker import org.jetbrains.kotlin.resolve.calls.checkers.CallCheckerContext import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall -import org.jetbrains.kotlin.resolve.checkers.OptInNames.REQUIRES_OPT_IN_FQ_NAMES import org.jetbrains.kotlin.resolve.checkers.OptInNames.OLD_EXPERIMENTAL_FQ_NAME import org.jetbrains.kotlin.resolve.checkers.OptInNames.OLD_USE_EXPERIMENTAL_FQ_NAME import org.jetbrains.kotlin.resolve.checkers.OptInNames.OPT_IN_FQ_NAME -import org.jetbrains.kotlin.resolve.checkers.OptInNames.REQUIRES_OPT_IN_FQ_NAME -import org.jetbrains.kotlin.resolve.checkers.OptInNames.USE_EXPERIMENTAL_ANNOTATION_CLASS import org.jetbrains.kotlin.resolve.checkers.OptInNames.OPT_IN_FQ_NAMES +import org.jetbrains.kotlin.resolve.checkers.OptInNames.REQUIRES_OPT_IN_FQ_NAME +import org.jetbrains.kotlin.resolve.checkers.OptInNames.REQUIRES_OPT_IN_FQ_NAMES +import org.jetbrains.kotlin.resolve.checkers.OptInNames.USE_EXPERIMENTAL_ANNOTATION_CLASS import org.jetbrains.kotlin.resolve.checkers.OptInNames.WAS_EXPERIMENTAL_FQ_NAME import org.jetbrains.kotlin.resolve.constants.ArrayValue import org.jetbrains.kotlin.resolve.constants.EnumValue @@ -52,7 +52,6 @@ import org.jetbrains.kotlin.resolve.deprecation.DeprecationResolver import org.jetbrains.kotlin.resolve.deprecation.DeprecationSettings import org.jetbrains.kotlin.resolve.descriptorUtil.annotationClass import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe -import org.jetbrains.kotlin.resolve.descriptorUtil.module import org.jetbrains.kotlin.storage.LockBasedStorageManager import org.jetbrains.kotlin.types.AbbreviatedType import org.jetbrains.kotlin.types.KotlinType @@ -236,11 +235,6 @@ class ExperimentalUsageChecker(project: Project) : CallChecker { result.addAll(container.loadExperimentalities(moduleAnnotationsResolver, languageVersionSettings, visited, useFutureError)) } - for (moduleAnnotationClassId in moduleAnnotationsResolver.getAnnotationsOnContainingModule(this)) { - val annotationClass = module.findClassAcrossModuleDependencies(moduleAnnotationClassId) - result.addIfNotNull(annotationClass?.loadExperimentalityForMarkerAnnotation()) - } - return result }