From f8f2d8b9a1c56251b86fe3a7cb41776ac5b7e4c9 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Wed, 16 Oct 2019 18:28:31 +0300 Subject: [PATCH] [FIR] Add `FirAbstractElement` as base type for all fir node implementations --- .../kotlin/fir/java/declarations/FirJavaClass.kt | 3 ++- .../fir/java/declarations/FirJavaConstructor.kt | 3 ++- .../kotlin/fir/java/declarations/FirJavaField.kt | 3 ++- .../dfa/FirControlFlowGraphReferenceImpl.kt | 3 ++- .../kotlin/fir/FirPureAbstractElement.kt | 15 +++++++++++++++ .../declarations/impl/FirAnonymousFunctionImpl.kt | 3 ++- .../impl/FirAnonymousInitializerImpl.kt | 3 ++- .../declarations/impl/FirAnonymousObjectImpl.kt | 3 ++- .../kotlin/fir/declarations/impl/FirClassImpl.kt | 3 ++- .../fir/declarations/impl/FirConstructorImpl.kt | 3 ++- .../declarations/impl/FirDeclarationStatusImpl.kt | 3 ++- .../impl/FirDefaultSetterValueParameter.kt | 3 ++- .../fir/declarations/impl/FirEnumEntryImpl.kt | 3 ++- .../fir/declarations/impl/FirErrorFunctionImpl.kt | 3 ++- .../kotlin/fir/declarations/impl/FirFileImpl.kt | 3 ++- .../kotlin/fir/declarations/impl/FirImportImpl.kt | 3 ++- .../declarations/impl/FirPropertyAccessorImpl.kt | 3 ++- .../fir/declarations/impl/FirPropertyImpl.kt | 3 ++- .../declarations/impl/FirResolvedImportImpl.kt | 3 ++- .../fir/declarations/impl/FirSealedClassImpl.kt | 3 ++- .../declarations/impl/FirSimpleFunctionImpl.kt | 3 ++- .../fir/declarations/impl/FirTypeAliasImpl.kt | 3 ++- .../fir/declarations/impl/FirTypeParameterImpl.kt | 3 ++- .../declarations/impl/FirValueParameterImpl.kt | 3 ++- .../fir/expressions/impl/FirAnnotationCallImpl.kt | 3 ++- .../fir/expressions/impl/FirArrayOfCallImpl.kt | 3 ++- .../fir/expressions/impl/FirArraySetCallImpl.kt | 3 ++- .../impl/FirBinaryLogicExpressionImpl.kt | 3 ++- .../kotlin/fir/expressions/impl/FirBlockImpl.kt | 3 ++- .../expressions/impl/FirBreakExpressionImpl.kt | 3 ++- .../impl/FirCallableReferenceAccessImpl.kt | 3 ++- .../kotlin/fir/expressions/impl/FirCatchImpl.kt | 3 ++- .../impl/FirClassReferenceExpressionImpl.kt | 3 ++- .../fir/expressions/impl/FirComponentCallImpl.kt | 3 ++- .../expressions/impl/FirConstExpressionImpl.kt | 3 ++- .../expressions/impl/FirContinueExpressionImpl.kt | 3 ++- .../impl/FirDelegatedConstructorCallImpl.kt | 3 ++- .../fir/expressions/impl/FirDoWhileLoopImpl.kt | 3 ++- .../expressions/impl/FirElseIfTrueCondition.kt | 3 ++- .../expressions/impl/FirEmptyExpressionBlock.kt | 3 ++- .../expressions/impl/FirErrorExpressionImpl.kt | 3 ++- .../kotlin/fir/expressions/impl/FirErrorLoop.kt | 3 ++- .../fir/expressions/impl/FirExpressionStub.kt | 3 ++- .../impl/FirExpressionWithSmartcastImpl.kt | 3 ++- .../fir/expressions/impl/FirFunctionCallImpl.kt | 3 ++- .../fir/expressions/impl/FirGetClassCallImpl.kt | 3 ++- .../impl/FirLambdaArgumentExpressionImpl.kt | 3 ++- .../impl/FirNamedArgumentExpressionImpl.kt | 3 ++- .../expressions/impl/FirNoReceiverExpression.kt | 3 ++- .../fir/expressions/impl/FirOperatorCallImpl.kt | 3 ++- .../impl/FirQualifiedAccessExpressionImpl.kt | 3 ++- .../expressions/impl/FirResolvedQualifierImpl.kt | 3 ++- .../expressions/impl/FirReturnExpressionImpl.kt | 3 ++- .../expressions/impl/FirSingleExpressionBlock.kt | 3 ++- .../impl/FirSpreadArgumentExpressionImpl.kt | 3 ++- .../impl/FirStringConcatenationCallImpl.kt | 3 ++- .../impl/FirThisReceiverExpressionImpl.kt | 3 ++- .../expressions/impl/FirThrowExpressionImpl.kt | 3 ++- .../fir/expressions/impl/FirTryExpressionImpl.kt | 3 ++- .../expressions/impl/FirTypeOperatorCallImpl.kt | 3 ++- .../fir/expressions/impl/FirUnitExpression.kt | 3 ++- .../expressions/impl/FirVariableAssignmentImpl.kt | 3 ++- .../fir/expressions/impl/FirWhenBranchImpl.kt | 3 ++- .../fir/expressions/impl/FirWhenExpressionImpl.kt | 3 ++- .../impl/FirWhenSubjectExpressionImpl.kt | 3 ++- .../fir/expressions/impl/FirWhileLoopImpl.kt | 3 ++- .../impl/FirWrappedDelegateExpressionImpl.kt | 3 ++- .../org/jetbrains/kotlin/fir/impl/FirLabelImpl.kt | 3 ++- .../impl/FirBackingFieldReferenceImpl.kt | 3 ++- .../impl/FirDelegateFieldReferenceImpl.kt | 3 ++- .../impl/FirEmptyControlFlowGraphReference.kt | 3 ++- .../references/impl/FirErrorNamedReferenceImpl.kt | 3 ++- .../references/impl/FirExplicitSuperReference.kt | 3 ++- .../references/impl/FirExplicitThisReference.kt | 3 ++- .../references/impl/FirImplicitThisReference.kt | 3 ++- .../FirPropertyFromParameterCallableReference.kt | 3 ++- .../impl/FirResolvedCallableReferenceImpl.kt | 3 ++- .../references/impl/FirSimpleNamedReference.kt | 3 ++- .../fir/references/impl/FirStubReference.kt | 3 ++- .../fir/types/impl/FirComputingImplicitTypeRef.kt | 3 ++- .../fir/types/impl/FirDelegatedTypeRefImpl.kt | 3 ++- .../fir/types/impl/FirDynamicTypeRefImpl.kt | 3 ++- .../kotlin/fir/types/impl/FirErrorTypeRefImpl.kt | 3 ++- .../fir/types/impl/FirFunctionTypeRefImpl.kt | 3 ++- .../fir/types/impl/FirImplicitBuiltinTypeRef.kt | 3 ++- .../fir/types/impl/FirImplicitTypeRefImpl.kt | 3 ++- .../types/impl/FirResolvedFunctionTypeRefImpl.kt | 3 ++- .../fir/types/impl/FirResolvedTypeRefImpl.kt | 3 ++- .../fir/types/impl/FirStarProjectionImpl.kt | 3 ++- .../types/impl/FirTypePlaceholderProjection.kt | 3 ++- .../impl/FirTypeProjectionWithVarianceImpl.kt | 3 ++- .../kotlin/fir/types/impl/FirUserTypeRefImpl.kt | 3 ++- .../kotlin/fir/visitors/FirTransformerUtil.kt | 5 +++-- .../kotlin/fir/tree/generator/Printer.kt | 9 +++++++-- .../jetbrains/kotlin/fir/tree/generator/Types.kt | 4 +++- 95 files changed, 210 insertions(+), 96 deletions(-) create mode 100644 compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirPureAbstractElement.kt diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaClass.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaClass.kt index 837fee1412e..b8e7adb6540 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaClass.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaClass.kt @@ -9,6 +9,7 @@ import com.intellij.psi.PsiElement import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Visibility +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl @@ -34,7 +35,7 @@ class FirJavaClass internal constructor( isTopLevel: Boolean, isStatic: Boolean, internal val javaTypeParameterStack: JavaTypeParameterStack -) : FirRegularClass, FirModifiableClass { +) : FirPureAbstractElement(), FirRegularClass, FirModifiableClass { override var status: FirDeclarationStatusImpl = FirDeclarationStatusImpl(visibility, modality) override val annotations: MutableList = mutableListOf() override val typeParameters: MutableList = mutableListOf() diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt index 9c335d40f59..8c7a4f31992 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt @@ -10,6 +10,7 @@ import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.fir.CONSTRUCTOR_NAME import org.jetbrains.kotlin.fir.FirElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl @@ -36,7 +37,7 @@ class FirJavaConstructor( override val isPrimary: Boolean, isInner: Boolean, override var returnTypeRef : FirTypeRef -) : FirAbstractAnnotatedElement, FirConstructor { +) : FirPureAbstractElement(), FirAbstractAnnotatedElement, FirConstructor { override val receiverTypeRef: FirTypeRef? get() = null override val typeParameters: MutableList = mutableListOf() override val name: Name get() = CONSTRUCTOR_NAME diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt index 0d0ee4cf3fe..87ce3c52496 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt @@ -10,6 +10,7 @@ import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.fir.FirAnnotationContainer import org.jetbrains.kotlin.fir.FirElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl @@ -36,7 +37,7 @@ class FirJavaField( override var returnTypeRef: FirTypeRef, override val isVar: Boolean, isStatic: Boolean -) : FirAbstractAnnotatedElement, FirField { +) : FirPureAbstractElement(), FirAbstractAnnotatedElement, FirField { init { symbol.bind(this) } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/FirControlFlowGraphReferenceImpl.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/FirControlFlowGraphReferenceImpl.kt index d68a6cb2c60..d0407691362 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/FirControlFlowGraphReferenceImpl.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/FirControlFlowGraphReferenceImpl.kt @@ -7,12 +7,13 @@ package org.jetbrains.kotlin.fir.resolve.dfa import com.intellij.psi.PsiElement import org.jetbrains.kotlin.fir.FirElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference import org.jetbrains.kotlin.fir.resolve.dfa.cfg.ControlFlowGraph import org.jetbrains.kotlin.fir.visitors.FirTransformer import org.jetbrains.kotlin.fir.visitors.FirVisitor -class FirControlFlowGraphReferenceImpl(val controlFlowGraph: ControlFlowGraph) : FirControlFlowGraphReference { +class FirControlFlowGraphReferenceImpl(val controlFlowGraph: ControlFlowGraph) : FirPureAbstractElement(), FirControlFlowGraphReference { override val psi: PsiElement? get() = null override fun acceptChildren(visitor: FirVisitor, data: D) {} diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirPureAbstractElement.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirPureAbstractElement.kt new file mode 100644 index 00000000000..87540307c52 --- /dev/null +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirPureAbstractElement.kt @@ -0,0 +1,15 @@ +/* + * Copyright 2010-2019 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 + +import org.jetbrains.kotlin.fir.visitors.FirTransformer +import org.jetbrains.kotlin.fir.visitors.FirVisitor + +abstract class FirPureAbstractElement : FirElement { + abstract override fun acceptChildren(visitor: FirVisitor, data: D) + + abstract override fun transformChildren(transformer: FirTransformer, data: D): FirElement +} \ No newline at end of file diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousFunctionImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousFunctionImpl.kt index 83b6efc7db5..5bf926ba5c6 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousFunctionImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousFunctionImpl.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import com.intellij.psi.PsiElement import org.jetbrains.kotlin.contracts.description.InvocationKind import org.jetbrains.kotlin.fir.FirLabel +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction import org.jetbrains.kotlin.fir.declarations.FirResolvePhase @@ -34,7 +35,7 @@ class FirAnonymousFunctionImpl( override var returnTypeRef: FirTypeRef, override var receiverTypeRef: FirTypeRef?, override val symbol: FirAnonymousFunctionSymbol -) : FirAnonymousFunction, FirModifiableFunction, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirAnonymousFunction, FirModifiableFunction, FirAbstractAnnotatedElement { override var resolvePhase: FirResolvePhase = FirResolvePhase.DECLARATIONS override val annotations: MutableList = mutableListOf() override var controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousInitializerImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousInitializerImpl.kt index 245d7435c9a..af1c22fa04e 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousInitializerImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousInitializerImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer import org.jetbrains.kotlin.fir.declarations.FirResolvePhase @@ -21,7 +22,7 @@ class FirAnonymousInitializerImpl( override val psi: PsiElement?, override val session: FirSession, override var body: FirBlock? -) : FirAnonymousInitializer { +) : FirPureAbstractElement(), FirAnonymousInitializer { override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override fun acceptChildren(visitor: FirVisitor, data: D) { diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousObjectImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousObjectImpl.kt index f5e39a16654..cb1b5ea6523 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousObjectImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousObjectImpl.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import com.intellij.psi.PsiElement import org.jetbrains.kotlin.descriptors.ClassKind +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirAnonymousObject import org.jetbrains.kotlin.fir.declarations.FirDeclaration @@ -25,7 +26,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirAnonymousObjectImpl( override val psi: PsiElement?, override val session: FirSession -) : FirAnonymousObject, FirModifiableClass, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirAnonymousObject, FirModifiableClass, FirAbstractAnnotatedElement { override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override val classKind: ClassKind get() = ClassKind.OBJECT override val superTypeRefs: MutableList = mutableListOf() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirClassImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirClassImpl.kt index f2ac4cc9d5e..27ec8941ce3 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirClassImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirClassImpl.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import com.intellij.psi.PsiElement import org.jetbrains.kotlin.descriptors.ClassKind +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus @@ -33,7 +34,7 @@ class FirClassImpl( override var status: FirDeclarationStatus, override val classKind: ClassKind, override val symbol: FirClassSymbol -) : FirRegularClass, FirModifiableRegularClass, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirRegularClass, FirModifiableRegularClass, FirAbstractAnnotatedElement { override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override val annotations: MutableList = mutableListOf() override val typeParameters: MutableList = mutableListOf() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirConstructorImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirConstructorImpl.kt index a601bf928f1..4e78557e09b 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirConstructorImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirConstructorImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirConstructor import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus @@ -36,7 +37,7 @@ open class FirConstructorImpl( override var receiverTypeRef: FirTypeRef?, override var status: FirDeclarationStatus, override val symbol: FirConstructorSymbol -) : FirConstructor, FirModifiableConstructor, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirConstructor, FirModifiableConstructor, FirAbstractAnnotatedElement { override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override var controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference() override val typeParameters: MutableList = mutableListOf() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDeclarationStatusImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDeclarationStatusImpl.kt index 5be61c6c2e4..04ced4bee98 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDeclarationStatusImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDeclarationStatusImpl.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import com.intellij.psi.PsiElement import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Visibility +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl.Modifier.* import org.jetbrains.kotlin.fir.visitors.FirTransformer @@ -16,7 +17,7 @@ import org.jetbrains.kotlin.fir.visitors.FirVisitor open class FirDeclarationStatusImpl( override val visibility: Visibility, override val modality: Modality? -) : FirDeclarationStatus { +) : FirPureAbstractElement(), FirDeclarationStatus { override val psi: PsiElement? get() = null protected var flags: Int = 0 diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultSetterValueParameter.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultSetterValueParameter.kt index e2c36444fc0..7471460bca8 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultSetterValueParameter.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultSetterValueParameter.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor import org.jetbrains.kotlin.fir.declarations.FirResolvePhase @@ -29,7 +30,7 @@ class FirDefaultSetterValueParameter( override val session: FirSession, override var returnTypeRef: FirTypeRef, override val symbol: FirVariableSymbol -) : FirValueParameter, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirValueParameter, FirAbstractAnnotatedElement { override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override var receiverTypeRef: FirTypeRef? = null override val name: Name = Name.identifier("value") diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirEnumEntryImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirEnumEntryImpl.kt index 17279c8d7ef..8da136aae60 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirEnumEntryImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirEnumEntryImpl.kt @@ -9,6 +9,7 @@ import com.intellij.psi.PsiElement import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Visibilities +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus @@ -35,7 +36,7 @@ class FirEnumEntryImpl( override val session: FirSession, override val name: Name, override val symbol: FirClassSymbol -) : FirEnumEntry, FirModifiableClass, FirModifiableTypeParametersOwner, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirEnumEntry, FirModifiableClass, FirModifiableTypeParametersOwner, FirAbstractAnnotatedElement { override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override val annotations: MutableList = mutableListOf() override val typeParameters: MutableList = mutableListOf() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirErrorFunctionImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirErrorFunctionImpl.kt index fe2141c2f94..9292565b484 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirErrorFunctionImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirErrorFunctionImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirErrorFunction import org.jetbrains.kotlin.fir.declarations.FirResolvePhase @@ -31,7 +32,7 @@ class FirErrorFunctionImpl( override val session: FirSession, override val reason: String, override val symbol: FirErrorFunctionSymbol -) : FirErrorFunction, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirErrorFunction, FirAbstractAnnotatedElement { override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override val annotations: MutableList = mutableListOf() override var returnTypeRef: FirTypeRef = FirErrorTypeRefImpl(null, reason) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirFileImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirFileImpl.kt index 3951f50a403..c89c68bf5c6 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirFileImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirFileImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirFile @@ -26,7 +27,7 @@ class FirFileImpl( override val session: FirSession, override val name: String, override val packageFqName: FqName -) : FirFile, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirFile, FirAbstractAnnotatedElement { override val annotations: MutableList = mutableListOf() override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override val imports: MutableList = mutableListOf() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirImportImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirImportImpl.kt index 621f18a79db..266cf2f1ecd 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirImportImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirImportImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import com.intellij.psi.PsiElement +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 @@ -21,7 +22,7 @@ class FirImportImpl( override val importedFqName: FqName?, override val isAllUnder: Boolean, override val aliasName: Name? -) : FirImport { +) : FirPureAbstractElement(), FirImport { override fun acceptChildren(visitor: FirVisitor, data: D) {} override fun transformChildren(transformer: FirTransformer, data: D): FirImportImpl { diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyAccessorImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyAccessorImpl.kt index 87462b6e677..7899bf39032 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyAccessorImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyAccessorImpl.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import com.intellij.psi.PsiElement import org.jetbrains.kotlin.descriptors.Modality +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor @@ -34,7 +35,7 @@ open class FirPropertyAccessorImpl( override val symbol: FirPropertyAccessorSymbol, override val isGetter: Boolean, override var status: FirDeclarationStatus -) : FirPropertyAccessor, FirModifiableFunction, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirPropertyAccessor, FirModifiableFunction, FirAbstractAnnotatedElement { override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override var receiverTypeRef: FirTypeRef? = null override var controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyImpl.kt index 75207b6b49e..80274d6ed0a 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirProperty @@ -42,7 +43,7 @@ class FirPropertyImpl( override val symbol: FirPropertySymbol, override val isLocal: Boolean, override var status: FirDeclarationStatus -) : FirProperty, FirModifiableVariable, FirModifiableTypeParametersOwner, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirProperty, FirModifiableVariable, FirModifiableTypeParametersOwner, FirAbstractAnnotatedElement { override var resolvePhase: FirResolvePhase = if (isLocal) FirResolvePhase.DECLARATIONS else FirResolvePhase.RAW_FIR override val delegateFieldSymbol: FirDelegateFieldSymbol? = delegate?.let { FirDelegateFieldSymbol(symbol.callableId) } override val isVal: Boolean get() = !isVar diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedImportImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedImportImpl.kt index c7bfa9c6699..39f4a8cda01 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedImportImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedImportImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.declarations.FirImport import org.jetbrains.kotlin.fir.declarations.FirResolvedImport import org.jetbrains.kotlin.name.ClassId @@ -22,7 +23,7 @@ class FirResolvedImportImpl( override var delegate: FirImport, override val packageFqName: FqName, override val relativeClassName: FqName? -) : FirResolvedImport { +) : FirPureAbstractElement(), FirResolvedImport { override val psi: PsiElement? get() = delegate.psi override val importedFqName: FqName? get() = delegate.importedFqName override val isAllUnder: Boolean get() = delegate.isAllUnder diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirSealedClassImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirSealedClassImpl.kt index 3ad1484513f..aa3e6253818 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirSealedClassImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirSealedClassImpl.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import com.intellij.psi.PsiElement import org.jetbrains.kotlin.descriptors.ClassKind +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus @@ -35,7 +36,7 @@ class FirSealedClassImpl( override var status: FirDeclarationStatus, override val classKind: ClassKind, override val symbol: FirClassSymbol -) : FirSealedClass, FirModifiableRegularClass, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirSealedClass, FirModifiableRegularClass, FirAbstractAnnotatedElement { override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override val annotations: MutableList = mutableListOf() override val typeParameters: MutableList = mutableListOf() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt index e8c2d16dae1..d00518d4947 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirResolvePhase @@ -36,7 +37,7 @@ open class FirSimpleFunctionImpl( override val name: Name, override var status: FirDeclarationStatus, override val symbol: FirFunctionSymbol -) : FirSimpleFunction, FirModifiableFunction, FirModifiableTypeParametersOwner, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirSimpleFunction, FirModifiableFunction, FirModifiableTypeParametersOwner, FirAbstractAnnotatedElement { override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override var controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference() override val typeParameters: MutableList = mutableListOf() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirTypeAliasImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirTypeAliasImpl.kt index 30f6c5347ee..3a511502b09 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirTypeAliasImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirTypeAliasImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirResolvePhase @@ -31,7 +32,7 @@ class FirTypeAliasImpl( override var status: FirDeclarationStatus, override val symbol: FirTypeAliasSymbol, override var expandedTypeRef: FirTypeRef -) : FirTypeAlias, FirModifiableTypeParametersOwner, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirTypeAlias, FirModifiableTypeParametersOwner, FirAbstractAnnotatedElement { override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override val typeParameters: MutableList = mutableListOf() override var supertypesComputationStatus: SupertypesComputationStatus = SupertypesComputationStatus.NOT_COMPUTED diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirTypeParameterImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirTypeParameterImpl.kt index 40c79db406e..87f6b472430 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirTypeParameterImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirTypeParameterImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirTypeParameter @@ -29,7 +30,7 @@ class FirTypeParameterImpl( override val symbol: FirTypeParameterSymbol, override val variance: Variance, override val isReified: Boolean -) : FirTypeParameter, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirTypeParameter, FirAbstractAnnotatedElement { override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override val bounds: MutableList = mutableListOf() override val annotations: MutableList = mutableListOf() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirValueParameterImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirValueParameterImpl.kt index c28946920f1..6cadf8cd867 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirValueParameterImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirValueParameterImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor import org.jetbrains.kotlin.fir.declarations.FirResolvePhase @@ -34,7 +35,7 @@ open class FirValueParameterImpl( override val isCrossinline: Boolean, override val isNoinline: Boolean, override val isVararg: Boolean -) : FirValueParameter, FirModifiableVariable, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirValueParameter, FirModifiableVariable, FirAbstractAnnotatedElement { override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override var receiverTypeRef: FirTypeRef? = null override var initializer: FirExpression? = null diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirAnnotationCallImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirAnnotationCallImpl.kt index 571e3d9d87f..942cb24005e 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirAnnotationCallImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirAnnotationCallImpl.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement @@ -22,7 +23,7 @@ class FirAnnotationCallImpl( override val psi: PsiElement?, override val useSiteTarget: AnnotationUseSiteTarget?, override var annotationTypeRef: FirTypeRef -) : FirAnnotationCall, FirCallWithArgumentList, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirAnnotationCall, FirCallWithArgumentList, FirAbstractAnnotatedElement { override val typeRef: FirTypeRef get() = annotationTypeRef override val annotations: MutableList = mutableListOf() override val arguments: MutableList = mutableListOf() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirArrayOfCallImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirArrayOfCallImpl.kt index d3a18625073..3ffda29e9b2 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirArrayOfCallImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirArrayOfCallImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirArrayOfCall import org.jetbrains.kotlin.fir.expressions.FirExpression @@ -21,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirArrayOfCallImpl( override val psi: PsiElement? -) : FirArrayOfCall, FirCallWithArgumentList, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirArrayOfCall, FirCallWithArgumentList, FirAbstractAnnotatedElement { override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null) override val annotations: MutableList = mutableListOf() override val arguments: MutableList = mutableListOf() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirArraySetCallImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirArraySetCallImpl.kt index 9a08955d3e3..bcfa9eff719 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirArraySetCallImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirArraySetCallImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirArraySetCall import org.jetbrains.kotlin.fir.expressions.FirExpression @@ -23,7 +24,7 @@ class FirArraySetCallImpl( override val psi: PsiElement?, override var rValue: FirExpression, override val operation: FirOperation -) : FirArraySetCall, FirModifiableQualifiedAccess, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirArraySetCall, FirModifiableQualifiedAccess, FirAbstractAnnotatedElement { override val annotations: MutableList = mutableListOf() override var safe: Boolean = false override var explicitReceiver: FirExpression? = null diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirBinaryLogicExpressionImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirBinaryLogicExpressionImpl.kt index e19b3e818a6..d56038a7ed4 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirBinaryLogicExpressionImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirBinaryLogicExpressionImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirBinaryLogicExpression import org.jetbrains.kotlin.fir.expressions.FirExpression @@ -25,7 +26,7 @@ class FirBinaryLogicExpressionImpl( override var leftOperand: FirExpression, override var rightOperand: FirExpression, override val kind: LogicOperationKind -) : FirBinaryLogicExpression, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirBinaryLogicExpression, FirAbstractAnnotatedElement { override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null) override val annotations: MutableList = mutableListOf() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirBlockImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirBlockImpl.kt index e10b875e33f..17d618e4387 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirBlockImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirBlockImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.expressions.FirStatement @@ -21,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirBlockImpl( override val psi: PsiElement? -) : FirBlock, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirBlock, FirAbstractAnnotatedElement { override val annotations: MutableList = mutableListOf() override val statements: MutableList = mutableListOf() override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirBreakExpressionImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirBreakExpressionImpl.kt index 00c4785ead6..c149201d153 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirBreakExpressionImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirBreakExpressionImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirTarget import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirBreakExpression @@ -22,7 +23,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirBreakExpressionImpl( override val psi: PsiElement? -) : FirBreakExpression, FirAbstractLoopJump, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirBreakExpression, FirAbstractLoopJump, FirAbstractAnnotatedElement { override var typeRef: FirTypeRef = FirImplicitNothingTypeRef(psi) override val annotations: MutableList = mutableListOf() override lateinit var target: FirTarget diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirCallableReferenceAccessImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirCallableReferenceAccessImpl.kt index 4b4cf83de1c..d2e27acff29 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirCallableReferenceAccessImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirCallableReferenceAccessImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirCallableReferenceAccess import org.jetbrains.kotlin.fir.expressions.FirExpression @@ -22,7 +23,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirCallableReferenceAccessImpl( override val psi: PsiElement? -) : FirCallableReferenceAccess, FirModifiableQualifiedAccess, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirCallableReferenceAccess, FirModifiableQualifiedAccess, FirAbstractAnnotatedElement { override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null) override val annotations: MutableList = mutableListOf() override var safe: Boolean = false diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirCatchImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirCatchImpl.kt index 1d04fed53d3..9e27baf8ef0 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirCatchImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirCatchImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.expressions.FirCatch @@ -20,7 +21,7 @@ class FirCatchImpl( override val psi: PsiElement?, override var parameter: FirValueParameter, override var block: FirBlock -) : FirCatch { +) : FirPureAbstractElement(), FirCatch { override fun acceptChildren(visitor: FirVisitor, data: D) { parameter.accept(visitor, data) block.accept(visitor, data) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirClassReferenceExpressionImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirClassReferenceExpressionImpl.kt index 827487406f6..57937c4466a 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirClassReferenceExpressionImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirClassReferenceExpressionImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirClassReferenceExpression import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement @@ -21,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirClassReferenceExpressionImpl( override val psi: PsiElement?, override var classTypeRef: FirTypeRef -) : FirClassReferenceExpression, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirClassReferenceExpression, FirAbstractAnnotatedElement { override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null) override val annotations: MutableList = mutableListOf() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirComponentCallImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirComponentCallImpl.kt index d6f39d2a9b6..d01dfcea816 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirComponentCallImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirComponentCallImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirComponentCall import org.jetbrains.kotlin.fir.expressions.FirExpression @@ -27,7 +28,7 @@ class FirComponentCallImpl( override val psi: PsiElement?, override var explicitReceiver: FirExpression, override val componentIndex: Int -) : FirComponentCall, FirCallWithArgumentList, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirComponentCall, FirCallWithArgumentList, FirAbstractAnnotatedElement { override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null) override val annotations: MutableList = mutableListOf() override val safe: Boolean get() = false diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirConstExpressionImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirConstExpressionImpl.kt index 6709d51631c..8504b2be2ad 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirConstExpressionImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirConstExpressionImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirConstExpression import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement @@ -23,7 +24,7 @@ class FirConstExpressionImpl ( override val psi: PsiElement?, override val kind: IrConstKind, override val value: T -) : FirConstExpression, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirConstExpression, FirAbstractAnnotatedElement { override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null) override val annotations: MutableList = mutableListOf() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirContinueExpressionImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirContinueExpressionImpl.kt index 1f1e361fa0e..87c275c3e7d 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirContinueExpressionImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirContinueExpressionImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirTarget import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirContinueExpression @@ -22,7 +23,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirContinueExpressionImpl( override val psi: PsiElement? -) : FirContinueExpression, FirAbstractLoopJump, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirContinueExpression, FirAbstractLoopJump, FirAbstractAnnotatedElement { override var typeRef: FirTypeRef = FirImplicitNothingTypeRef(psi) override val annotations: MutableList = mutableListOf() override lateinit var target: FirTarget diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirDelegatedConstructorCallImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirDelegatedConstructorCallImpl.kt index 3a8a9ba5a77..482fd8017c2 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirDelegatedConstructorCallImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirDelegatedConstructorCallImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall import org.jetbrains.kotlin.fir.expressions.FirExpression @@ -25,7 +26,7 @@ class FirDelegatedConstructorCallImpl( override val psi: PsiElement?, override var constructedTypeRef: FirTypeRef, override val isThis: Boolean -) : FirDelegatedConstructorCall, FirCallWithArgumentList, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirDelegatedConstructorCall, FirCallWithArgumentList, FirAbstractAnnotatedElement { override val annotations: MutableList = mutableListOf() override val arguments: MutableList = mutableListOf() override val isSuper: Boolean get() = !isThis diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirDoWhileLoopImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirDoWhileLoopImpl.kt index ae1b21333b8..c1eedf18da4 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirDoWhileLoopImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirDoWhileLoopImpl.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement import org.jetbrains.kotlin.fir.FirLabel +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.expressions.FirDoWhileLoop @@ -22,7 +23,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirDoWhileLoopImpl( override val psi: PsiElement?, override var condition: FirExpression -) : FirDoWhileLoop, FirAbstractLoop, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirDoWhileLoop, FirAbstractLoop, FirAbstractAnnotatedElement { override val annotations: MutableList = mutableListOf() override lateinit var block: FirBlock override var label: FirLabel? = null diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirElseIfTrueCondition.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirElseIfTrueCondition.kt index f4bd2ba85a6..254817efd5e 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirElseIfTrueCondition.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirElseIfTrueCondition.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement @@ -20,7 +21,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirElseIfTrueCondition( override val psi: PsiElement? -) : FirExpression, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirExpression, FirAbstractAnnotatedElement { override var typeRef: FirTypeRef = FirImplicitBooleanTypeRef(psi) override val annotations: MutableList = mutableListOf() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirEmptyExpressionBlock.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirEmptyExpressionBlock.kt index 88f9388b37d..3c7c30627d9 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirEmptyExpressionBlock.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirEmptyExpressionBlock.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.expressions.FirStatement @@ -19,7 +20,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -class FirEmptyExpressionBlock : FirBlock, FirAbstractAnnotatedElement { +class FirEmptyExpressionBlock : FirPureAbstractElement(), FirBlock, FirAbstractAnnotatedElement { override val psi: PsiElement? = null override val annotations: MutableList = mutableListOf() override val statements: MutableList = mutableListOf() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirErrorExpressionImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirErrorExpressionImpl.kt index 1d7cfb2c4e7..8cf090efa99 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirErrorExpressionImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirErrorExpressionImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirErrorExpression import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement @@ -21,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirErrorExpressionImpl( override val psi: PsiElement?, override val reason: String -) : FirErrorExpression, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirErrorExpression, FirAbstractAnnotatedElement { override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null) override val annotations: MutableList = mutableListOf() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirErrorLoop.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirErrorLoop.kt index 17c40b47319..e3ebac0365d 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirErrorLoop.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirErrorLoop.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement import org.jetbrains.kotlin.fir.FirLabel +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.expressions.FirExpression @@ -21,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirErrorLoop( override val psi: PsiElement? -) : FirLoop, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirLoop, FirAbstractAnnotatedElement { override val annotations: MutableList = mutableListOf() override var block: FirBlock = FirEmptyExpressionBlock() override var condition: FirExpression = FirErrorExpressionImpl(psi, "error loop") diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirExpressionStub.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirExpressionStub.kt index c887097b9bf..2c849e16e86 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirExpressionStub.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirExpressionStub.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement @@ -20,7 +21,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirExpressionStub( override val psi: PsiElement? -) : FirExpression, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirExpression, FirAbstractAnnotatedElement { override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null) override val annotations: MutableList = mutableListOf() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirExpressionWithSmartcastImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirExpressionWithSmartcastImpl.kt index ce8749dd6d6..b079e6b9f9c 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirExpressionWithSmartcastImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirExpressionWithSmartcastImpl.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement import org.jetbrains.kotlin.fir.FirElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.* import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement import org.jetbrains.kotlin.fir.references.FirReference @@ -20,7 +21,7 @@ class FirExpressionWithSmartcastImpl( override var originalExpression: FirQualifiedAccessExpression, override val typeRef: FirTypeRef, override val typesFromSmartcast: Collection -) : FirExpressionWithSmartcast { +) : FirPureAbstractElement(), FirExpressionWithSmartcast { init { assert(originalExpression.typeRef is FirResolvedTypeRef) } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirFunctionCallImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirFunctionCallImpl.kt index 77c59a1b0a1..365d76c4593 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirFunctionCallImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirFunctionCallImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirFunctionCall @@ -23,7 +24,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirFunctionCallImpl( override val psi: PsiElement? -) : FirFunctionCall, FirModifiableQualifiedAccess, FirCallWithArgumentList, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirFunctionCall, FirModifiableQualifiedAccess, FirCallWithArgumentList, FirAbstractAnnotatedElement { override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null) override val annotations: MutableList = mutableListOf() override var safe: Boolean = false diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirGetClassCallImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirGetClassCallImpl.kt index e14d1508799..66d746dc34d 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirGetClassCallImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirGetClassCallImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirGetClassCall @@ -21,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirGetClassCallImpl( override val psi: PsiElement? -) : FirGetClassCall, FirCallWithArgumentList, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirGetClassCall, FirCallWithArgumentList, FirAbstractAnnotatedElement { override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null) override val annotations: MutableList = mutableListOf() override val arguments: MutableList = mutableListOf() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirLambdaArgumentExpressionImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirLambdaArgumentExpressionImpl.kt index 73092da0e43..74ddbb9621b 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirLambdaArgumentExpressionImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirLambdaArgumentExpressionImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirLambdaArgumentExpression @@ -21,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirLambdaArgumentExpressionImpl( override val psi: PsiElement?, override var expression: FirExpression -) : FirLambdaArgumentExpression, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirLambdaArgumentExpression, FirAbstractAnnotatedElement { override val typeRef: FirTypeRef get() = expression.typeRef override val annotations: MutableList = mutableListOf() override val isSpread: Boolean get() = false diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirNamedArgumentExpressionImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirNamedArgumentExpressionImpl.kt index 26f63c7d5cd..12e48e48d5b 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirNamedArgumentExpressionImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirNamedArgumentExpressionImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirNamedArgumentExpression @@ -24,7 +25,7 @@ class FirNamedArgumentExpressionImpl( override var expression: FirExpression, override val isSpread: Boolean, override val name: Name -) : FirNamedArgumentExpression, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirNamedArgumentExpression, FirAbstractAnnotatedElement { override val typeRef: FirTypeRef get() = expression.typeRef override val annotations: MutableList = mutableListOf() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirNoReceiverExpression.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirNoReceiverExpression.kt index b1c75df1426..db1795a5c51 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirNoReceiverExpression.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirNoReceiverExpression.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement @@ -13,7 +14,7 @@ import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl import org.jetbrains.kotlin.fir.visitors.* -object FirNoReceiverExpression : FirExpression { +object FirNoReceiverExpression : FirPureAbstractElement(), FirExpression { override val psi: PsiElement? = null override val typeRef: FirTypeRef = FirImplicitTypeRefImpl(null) override val annotations: List get() = emptyList() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirOperatorCallImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirOperatorCallImpl.kt index 9cf1a43c59b..171f72a4133 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirOperatorCallImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirOperatorCallImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirOperation @@ -24,7 +25,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirOperatorCallImpl( override val psi: PsiElement?, override val operation: FirOperation -) : FirOperatorCall, FirCallWithArgumentList, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirOperatorCall, FirCallWithArgumentList, FirAbstractAnnotatedElement { override var typeRef: FirTypeRef = if (operation in FirOperation.BOOLEANS) { FirImplicitBooleanTypeRef(null) } else { diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirQualifiedAccessExpressionImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirQualifiedAccessExpressionImpl.kt index 6eef0e46fcf..50066e3bbb3 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirQualifiedAccessExpressionImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirQualifiedAccessExpressionImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression @@ -22,7 +23,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirQualifiedAccessExpressionImpl( override val psi: PsiElement? -) : FirQualifiedAccessExpression, FirModifiableQualifiedAccess, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirQualifiedAccessExpression, FirModifiableQualifiedAccess, FirAbstractAnnotatedElement { override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null) override val annotations: MutableList = mutableListOf() override var safe: Boolean = false diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirResolvedQualifierImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirResolvedQualifierImpl.kt index 492355a43af..94e08b7d97b 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirResolvedQualifierImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirResolvedQualifierImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirResolvedQualifier import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement @@ -24,7 +25,7 @@ class FirResolvedQualifierImpl( override val psi: PsiElement?, override var packageFqName: FqName, override var relativeClassFqName: FqName? -) : FirResolvedQualifier, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirResolvedQualifier, FirAbstractAnnotatedElement { override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null) override val annotations: MutableList = mutableListOf() override val classId: ClassId? get() = relativeClassFqName?.let { diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirReturnExpressionImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirReturnExpressionImpl.kt index 3a66613980d..33d6c07f6af 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirReturnExpressionImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirReturnExpressionImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirTarget import org.jetbrains.kotlin.fir.declarations.FirFunction import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall @@ -24,7 +25,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirReturnExpressionImpl( override val psi: PsiElement?, override var result: FirExpression -) : FirReturnExpression, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirReturnExpression, FirAbstractAnnotatedElement { override var typeRef: FirTypeRef = FirImplicitNothingTypeRef(psi) override val annotations: MutableList = mutableListOf() override lateinit var target: FirTarget> diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirSingleExpressionBlock.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirSingleExpressionBlock.kt index c74f77b2b0e..f9a72f5663c 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirSingleExpressionBlock.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirSingleExpressionBlock.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.expressions.FirStatement @@ -19,7 +20,7 @@ import org.jetbrains.kotlin.fir.visitors.transformSingle class FirSingleExpressionBlock( var statement: FirStatement -) : FirBlock, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirBlock, FirAbstractAnnotatedElement { override val psi: PsiElement? get() = statement.psi override val annotations: MutableList = mutableListOf() override val statements: List get() = listOf(statement) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirSpreadArgumentExpressionImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirSpreadArgumentExpressionImpl.kt index da579e056b5..ae63954a757 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirSpreadArgumentExpressionImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirSpreadArgumentExpressionImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirSpreadArgumentExpression @@ -21,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirSpreadArgumentExpressionImpl( override val psi: PsiElement?, override var expression: FirExpression -) : FirSpreadArgumentExpression, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirSpreadArgumentExpression, FirAbstractAnnotatedElement { override val typeRef: FirTypeRef get() = expression.typeRef override val annotations: MutableList = mutableListOf() override val isSpread: Boolean get() = true diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirStringConcatenationCallImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirStringConcatenationCallImpl.kt index c96f25b4046..a11121167b5 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirStringConcatenationCallImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirStringConcatenationCallImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirStringConcatenationCall @@ -21,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirStringConcatenationCallImpl( override val psi: PsiElement? -) : FirStringConcatenationCall, FirCallWithArgumentList, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirStringConcatenationCall, FirCallWithArgumentList, FirAbstractAnnotatedElement { override val annotations: MutableList = mutableListOf() override val arguments: MutableList = mutableListOf() override var typeRef: FirTypeRef = FirImplicitStringTypeRef(psi) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirThisReceiverExpressionImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirThisReceiverExpressionImpl.kt index 61ebdefc865..d9d801eaf28 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirThisReceiverExpressionImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirThisReceiverExpressionImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirThisReceiverExpression @@ -23,7 +24,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirThisReceiverExpressionImpl( override val psi: PsiElement?, override var calleeReference: FirThisReference -) : FirThisReceiverExpression, FirModifiableQualifiedAccess, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirThisReceiverExpression, FirModifiableQualifiedAccess, FirAbstractAnnotatedElement { override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null) override val annotations: MutableList = mutableListOf() override var safe: Boolean = false diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirThrowExpressionImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirThrowExpressionImpl.kt index 4c03b7bb8b9..b191523032c 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirThrowExpressionImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirThrowExpressionImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirThrowExpression @@ -22,7 +23,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirThrowExpressionImpl( override val psi: PsiElement?, override var exception: FirExpression -) : FirThrowExpression, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirThrowExpression, FirAbstractAnnotatedElement { override var typeRef: FirTypeRef = FirImplicitNothingTypeRef(psi) override val annotations: MutableList = mutableListOf() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirTryExpressionImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirTryExpressionImpl.kt index 3dc23abd930..dece27fdedf 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirTryExpressionImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirTryExpressionImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.expressions.FirCatch @@ -26,7 +27,7 @@ class FirTryExpressionImpl( override val psi: PsiElement?, override var tryBlock: FirBlock, override var finallyBlock: FirBlock? -) : FirTryExpression, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirTryExpression, FirAbstractAnnotatedElement { override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null) override val annotations: MutableList = mutableListOf() override var calleeReference: FirReference = FirStubReference() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirTypeOperatorCallImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirTypeOperatorCallImpl.kt index 092e0771914..eeba436affc 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirTypeOperatorCallImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirTypeOperatorCallImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirOperation @@ -24,7 +25,7 @@ class FirTypeOperatorCallImpl( override val psi: PsiElement?, override val operation: FirOperation, override var conversionTypeRef: FirTypeRef -) : FirTypeOperatorCall, FirCallWithArgumentList, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirTypeOperatorCall, FirCallWithArgumentList, FirAbstractAnnotatedElement { override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null) override val annotations: MutableList = mutableListOf() override val arguments: MutableList = mutableListOf() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirUnitExpression.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirUnitExpression.kt index cfc29531fe3..0a022aa7e50 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirUnitExpression.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirUnitExpression.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement @@ -20,7 +21,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirUnitExpression( override val psi: PsiElement? -) : FirExpression, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirExpression, FirAbstractAnnotatedElement { override var typeRef: FirTypeRef = FirImplicitUnitTypeRef(psi) override val annotations: MutableList = mutableListOf() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirVariableAssignmentImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirVariableAssignmentImpl.kt index 58fc61e6cfb..7559db3ff78 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirVariableAssignmentImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirVariableAssignmentImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirOperation @@ -24,7 +25,7 @@ class FirVariableAssignmentImpl( override var safe: Boolean, override var rValue: FirExpression, override var operation: FirOperation -) : FirVariableAssignment, FirModifiableQualifiedAccess, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirVariableAssignment, FirModifiableQualifiedAccess, FirAbstractAnnotatedElement { override val annotations: MutableList = mutableListOf() override var explicitReceiver: FirExpression? = null override var dispatchReceiver: FirExpression = FirNoReceiverExpression diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirWhenBranchImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirWhenBranchImpl.kt index 6cafeadeb00..0469bb098de 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirWhenBranchImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirWhenBranchImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirWhenBranch @@ -20,7 +21,7 @@ class FirWhenBranchImpl( override val psi: PsiElement?, override var condition: FirExpression, override var result: FirBlock -) : FirWhenBranch { +) : FirPureAbstractElement(), FirWhenBranch { override fun acceptChildren(visitor: FirVisitor, data: D) { condition.accept(visitor, data) result.accept(visitor, data) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirWhenExpressionImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirWhenExpressionImpl.kt index 1737fa6deee..033083d64e2 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirWhenExpressionImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirWhenExpressionImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.declarations.FirVariable import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression @@ -27,7 +28,7 @@ class FirWhenExpressionImpl( override val psi: PsiElement?, override var subject: FirExpression?, override var subjectVariable: FirVariable<*>? -) : FirWhenExpression, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirWhenExpression, FirAbstractAnnotatedElement { override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null) override val annotations: MutableList = mutableListOf() override var calleeReference: FirReference = FirStubReference() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirWhenSubjectExpressionImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirWhenSubjectExpressionImpl.kt index 4a0f4aa0c8a..8940d1d74b6 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirWhenSubjectExpressionImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirWhenSubjectExpressionImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirWhenSubject import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpression @@ -21,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirWhenSubjectExpressionImpl( override val psi: PsiElement?, override val whenSubject: FirWhenSubject -) : FirWhenSubjectExpression, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirWhenSubjectExpression, FirAbstractAnnotatedElement { override val typeRef: FirTypeRef get() = whenSubject.whenExpression.subject!!.typeRef override val annotations: MutableList = mutableListOf() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirWhileLoopImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirWhileLoopImpl.kt index 3b3259b86d8..a5637a3279d 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirWhileLoopImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirWhileLoopImpl.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement import org.jetbrains.kotlin.fir.FirLabel +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.expressions.FirExpression @@ -22,7 +23,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirWhileLoopImpl( override val psi: PsiElement?, override var condition: FirExpression -) : FirWhileLoop, FirAbstractLoop, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirWhileLoop, FirAbstractLoop, FirAbstractAnnotatedElement { override val annotations: MutableList = mutableListOf() override var label: FirLabel? = null override lateinit var block: FirBlock diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirWrappedDelegateExpressionImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirWrappedDelegateExpressionImpl.kt index ec4154f2df5..743e4e33f49 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirWrappedDelegateExpressionImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirWrappedDelegateExpressionImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirWrappedDelegateExpression @@ -21,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirWrappedDelegateExpressionImpl( override val psi: PsiElement?, override var expression: FirExpression -) : FirWrappedDelegateExpression, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirWrappedDelegateExpression, FirAbstractAnnotatedElement { override val typeRef: FirTypeRef get() = expression.typeRef override val annotations: MutableList = mutableListOf() override lateinit var delegateProvider: FirExpression diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/impl/FirLabelImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/impl/FirLabelImpl.kt index 482ee56461b..99306f0f6f5 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/impl/FirLabelImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/impl/FirLabelImpl.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.impl import com.intellij.psi.PsiElement import org.jetbrains.kotlin.fir.FirLabel +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.visitors.* /* @@ -17,7 +18,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirLabelImpl( override val psi: PsiElement?, override val name: String -) : FirLabel { +) : FirPureAbstractElement(), FirLabel { override fun acceptChildren(visitor: FirVisitor, data: D) {} override fun transformChildren(transformer: FirTransformer, data: D): FirLabelImpl { diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirBackingFieldReferenceImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirBackingFieldReferenceImpl.kt index 6d7f4bd8c96..a205776529a 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirBackingFieldReferenceImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirBackingFieldReferenceImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.references.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.references.FirBackingFieldReference import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirBackingFieldSymbol @@ -21,7 +22,7 @@ class FirBackingFieldReferenceImpl( override val psi: PsiElement?, override val candidateSymbol: AbstractFirBasedSymbol<*>?, override val resolvedSymbol: FirBackingFieldSymbol -) : FirBackingFieldReference { +) : FirPureAbstractElement(), FirBackingFieldReference { override val name: Name get() = Name.identifier("\$field") override fun acceptChildren(visitor: FirVisitor, data: D) {} diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirDelegateFieldReferenceImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirDelegateFieldReferenceImpl.kt index a8cbc435ddd..f58547b0bf4 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirDelegateFieldReferenceImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirDelegateFieldReferenceImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.references.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.references.FirDelegateFieldReference import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol @@ -21,7 +22,7 @@ class FirDelegateFieldReferenceImpl( override val psi: PsiElement?, override val candidateSymbol: AbstractFirBasedSymbol<*>?, override val resolvedSymbol: FirDelegateFieldSymbol<*> -) : FirDelegateFieldReference { +) : FirPureAbstractElement(), FirDelegateFieldReference { override val name: Name get() = Name.identifier("\$delegate") override fun acceptChildren(visitor: FirVisitor, data: D) {} diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirEmptyControlFlowGraphReference.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirEmptyControlFlowGraphReference.kt index 47700b73436..3dc57a0bddf 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirEmptyControlFlowGraphReference.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirEmptyControlFlowGraphReference.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.references.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference import org.jetbrains.kotlin.fir.visitors.* @@ -14,7 +15,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -class FirEmptyControlFlowGraphReference : FirControlFlowGraphReference { +class FirEmptyControlFlowGraphReference : FirPureAbstractElement(), FirControlFlowGraphReference { override val psi: PsiElement? = null override fun acceptChildren(visitor: FirVisitor, data: D) {} diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirErrorNamedReferenceImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirErrorNamedReferenceImpl.kt index 38535e3032a..81862506fde 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirErrorNamedReferenceImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirErrorNamedReferenceImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.references.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.references.FirErrorNamedReference import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol import org.jetbrains.kotlin.name.Name @@ -19,7 +20,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirErrorNamedReferenceImpl( override val psi: PsiElement?, override val errorReason: String -) : FirErrorNamedReference { +) : FirPureAbstractElement(), FirErrorNamedReference { override val name: Name = Name.special("<$errorReason>") override val candidateSymbol: AbstractFirBasedSymbol<*>? get() = null diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirExplicitSuperReference.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirExplicitSuperReference.kt index 53692e9aae4..e7a993f1a73 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirExplicitSuperReference.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirExplicitSuperReference.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.references.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.references.FirSuperReference import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.visitors.* @@ -18,7 +19,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirExplicitSuperReference( override val psi: PsiElement?, override var superTypeRef: FirTypeRef -) : FirSuperReference { +) : FirPureAbstractElement(), FirSuperReference { override fun acceptChildren(visitor: FirVisitor, data: D) { superTypeRef.accept(visitor, data) } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirExplicitThisReference.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirExplicitThisReference.kt index d7d20e9308e..224e340e9de 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirExplicitThisReference.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirExplicitThisReference.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.references.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.references.FirThisReference import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol import org.jetbrains.kotlin.fir.visitors.* @@ -18,7 +19,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirExplicitThisReference( override val psi: PsiElement?, override val labelName: String? -) : FirThisReference { +) : FirPureAbstractElement(), FirThisReference { override var boundSymbol: AbstractFirBasedSymbol<*>? = null override fun acceptChildren(visitor: FirVisitor, data: D) {} diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirImplicitThisReference.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirImplicitThisReference.kt index 342176877a7..e895327e108 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirImplicitThisReference.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirImplicitThisReference.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.references.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.references.FirThisReference import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol import org.jetbrains.kotlin.fir.visitors.* @@ -17,7 +18,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirImplicitThisReference( override val boundSymbol: AbstractFirBasedSymbol<*>? -) : FirThisReference { +) : FirPureAbstractElement(), FirThisReference { override val psi: PsiElement? = null override val labelName: String? get() = null diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirPropertyFromParameterCallableReference.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirPropertyFromParameterCallableReference.kt index 1501a5fa2e6..e85102e06e9 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirPropertyFromParameterCallableReference.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirPropertyFromParameterCallableReference.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.references.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.references.FirResolvedCallableReference import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol import org.jetbrains.kotlin.name.Name @@ -20,7 +21,7 @@ class FirPropertyFromParameterCallableReference( override val psi: PsiElement?, override val name: Name, override val resolvedSymbol: AbstractFirBasedSymbol<*> -) : FirResolvedCallableReference { +) : FirPureAbstractElement(), FirResolvedCallableReference { override val candidateSymbol: AbstractFirBasedSymbol<*>? get() = null override fun acceptChildren(visitor: FirVisitor, data: D) {} diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirResolvedCallableReferenceImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirResolvedCallableReferenceImpl.kt index 5e8ec8afbbc..98dcd2e1e6f 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirResolvedCallableReferenceImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirResolvedCallableReferenceImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.references.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.references.FirResolvedCallableReference import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol import org.jetbrains.kotlin.name.Name @@ -20,7 +21,7 @@ class FirResolvedCallableReferenceImpl( override val psi: PsiElement?, override val name: Name, override val resolvedSymbol: AbstractFirBasedSymbol<*> -) : FirResolvedCallableReference { +) : FirPureAbstractElement(), FirResolvedCallableReference { override val candidateSymbol: AbstractFirBasedSymbol<*>? get() = null override fun acceptChildren(visitor: FirVisitor, data: D) {} diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirSimpleNamedReference.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirSimpleNamedReference.kt index 75b27d21331..3d856051c7b 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirSimpleNamedReference.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirSimpleNamedReference.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.references.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.references.FirNamedReference import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol import org.jetbrains.kotlin.name.Name @@ -20,7 +21,7 @@ open class FirSimpleNamedReference( override val psi: PsiElement?, override val name: Name, override val candidateSymbol: AbstractFirBasedSymbol<*>? -) : FirNamedReference { +) : FirPureAbstractElement(), FirNamedReference { override fun acceptChildren(visitor: FirVisitor, data: D) {} override fun transformChildren(transformer: FirTransformer, data: D): FirSimpleNamedReference { diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirStubReference.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirStubReference.kt index 0c6828b23e6..6ce4ba28dbc 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirStubReference.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/references/impl/FirStubReference.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.references.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.visitors.* @@ -14,7 +15,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -class FirStubReference : FirReference { +class FirStubReference : FirPureAbstractElement(), FirReference { override val psi: PsiElement? get() = null override fun acceptChildren(visitor: FirVisitor, data: D) {} diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirComputingImplicitTypeRef.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirComputingImplicitTypeRef.kt index 220047c230c..6687e820510 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirComputingImplicitTypeRef.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirComputingImplicitTypeRef.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.types.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef @@ -16,7 +17,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -object FirComputingImplicitTypeRef : FirImplicitTypeRef, FirAbstractAnnotatedElement { +object FirComputingImplicitTypeRef : FirPureAbstractElement(), FirImplicitTypeRef, FirAbstractAnnotatedElement { override val psi: PsiElement? get() = null override val annotations: MutableList = mutableListOf() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirDelegatedTypeRefImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirDelegatedTypeRefImpl.kt index 8a6e38ca205..27b51d1c9fc 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirDelegatedTypeRefImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirDelegatedTypeRefImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.types.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.types.FirDelegatedTypeRef @@ -20,7 +21,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirDelegatedTypeRefImpl( override var delegate: FirExpression?, override var typeRef: FirTypeRef -) : FirDelegatedTypeRef { +) : FirPureAbstractElement(), FirDelegatedTypeRef { override val psi: PsiElement? get() = typeRef.psi override val annotations: List get() = typeRef.annotations diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirDynamicTypeRefImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirDynamicTypeRefImpl.kt index afdcbbfdc9d..fa45bdd2cb7 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirDynamicTypeRefImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirDynamicTypeRefImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.types.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement import org.jetbrains.kotlin.fir.types.FirDynamicTypeRef @@ -19,7 +20,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirDynamicTypeRefImpl( override val psi: PsiElement?, override val isMarkedNullable: Boolean -) : FirDynamicTypeRef, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirDynamicTypeRef, FirAbstractAnnotatedElement { override val annotations: MutableList = mutableListOf() override fun acceptChildren(visitor: FirVisitor, data: D) { diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirErrorTypeRefImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirErrorTypeRefImpl.kt index 093e9bcf3ff..cf8b084eb9a 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirErrorTypeRefImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirErrorTypeRefImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.types.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement import org.jetbrains.kotlin.fir.types.ConeClassErrorType @@ -21,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirErrorTypeRefImpl( override val psi: PsiElement?, override val reason: String -) : FirErrorTypeRef, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirErrorTypeRef, FirAbstractAnnotatedElement { override val annotations: MutableList = mutableListOf() override val type: ConeKotlinType = ConeClassErrorType(reason) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirFunctionTypeRefImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirFunctionTypeRefImpl.kt index baa859373b2..978500b36e0 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirFunctionTypeRefImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirFunctionTypeRefImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.types.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement @@ -23,7 +24,7 @@ class FirFunctionTypeRefImpl( override val isMarkedNullable: Boolean, override var receiverTypeRef: FirTypeRef?, override var returnTypeRef: FirTypeRef -) : FirFunctionTypeRef, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirFunctionTypeRef, FirAbstractAnnotatedElement { override val annotations: MutableList = mutableListOf() override val valueParameters: MutableList = mutableListOf() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirImplicitBuiltinTypeRef.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirImplicitBuiltinTypeRef.kt index 37d42eabd0a..cf4335c01f6 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirImplicitBuiltinTypeRef.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirImplicitBuiltinTypeRef.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.types.impl import com.intellij.psi.PsiElement import org.jetbrains.kotlin.fir.FirElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.symbols.StandardClassIds import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl @@ -22,7 +23,7 @@ sealed class FirImplicitBuiltinTypeRef( val id: ClassId, typeArguments: Array = emptyArray(), isNullable: Boolean = false -) : FirResolvedTypeRef { +) : FirPureAbstractElement(), FirResolvedTypeRef { override val annotations: List get() = emptyList() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirImplicitTypeRefImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirImplicitTypeRefImpl.kt index 7de03339746..2d98ac783df 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirImplicitTypeRefImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirImplicitTypeRefImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.types.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef import org.jetbrains.kotlin.fir.visitors.* @@ -17,7 +18,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirImplicitTypeRefImpl( override val psi: PsiElement? -) : FirImplicitTypeRef { +) : FirPureAbstractElement(), FirImplicitTypeRef { override val annotations: List get() = emptyList() override fun acceptChildren(visitor: FirVisitor, data: D) { diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirResolvedFunctionTypeRefImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirResolvedFunctionTypeRefImpl.kt index bf695fcbeb8..ebb7ce22623 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirResolvedFunctionTypeRefImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirResolvedFunctionTypeRefImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.types.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement @@ -25,7 +26,7 @@ class FirResolvedFunctionTypeRefImpl( override val isMarkedNullable: Boolean, override var receiverTypeRef: FirTypeRef?, override var returnTypeRef: FirTypeRef -) : FirResolvedFunctionTypeRef, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirResolvedFunctionTypeRef, FirAbstractAnnotatedElement { override val annotations: MutableList = mutableListOf() override val valueParameters: MutableList = mutableListOf() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirResolvedTypeRefImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirResolvedTypeRefImpl.kt index 1fe44c4acc2..8a92ebd85c5 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirResolvedTypeRefImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirResolvedTypeRefImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.types.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement import org.jetbrains.kotlin.fir.types.ConeKotlinType @@ -20,7 +21,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirResolvedTypeRefImpl( override val psi: PsiElement?, override val type: ConeKotlinType -) : FirResolvedTypeRef, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirResolvedTypeRef, FirAbstractAnnotatedElement { override val annotations: MutableList = mutableListOf() override fun acceptChildren(visitor: FirVisitor, data: D) { diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirStarProjectionImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirStarProjectionImpl.kt index ac4886d7b2d..5806679c23e 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirStarProjectionImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirStarProjectionImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.types.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.types.FirStarProjection import org.jetbrains.kotlin.fir.visitors.* @@ -16,7 +17,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirStarProjectionImpl( override val psi: PsiElement? -) : FirStarProjection { +) : FirPureAbstractElement(), FirStarProjection { override fun acceptChildren(visitor: FirVisitor, data: D) {} override fun transformChildren(transformer: FirTransformer, data: D): FirStarProjectionImpl { diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirTypePlaceholderProjection.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirTypePlaceholderProjection.kt index 7e2020658a6..c4ec8765d76 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirTypePlaceholderProjection.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirTypePlaceholderProjection.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.types.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.types.FirTypeProjection import org.jetbrains.kotlin.fir.visitors.* @@ -14,7 +15,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -object FirTypePlaceholderProjection : FirTypeProjection { +object FirTypePlaceholderProjection : FirPureAbstractElement(), FirTypeProjection { override val psi: PsiElement? = null override fun acceptChildren(visitor: FirVisitor, data: D) {} diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirTypeProjectionWithVarianceImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirTypeProjectionWithVarianceImpl.kt index 00237a47499..523c87a33d4 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirTypeProjectionWithVarianceImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirTypeProjectionWithVarianceImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.types.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.types.FirTypeProjectionWithVariance import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.types.Variance @@ -20,7 +21,7 @@ class FirTypeProjectionWithVarianceImpl( override val psi: PsiElement?, override var typeRef: FirTypeRef, override val variance: Variance -) : FirTypeProjectionWithVariance { +) : FirPureAbstractElement(), FirTypeProjectionWithVariance { override fun acceptChildren(visitor: FirVisitor, data: D) { typeRef.accept(visitor, data) } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirUserTypeRefImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirUserTypeRefImpl.kt index a1e65788685..044aea274ff 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirUserTypeRefImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/types/impl/FirUserTypeRefImpl.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.types.impl import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement import org.jetbrains.kotlin.fir.types.FirQualifierPart @@ -18,7 +19,7 @@ import org.jetbrains.kotlin.fir.visitors.transformInplace open class FirUserTypeRefImpl( override val psi: PsiElement?, override val isMarkedNullable: Boolean -) : FirUserTypeRef, FirAbstractAnnotatedElement { +) : FirPureAbstractElement(), FirUserTypeRef, FirAbstractAnnotatedElement { override val qualifier: MutableList = mutableListOf() override val annotations: MutableList = mutableListOf() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/visitors/FirTransformerUtil.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/visitors/FirTransformerUtil.kt index 29e3537b1d3..08bc12d8cb3 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/visitors/FirTransformerUtil.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/visitors/FirTransformerUtil.kt @@ -6,15 +6,16 @@ package org.jetbrains.kotlin.fir.visitors import org.jetbrains.kotlin.fir.FirElement +import org.jetbrains.kotlin.fir.FirPureAbstractElement fun T.transformSingle(transformer: FirTransformer, data: D): T { - return transform(transformer, data).single + return (this as FirPureAbstractElement).transform(transformer, data).single } fun MutableList.transformInplace(transformer: FirTransformer, data: D) { val iterator = this.listIterator() while (iterator.hasNext()) { - val next = iterator.next() + val next = iterator.next() as FirPureAbstractElement val result = next.transform(transformer, data) if (result.isSingle) { iterator.set(result.single) diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/Printer.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/Printer.kt index 29e4d7d083b..89708cb325a 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/Printer.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/Printer.kt @@ -169,7 +169,8 @@ fun Implementation.generateCode(generationPath: String) { fun Implementation.collectImports(): List { return element.collectImportsInternal( - listOf(element.fullQualifiedName) + usedTypes.mapNotNull { it.fullQualifiedName } + parents.mapNotNull { it.fullQualifiedName }, + listOf(element.fullQualifiedName) + usedTypes.mapNotNull { it.fullQualifiedName } + parents.mapNotNull { it.fullQualifiedName } + + listOfNotNull(pureAbstractElementType.fullQualifiedName?.takeIf { kind != Implementation.Kind.Interface }), isImpl = true ) } @@ -272,7 +273,11 @@ fun PrintWriter.printImplementation(implementation: Implementation) { print(")") } - print(" : ${element.typeWithArguments}") + print(" : ") + if (!isInterface) { + print("${pureAbstractElementType.type}(), ") + } + print(element.typeWithArguments) parents.forEach { print(", ${it.typeWithArguments}") } diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/Types.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/Types.kt index b74ed785c6c..37549657b7e 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/Types.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/Types.kt @@ -59,4 +59,6 @@ val compositeTransformResultType = type("fir.visitors", "CompositeTransformResul val abstractFirBasedSymbolType = type("fir.symbols", "AbstractFirBasedSymbol") val backingFieldSymbolType = type("fir.symbols.impl", "FirBackingFieldSymbol") val delegateFieldSymbolType = type("fir.symbols.impl", "FirDelegateFieldSymbol") -val classSymbolType = type("fir.symbols.impl", "FirClassSymbol") \ No newline at end of file +val classSymbolType = type("fir.symbols.impl", "FirClassSymbol") + +val pureAbstractElementType = generatedType("FirPureAbstractElement") \ No newline at end of file