diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/ResolvePhaseUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/ResolvePhaseUtils.kt index 4986fc81287..506b7ea9c37 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/ResolvePhaseUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/ResolvePhaseUtils.kt @@ -12,7 +12,6 @@ import org.jetbrains.kotlin.fir.resolve.ScopeSession import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformerAdapter import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirImplicitTypeBodyResolveTransformerAdapter import org.jetbrains.kotlin.fir.resolve.transformers.contracts.FirContractResolveTransformerAdapter -import org.jetbrains.kotlin.fir.resolve.transformers.plugin.FirFirstGenerationTransformer import org.jetbrains.kotlin.fir.resolve.transformers.plugin.FirPluginAnnotationsResolveTransformer import org.jetbrains.kotlin.fir.visitors.FirTransformer @@ -22,7 +21,7 @@ fun FirResolvePhase.createTransformerByPhase(session: FirSession, scopeSession: return when (this) { RAW_FIR -> throw AssertionError("Raw FIR building phase does not have a transformer") ANNOTATIONS_FOR_PLUGINS -> FirPluginAnnotationsResolveTransformer(session, scopeSession) - FIRST_PLUGIN_GENERATION -> FirFirstGenerationTransformer() +// FIRST_PLUGIN_GENERATION -> FirFirstGenerationTransformer() IMPORTS -> FirImportResolveTransformer(session) SUPER_TYPES -> FirSupertypeResolverTransformer(session, scopeSession) SEALED_CLASS_INHERITORS -> FirSealedClassInheritorsTransformer() diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirFirstGenerationTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirFirstGenerationTransformer.kt deleted file mode 100644 index 5672594daca..00000000000 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirFirstGenerationTransformer.kt +++ /dev/null @@ -1,104 +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.resolve.transformers.plugin - -import org.jetbrains.kotlin.fir.FirAnnotationContainer -import org.jetbrains.kotlin.fir.FirElement -import org.jetbrains.kotlin.fir.FirSession -import org.jetbrains.kotlin.fir.declarations.* -import org.jetbrains.kotlin.fir.expressions.FirStatement -import org.jetbrains.kotlin.fir.extensions.FirClassGenerationExtension -import org.jetbrains.kotlin.fir.extensions.classGenerationExtensions -import org.jetbrains.kotlin.fir.extensions.oldExtensionsService -import org.jetbrains.kotlin.fir.extensions.hasExtensions -import org.jetbrains.kotlin.fir.visitors.CompositeTransformResult -import org.jetbrains.kotlin.fir.visitors.FirDefaultTransformer -import org.jetbrains.kotlin.fir.visitors.compose - -class FirFirstGenerationTransformer : FirDefaultTransformer() { - private lateinit var session: FirSession - private val generatedDeclarations: MutableList = mutableListOf() - private lateinit var file: FirFile - private val extensionPointService get() = session.oldExtensionsService - - override fun transformFile(file: FirFile, data: Nothing?): CompositeTransformResult { - session = file.session - if (!extensionPointService.hasExtensions) return file.compose() - file.replaceResolvePhase(FirResolvePhase.FIRST_PLUGIN_GENERATION) - generatedDeclarations.clear() - this.file = file - - file.transformDeclarations(this, data) - visitAnnotatedDeclaration(file) - addGeneratedClasses() - return file.compose() - } - - private fun addGeneratedClasses() { - for ((generatedClass, owner) in generatedDeclarations) { - when (owner) { - is FirFile -> owner.addDeclaration(generatedClass) - is FirRegularClass -> owner.addDeclaration(generatedClass) - else -> throw IllegalStateException() - } - } - } - - private fun visitAnnotatedDeclaration(declaration: T) where T : FirDeclaration, T : FirAnnotationContainer { - val extensions = extensionPointService.classGenerationExtensions.forDeclaration(declaration, emptyList()) - extensions.flatMapTo(generatedDeclarations) { it.generateClass(file, declaration) } - } - - override fun transformProperty(property: FirProperty, data: Nothing?): CompositeTransformResult { - visitAnnotatedDeclaration(property) - return property.compose() - } - - override fun transformRegularClass( - regularClass: FirRegularClass, - data: Nothing? - ): CompositeTransformResult { - regularClass.transformDeclarations(this, data) - regularClass.transformCompanionObject(this, data) - visitAnnotatedDeclaration(regularClass) - return regularClass.compose() - } - - override fun transformSimpleFunction( - simpleFunction: FirSimpleFunction, - data: Nothing? - ): CompositeTransformResult { - simpleFunction.transformValueParameters(this, data) - visitAnnotatedDeclaration(simpleFunction) - return simpleFunction.compose() - } - - override fun transformConstructor( - constructor: FirConstructor, - data: Nothing? - ): CompositeTransformResult { - constructor.transformValueParameters(this, data) - visitAnnotatedDeclaration(constructor) - return constructor.compose() - } - - override fun transformValueParameter( - valueParameter: FirValueParameter, - data: Nothing? - ): CompositeTransformResult { - visitAnnotatedDeclaration(valueParameter) - return valueParameter.compose() - } - - override fun transformTypeAlias(typeAlias: FirTypeAlias, data: Nothing?): CompositeTransformResult { - visitAnnotatedDeclaration(typeAlias) - return typeAlias.compose() - } - - override fun transformElement(element: E, data: Nothing?): CompositeTransformResult { - return element.compose() - } -} \ No newline at end of file diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirResolvePhase.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirResolvePhase.kt index b1c170bf7a8..2d8f32542e3 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirResolvePhase.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirResolvePhase.kt @@ -8,7 +8,7 @@ package org.jetbrains.kotlin.fir.declarations enum class FirResolvePhase { RAW_FIR, ANNOTATIONS_FOR_PLUGINS, // run only if some extensions are registered - FIRST_PLUGIN_GENERATION, // plugin phase +// FIRST_PLUGIN_GENERATION, // plugin phase IMPORTS, SUPER_TYPES, SEALED_CLASS_INHERITORS,