diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/FirDiagnosticsCollector.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/FirDiagnosticsCollector.kt
index 7930cdd12f5..9c654dca277 100644
--- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/FirDiagnosticsCollector.kt
+++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/FirDiagnosticsCollector.kt
@@ -9,7 +9,6 @@ import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.analysis.checkersComponent
import org.jetbrains.kotlin.fir.analysis.extensions.additionalCheckers
import org.jetbrains.kotlin.fir.extensions.extensionService
-import org.jetbrains.kotlin.fir.extensions.oldExtensionsService
object FirDiagnosticsCollector {
fun create(session: FirSession): AbstractDiagnosticCollector {
diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/extensions/FirOldExtensionsService.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/extensions/FirOldExtensionsService.kt
deleted file mode 100644
index cd5e979265d..00000000000
--- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/extensions/FirOldExtensionsService.kt
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * 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.extensions
-
-import com.google.common.collect.LinkedHashMultimap
-import com.google.common.collect.Multimap
-import org.jetbrains.kotlin.fir.FirAnnotationContainer
-import org.jetbrains.kotlin.fir.FirSession
-import org.jetbrains.kotlin.fir.FirSessionComponent
-import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
-import org.jetbrains.kotlin.fir.declarations.FirPluginKey
-import org.jetbrains.kotlin.fir.declarations.FirRegularClass
-import org.jetbrains.kotlin.fir.resolve.fqName
-import org.jetbrains.kotlin.fir.utils.ComponentArrayOwner
-import org.jetbrains.kotlin.fir.utils.TypeRegistry
-import kotlin.properties.ReadOnlyProperty
-import kotlin.reflect.KClass
-import kotlin.reflect.KProperty
-
-class OldFirRegisteredExtension
(
- val extensionsWithAllMode: List
,
- val extensionsWithAnnotatedMode: Multimap,
- val extensionsWithAllInAnnotatedMode: Multimap,
- val extensionsByPluginKey: Multimap
-) {
- fun isEmpty(): Boolean {
- return extensionsWithAllMode.isEmpty() && extensionsWithAnnotatedMode.isEmpty() && extensionsWithAllInAnnotatedMode.isEmpty()
- }
-}
-
-@Deprecated("")
-class FirOldExtensionsService(
- val session: FirSession
-) : ComponentArrayOwner>(), FirSessionComponent {
- companion object : TypeRegistry>() {
- inline fun > registeredExtensions(): ReadOnlyProperty> {
- val accessor = generateAccessor(P::class)
- return object : ReadOnlyProperty> {
- override fun getValue(thisRef: FirOldExtensionsService, property: KProperty<*>): ExtensionsAccessor {
- return ExtensionsAccessor(thisRef.session, accessor.getValue(thisRef, property))
- }
- }
- }
-
- private fun createMultimap(): Multimap = LinkedHashMultimap.create()
- }
-
- override val typeRegistry: TypeRegistry>
- get() = Companion
-
- fun registerExtensions(extensionClass: KClass
, extensionFactories: List>) {
-// registeredExtensionsSize += extensionFactories.size
-// val extensions = extensionFactories.map { it.create(session) }
-//
-// val extensionsWithAllMode = mutableListOf()
-// val extensionsWithAnnotatedMode = createMultimap()
-// val extensionsWithAllInAnnotatedMode = createMultimap()
-// val extensionsByPlugin = createMultimap()
-// for (extension in extensions) {
-// _metaAnnotations += extension.metaAnnotations.keys
-// for (metaAnnotation in extension.metaAnnotations.keys) {
-// extensionsWithMetaAnnotations.put(metaAnnotation, extension)
-// }
-// _annotations += extension.directlyApplicableAnnotations
-// _annotations += extension.childrenApplicableAnnotations
-// when (extension.mode) {
-// FirExtension.Mode.ANNOTATED_ELEMENT -> {
-// for (annotation in extension.directlyApplicableAnnotations) {
-// extensionsWithAnnotatedMode.put(annotation, extension)
-// }
-// for (annotation in extension.childrenApplicableAnnotations) {
-// extensionsWithAllInAnnotatedMode.put(annotation, extension)
-// }
-// }
-// FirExtension.Mode.ALL -> extensionsWithAllMode += extension
-// }
-// extensionsByPlugin.put(extension.key, extension)
-// }
-// registerComponent(
-// extensionClass,
-// FirRegisteredExtension(
-// extensionsWithAllMode,
-// extensionsWithAnnotatedMode,
-// extensionsWithAllInAnnotatedMode,
-// extensionsByPlugin
-// )
-// )
- }
-
- @Deprecated("")
- fun registerUserDefinedAnnotation(metaAnnotation: AnnotationFqn, annotations: Collection) {
-// for (annotation in annotations) {
-// require(annotation.classKind == ClassKind.ANNOTATION_CLASS)
-// val fqName = annotation.symbol.classId.asSingleFqName()
-// _annotations += fqName
-// userDefinedAnnotations.put(metaAnnotation, fqName)
-// val extensions = extensionsWithMetaAnnotations[metaAnnotation]
-// if (extensions.isEmpty()) return
-// for (extension in extensions) {
-// val registeredExtensions = this[extension.extensionType]
-//
-// val metaAnnotationMode = extension.metaAnnotations.getValue(metaAnnotation)
-//
-// if (metaAnnotationMode.directed) {
-// @Suppress("UNCHECKED_CAST")
-// (registeredExtensions.extensionsWithAnnotatedMode as Multimap).put(fqName, extension)
-// }
-//
-// if (metaAnnotationMode.children) {
-// @Suppress("UNCHECKED_CAST")
-// (registeredExtensions.extensionsWithAllInAnnotatedMode as Multimap).put(fqName, extension)
-// }
-// }
-// }
- }
-
- @Deprecated("")
- val annotations: Set
- get() = _annotations
- private val _annotations: MutableSet = mutableSetOf()
-
- @Deprecated("")
- val metaAnnotations: Set
- get() = _metaAnnotations
- private val _metaAnnotations: MutableSet = mutableSetOf()
-
- private val extensionsWithMetaAnnotations: Multimap = createMultimap()
-
- // MetaAnnotation -> Annotations
- @Deprecated("")
- val userDefinedAnnotations: Multimap = createMultimap()
-
- var registeredExtensionsSize: Int = 0
- private set
-
- class ExtensionsAccessor(
- private val session: FirSession,
- private val extensions: OldFirRegisteredExtension
- ) {
- fun forDeclaration(declaration: FirAnnotationContainer, owners: Collection): Collection {
- if (extensions.isEmpty()) return emptySet()
- if (
- (declaration.annotations.isEmpty() || extensions.extensionsWithAnnotatedMode.isEmpty) &&
- extensions.extensionsWithAllInAnnotatedMode.isEmpty
- ) {
- return extensions.extensionsWithAllMode
- }
-
- return LinkedHashSet(extensions.extensionsWithAllMode).apply {
- collectExtensions(this, declaration, extensions.extensionsWithAnnotatedMode)
- collectExtensions(this, declaration, extensions.extensionsWithAllInAnnotatedMode)
- for (owner in owners) {
- collectExtensions(this, owner, extensions.extensionsWithAllInAnnotatedMode)
- }
- }
- }
-
- fun forGeneratedDeclaration(origin: FirDeclarationOrigin.Plugin): Collection
{
- return extensions.extensionsByPluginKey.get(origin.key)
- }
-
- private fun collectExtensions(result: MutableSet
, declaration: FirAnnotationContainer, extensions: Multimap) {
- for (annotation in declaration.annotations) {
- val fqName = annotation.fqName(session) ?: continue
- result += extensions[fqName]
- }
- }
- }
-}
-
-@Deprecated("")
-val FirSession.oldExtensionsService: FirOldExtensionsService by FirSession.sessionComponentAccessor()
-
-val FirOldExtensionsService.hasExtensions: Boolean
- get() = registeredExtensionsSize > 0
\ No newline at end of file
diff --git a/idea/idea-fir/tests/org/jetbrains/kotlin/idea/fir/AbstractFirMultiModuleResolveTest.kt b/idea/idea-fir/tests/org/jetbrains/kotlin/idea/fir/AbstractFirMultiModuleResolveTest.kt
index 47835ff02a1..ebb88b8b517 100644
--- a/idea/idea-fir/tests/org/jetbrains/kotlin/idea/fir/AbstractFirMultiModuleResolveTest.kt
+++ b/idea/idea-fir/tests/org/jetbrains/kotlin/idea/fir/AbstractFirMultiModuleResolveTest.kt
@@ -17,7 +17,9 @@ import org.jetbrains.kotlin.fir.declarations.FirFile
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.dependenciesWithoutSelf
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
+import org.jetbrains.kotlin.fir.extensions.extensionService
import org.jetbrains.kotlin.fir.extensions.oldExtensionsService
+import org.jetbrains.kotlin.fir.extensions.registerExtensions
import org.jetbrains.kotlin.fir.java.FirJavaModuleBasedSession
import org.jetbrains.kotlin.fir.java.FirLibrarySession
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
@@ -71,7 +73,7 @@ abstract class AbstractFirMultiModuleResolveTest : AbstractMultiModuleTest() {
private fun createSession(module: Module, provider: FirProjectSessionProvider): FirJavaModuleBasedSession {
val moduleInfo = module.productionSourceInfo()!!
return FirJavaModuleBasedSession(moduleInfo, provider, moduleInfo.contentScope()).also {
- it.oldExtensionsService.registerExtensions(FirExtensionRegistrar.OldRegisteredExtensions.EMPTY)
+ it.extensionService.registerExtensions(emptyList())
}
}