[FIR] Add FirAbstractElement as base type for all fir node implementations

This commit is contained in:
Dmitriy Novozhilov
2019-10-16 18:28:31 +03:00
parent f19a878948
commit f8f2d8b9a1
95 changed files with 210 additions and 96 deletions
@@ -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<FirAnnotationCall> = mutableListOf()
override val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
@@ -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<FirTypeParameter> = mutableListOf()
override val name: Name get() = CONSTRUCTOR_NAME
@@ -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)
}
@@ -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 <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {}
@@ -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 <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D)
abstract override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement
}
@@ -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<FirAnonymousFunction>, FirAbstractAnnotatedElement {
) : FirPureAbstractElement(), FirAnonymousFunction, FirModifiableFunction<FirAnonymousFunction>, FirAbstractAnnotatedElement {
override var resolvePhase: FirResolvePhase = FirResolvePhase.DECLARATIONS
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
override var controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference()
@@ -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 <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
@@ -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<FirTypeRef> = mutableListOf()
@@ -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<FirAnnotationCall> = mutableListOf()
override val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
@@ -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<FirTypeParameter> = mutableListOf()
@@ -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
@@ -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>
) : FirValueParameter, FirAbstractAnnotatedElement {
) : FirPureAbstractElement(), FirValueParameter, FirAbstractAnnotatedElement {
override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
override var receiverTypeRef: FirTypeRef? = null
override val name: Name = Name.identifier("value")
@@ -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<FirAnnotationCall> = mutableListOf()
override val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
@@ -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<FirAnnotationCall> = mutableListOf()
override var returnTypeRef: FirTypeRef = FirErrorTypeRefImpl(null, reason)
@@ -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<FirAnnotationCall> = mutableListOf()
override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
override val imports: MutableList<FirImport> = mutableListOf()
@@ -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 <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirImportImpl {
@@ -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<FirPropertyAccessor>, FirAbstractAnnotatedElement {
) : FirPureAbstractElement(), FirPropertyAccessor, FirModifiableFunction<FirPropertyAccessor>, FirAbstractAnnotatedElement {
override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
override var receiverTypeRef: FirTypeRef? = null
override var controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference()
@@ -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<FirProperty>, FirModifiableTypeParametersOwner, FirAbstractAnnotatedElement {
) : FirPureAbstractElement(), FirProperty, FirModifiableVariable<FirProperty>, FirModifiableTypeParametersOwner, FirAbstractAnnotatedElement {
override var resolvePhase: FirResolvePhase = if (isLocal) FirResolvePhase.DECLARATIONS else FirResolvePhase.RAW_FIR
override val delegateFieldSymbol: FirDelegateFieldSymbol<FirProperty>? = delegate?.let { FirDelegateFieldSymbol(symbol.callableId) }
override val isVal: Boolean get() = !isVar
@@ -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
@@ -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<FirAnnotationCall> = mutableListOf()
override val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
@@ -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>
) : FirSimpleFunction, FirModifiableFunction<FirSimpleFunction>, FirModifiableTypeParametersOwner, FirAbstractAnnotatedElement {
) : FirPureAbstractElement(), FirSimpleFunction, FirModifiableFunction<FirSimpleFunction>, FirModifiableTypeParametersOwner, FirAbstractAnnotatedElement {
override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
override var controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference()
override val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
@@ -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<FirTypeParameter> = mutableListOf()
override var supertypesComputationStatus: SupertypesComputationStatus = SupertypesComputationStatus.NOT_COMPUTED
@@ -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<FirTypeRef> = mutableListOf()
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
@@ -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<FirValueParameter>, FirAbstractAnnotatedElement {
) : FirPureAbstractElement(), FirValueParameter, FirModifiableVariable<FirValueParameter>, FirAbstractAnnotatedElement {
override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
override var receiverTypeRef: FirTypeRef? = null
override var initializer: FirExpression? = null
@@ -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<FirAnnotationCall> = mutableListOf()
override val arguments: MutableList<FirExpression> = mutableListOf()
@@ -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<FirAnnotationCall> = mutableListOf()
override val arguments: MutableList<FirExpression> = mutableListOf()
@@ -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<FirAnnotationCall> = mutableListOf()
override var safe: Boolean = false
override var explicitReceiver: FirExpression? = null
@@ -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<FirAnnotationCall> = mutableListOf()
@@ -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<FirAnnotationCall> = mutableListOf()
override val statements: MutableList<FirStatement> = mutableListOf()
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
@@ -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<FirAnnotationCall> = mutableListOf()
override lateinit var target: FirTarget<FirLoop>
@@ -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<FirAnnotationCall> = mutableListOf()
override var safe: Boolean = false
@@ -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 <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
parameter.accept(visitor, data)
block.accept(visitor, data)
@@ -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<FirAnnotationCall> = mutableListOf()
@@ -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<FirAnnotationCall> = mutableListOf()
override val safe: Boolean get() = false
@@ -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<T> (
override val psi: PsiElement?,
override val kind: IrConstKind<T>,
override val value: T
) : FirConstExpression<T>, FirAbstractAnnotatedElement {
) : FirPureAbstractElement(), FirConstExpression<T>, FirAbstractAnnotatedElement {
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
@@ -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<FirAnnotationCall> = mutableListOf()
override lateinit var target: FirTarget<FirLoop>
@@ -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<FirAnnotationCall> = mutableListOf()
override val arguments: MutableList<FirExpression> = mutableListOf()
override val isSuper: Boolean get() = !isThis
@@ -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<FirAnnotationCall> = mutableListOf()
override lateinit var block: FirBlock
override var label: FirLabel? = null
@@ -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<FirAnnotationCall> = mutableListOf()
@@ -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<FirAnnotationCall> = mutableListOf()
override val statements: MutableList<FirStatement> = mutableListOf()
@@ -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<FirAnnotationCall> = mutableListOf()
@@ -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<FirAnnotationCall> = mutableListOf()
override var block: FirBlock = FirEmptyExpressionBlock()
override var condition: FirExpression = FirErrorExpressionImpl(psi, "error loop")
@@ -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<FirAnnotationCall> = mutableListOf()
@@ -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<ConeKotlinType>
) : FirExpressionWithSmartcast {
) : FirPureAbstractElement(), FirExpressionWithSmartcast {
init {
assert(originalExpression.typeRef is FirResolvedTypeRef)
}
@@ -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<FirAnnotationCall> = mutableListOf()
override var safe: Boolean = false
@@ -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<FirAnnotationCall> = mutableListOf()
override val arguments: MutableList<FirExpression> = mutableListOf()
@@ -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<FirAnnotationCall> = mutableListOf()
override val isSpread: Boolean get() = false
@@ -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<FirAnnotationCall> = mutableListOf()
@@ -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<FirAnnotationCall> get() = emptyList()
@@ -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 {
@@ -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<FirAnnotationCall> = mutableListOf()
override var safe: Boolean = false
@@ -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<FirAnnotationCall> = mutableListOf()
override val classId: ClassId? get() = relativeClassFqName?.let {
@@ -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<FirAnnotationCall> = mutableListOf()
override lateinit var target: FirTarget<FirFunction<*>>
@@ -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<FirAnnotationCall> = mutableListOf()
override val statements: List<FirStatement> get() = listOf(statement)
@@ -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<FirAnnotationCall> = mutableListOf()
override val isSpread: Boolean get() = true
@@ -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<FirAnnotationCall> = mutableListOf()
override val arguments: MutableList<FirExpression> = mutableListOf()
override var typeRef: FirTypeRef = FirImplicitStringTypeRef(psi)
@@ -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<FirAnnotationCall> = mutableListOf()
override var safe: Boolean = false
@@ -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<FirAnnotationCall> = mutableListOf()
@@ -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<FirAnnotationCall> = mutableListOf()
override var calleeReference: FirReference = FirStubReference()
@@ -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<FirAnnotationCall> = mutableListOf()
override val arguments: MutableList<FirExpression> = mutableListOf()
@@ -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<FirAnnotationCall> = mutableListOf()
@@ -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<FirAnnotationCall> = mutableListOf()
override var explicitReceiver: FirExpression? = null
override var dispatchReceiver: FirExpression = FirNoReceiverExpression
@@ -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 <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
condition.accept(visitor, data)
result.accept(visitor, data)
@@ -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<FirAnnotationCall> = mutableListOf()
override var calleeReference: FirReference = FirStubReference()
@@ -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<FirAnnotationCall> = mutableListOf()
@@ -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<FirAnnotationCall> = mutableListOf()
override var label: FirLabel? = null
override lateinit var block: FirBlock
@@ -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<FirAnnotationCall> = mutableListOf()
override lateinit var delegateProvider: FirExpression
@@ -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 <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirLabelImpl {
@@ -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 <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {}
@@ -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 <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {}
@@ -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 <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {}
@@ -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
@@ -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 <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
superTypeRef.accept(visitor, data)
}
@@ -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 <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {}
@@ -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
@@ -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 <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {}
@@ -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 <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {}
@@ -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 <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirSimpleNamedReference {
@@ -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 <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {}
@@ -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<FirAnnotationCall> = mutableListOf()
@@ -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<FirAnnotationCall> get() = typeRef.annotations
@@ -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<FirAnnotationCall> = mutableListOf()
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
@@ -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<FirAnnotationCall> = mutableListOf()
override val type: ConeKotlinType = ConeClassErrorType(reason)
@@ -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<FirAnnotationCall> = mutableListOf()
override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
@@ -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<out ConeKotlinTypeProjection> = emptyArray(),
isNullable: Boolean = false
) : FirResolvedTypeRef {
) : FirPureAbstractElement(), FirResolvedTypeRef {
override val annotations: List<FirAnnotationCall>
get() = emptyList()
@@ -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<FirAnnotationCall> get() = emptyList()
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
@@ -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<FirAnnotationCall> = mutableListOf()
override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
@@ -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<FirAnnotationCall> = mutableListOf()
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
@@ -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 <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirStarProjectionImpl {
@@ -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 <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {}
@@ -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 <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
typeRef.accept(visitor, data)
}
@@ -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<FirQualifierPart> = mutableListOf()
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
@@ -6,15 +6,16 @@
package org.jetbrains.kotlin.fir.visitors
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirPureAbstractElement
fun <T : FirElement, D> T.transformSingle(transformer: FirTransformer<D>, data: D): T {
return transform<T, D>(transformer, data).single
return (this as FirPureAbstractElement).transform<T, D>(transformer, data).single
}
fun <T : FirElement, D> MutableList<T>.transformInplace(transformer: FirTransformer<D>, data: D) {
val iterator = this.listIterator()
while (iterator.hasNext()) {
val next = iterator.next()
val next = iterator.next() as FirPureAbstractElement
val result = next.transform<T, D>(transformer, data)
if (result.isSingle) {
iterator.set(result.single)
@@ -169,7 +169,8 @@ fun Implementation.generateCode(generationPath: String) {
fun Implementation.collectImports(): List<String> {
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}")
}
@@ -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")
val classSymbolType = type("fir.symbols.impl", "FirClassSymbol")
val pureAbstractElementType = generatedType("FirPureAbstractElement")