[FIR] Make FirImport an abstract class

This change is necessary in order to make `FirElement` abstract class. To do it we need to remove all `accept` and `transform` methods from fir interfaces. So we have to make sure that all fir element implementations have their `accept` and `transform` implementations in their super classes. In particular this change makes `FirImport` abstract class in order to preserve `accept` and `transform` methods after removing them from fir interfaces.
This commit is contained in:
Arseniy Terekhov
2023-07-19 12:35:18 +03:00
committed by Space Team
parent ec985b1ffe
commit 4d85cc8aa6
6 changed files with 11 additions and 13 deletions
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
import org.jetbrains.kotlin.fir.diagnostics.FirDiagnosticHolder
import org.jetbrains.kotlin.name.FqName
@@ -19,7 +18,7 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
abstract class FirErrorImport : FirPureAbstractElement(), FirImport, FirDiagnosticHolder {
abstract class FirErrorImport : FirImport(), FirDiagnosticHolder {
abstract override val source: KtSourceElement?
abstract override val importedFqName: FqName?
abstract override val isAllUnder: Boolean
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.fir.visitors.*
@@ -16,12 +17,12 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
interface FirImport : FirElement {
override val source: KtSourceElement?
val importedFqName: FqName?
val isAllUnder: Boolean
val aliasName: Name?
val aliasSource: KtSourceElement?
abstract class FirImport : FirPureAbstractElement(), FirElement {
abstract override val source: KtSourceElement?
abstract val importedFqName: FqName?
abstract val isAllUnder: Boolean
abstract val aliasName: Name?
abstract val aliasSource: KtSourceElement?
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitImport(this, data)
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
@@ -18,7 +17,7 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
abstract class FirResolvedImport : FirPureAbstractElement(), FirImport {
abstract class FirResolvedImport : FirImport() {
abstract override val source: KtSourceElement?
abstract override val importedFqName: FqName?
abstract override val isAllUnder: Boolean
@@ -9,7 +9,6 @@ package org.jetbrains.kotlin.fir.declarations.builder
import kotlin.contracts.*
import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.FirImport
import org.jetbrains.kotlin.fir.declarations.impl.FirImportImpl
@@ -8,7 +8,6 @@
package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.declarations.FirImport
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
@@ -25,7 +24,7 @@ internal class FirImportImpl(
override val isAllUnder: Boolean,
override val aliasName: Name?,
override val aliasSource: KtSourceElement?,
) : FirPureAbstractElement(), FirImport {
) : FirImport() {
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirImportImpl {
@@ -509,6 +509,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
+booleanField("isAllUnder")
+field("aliasName", nameType, nullable = true)
+field("aliasSource", sourceElementType, nullable = true)
shouldBeAbstractClass()
}
resolvedImport.configure {