FIR tree refactoring: move FirElement.session to FirDeclaration

#KT-30275 Fixed
This commit is contained in:
Mikhail Glukhikh
2019-07-20 15:47:42 +03:00
parent 98f75669a5
commit a38b4756b5
159 changed files with 502 additions and 932 deletions
@@ -10,6 +10,5 @@ import com.intellij.psi.PsiElement
abstract class FirPureAbstractElement : FirElement
abstract class FirAbstractElement(
final override val session: FirSession,
final override val psi: PsiElement?
) : FirPureAbstractElement()
@@ -14,9 +14,6 @@ import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid
interface FirElement {
val psi: PsiElement?
@Deprecated("It's generally better to obtain use-site session from external source")
val session: FirSession
fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitElement(this, data)
@@ -14,9 +14,9 @@ import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirAnonymousFunction(
session: FirSession,
final override val session: FirSession,
psi: PsiElement?
) : @VisitedSupertype FirFunction, FirUnknownTypeExpression(session, psi), FirTypedDeclaration, FirLabeledElement {
) : @VisitedSupertype FirFunction, FirUnknownTypeExpression(psi), FirTypedDeclaration, FirLabeledElement {
abstract val receiverTypeRef: FirTypeRef?
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
@@ -7,16 +7,11 @@ package org.jetbrains.kotlin.fir.declarations
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.VisitedSupertype
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.expressions.impl.FirUnknownTypeExpression
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirAnonymousObject(
session: FirSession,
psi: PsiElement?
) : @VisitedSupertype FirClass, FirUnknownTypeExpression(session, psi) {
abstract class FirAnonymousObject(psi: PsiElement?) : @VisitedSupertype FirClass, FirUnknownTypeExpression(psi) {
override val classKind: ClassKind
get() = ClassKind.OBJECT
@@ -7,11 +7,14 @@ package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.BaseTransformedType
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.visitors.FirVisitor
@BaseTransformedType
interface FirDeclaration : FirElement {
val session: FirSession
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitDeclaration(this, data)
}
@@ -14,9 +14,9 @@ import org.jetbrains.kotlin.fir.visitors.FirVisitor
@BaseTransformedType
abstract class FirEnumEntry(
session: FirSession,
final override val session: FirSession,
psi: PsiElement?
) : @VisitedSupertype FirRegularClass, FirCall(session, psi) {
) : @VisitedSupertype FirRegularClass, FirCall(psi) {
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitEnumEntry(this, data)
@@ -11,6 +11,6 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.expressions.impl.FirAbstractAnnotatedElement
abstract class FirAbstractAnnotatedDeclaration(
session: FirSession,
final override val session: FirSession,
psi: PsiElement?
) : FirAbstractAnnotatedElement(session, psi), FirDeclaration
) : FirAbstractAnnotatedElement(psi), FirDeclaration
@@ -32,7 +32,6 @@ abstract class FirAbstractMemberDeclaration(
isActual: Boolean
) : this(session, psi, name) {
this.status = FirDeclarationStatusImpl(
session,
visibility,
modality
).apply {
@@ -15,10 +15,10 @@ import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirAnonymousInitializerImpl(
session: FirSession,
override val session: FirSession,
psi: PsiElement?,
override var body: FirBlock?
) : FirAnonymousInitializer, FirAbstractElement(session, psi) {
) : FirAnonymousInitializer, FirAbstractElement(psi) {
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
body = body?.transformSingle(transformer, data)
return this
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.declarations.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirAnonymousObject
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.transformInplace
@@ -15,10 +14,7 @@ import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
import org.jetbrains.kotlin.fir.visitors.FirVisitor
class FirAnonymousObjectImpl(
session: FirSession,
psi: PsiElement?
) : FirAnonymousObject(session, psi), FirModifiableClass {
class FirAnonymousObjectImpl(psi: PsiElement?) : FirAnonymousObject(psi), FirModifiableClass {
override val superTypeRefs = mutableListOf<FirTypeRef>()
override val declarations = mutableListOf<FirDeclaration>()
@@ -10,7 +10,6 @@ import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirConstructor
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
@@ -8,15 +8,13 @@ package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.fir.FirAbstractElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl.Modifier.*
open class FirDeclarationStatusImpl(
session: FirSession,
override val visibility: Visibility,
override val modality: Modality?
) : FirAbstractElement(session, null), FirDeclarationStatus {
) : FirAbstractElement(null), FirDeclarationStatus {
protected var flags: Int = 0
private operator fun get(modifier: Modifier): Boolean = (flags and modifier.mask) != 0
@@ -138,6 +136,6 @@ open class FirDeclarationStatusImpl(
}
fun resolved(visibility: Visibility, modality: Modality): FirDeclarationStatus {
return FirResolvedDeclarationStatusImpl(session, visibility, modality, flags)
return FirResolvedDeclarationStatusImpl(visibility, modality, flags)
}
}
@@ -14,7 +14,6 @@ import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.symbols.CallableId
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
import org.jetbrains.kotlin.fir.transformInplace
import org.jetbrains.kotlin.fir.transformSingle
@@ -25,14 +24,12 @@ import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
abstract class FirDefaultPropertyAccessor(
session: FirSession,
final override val session: FirSession,
psi: PsiElement?,
final override val isGetter: Boolean,
visibility: Visibility
) : FirAbstractElement(session, psi), FirPropertyAccessor {
override var status = FirDeclarationStatusImpl(
session, visibility, Modality.FINAL
)
) : FirAbstractElement(psi), FirPropertyAccessor {
override var status = FirDeclarationStatusImpl(visibility, Modality.FINAL)
final override val body: FirBlock? =
null
@@ -81,7 +78,7 @@ class FirDefaultPropertySetter(
)
)
override var returnTypeRef: FirTypeRef = FirImplicitUnitTypeRef(session, psi)
override var returnTypeRef: FirTypeRef = FirImplicitUnitTypeRef(psi)
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
valueParameters.transformInplace(transformer, data)
@@ -32,7 +32,7 @@ class FirEnumEntryImpl(
symbol.bind(this)
}
override var status = FirDeclarationStatusImpl(session, Visibilities.UNKNOWN, Modality.FINAL)
override var status = FirDeclarationStatusImpl(Visibilities.UNKNOWN, Modality.FINAL)
override val classKind: ClassKind
get() = ClassKind.ENUM_ENTRY
@@ -46,7 +46,7 @@ class FirEnumEntryImpl(
override val companionObject: FirRegularClass?
get() = null
override var typeRef: FirTypeRef = FirImplicitEnumTypeRef(session, null)
override var typeRef: FirTypeRef = FirImplicitEnumTypeRef(null)
override val arguments = mutableListOf<FirExpression>()
@@ -16,10 +16,10 @@ import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.visitors.FirVisitor
class FirErrorFunction(
session: FirSession,
override val session: FirSession,
psi: PsiElement?,
override val reason: String
) : FirAbstractElement(session, psi), FirErrorDeclaration, FirFunction {
) : FirAbstractElement(psi), FirErrorDeclaration, FirFunction {
override val annotations: List<FirAnnotationCall>
get() = emptyList()
@@ -7,22 +7,20 @@ package org.jetbrains.kotlin.fir.declarations.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirAbstractElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.*
import org.jetbrains.kotlin.fir.expressions.impl.FirEmptyExpressionBlock
import org.jetbrains.kotlin.fir.expressions.impl.FirErrorExpressionImpl
import org.jetbrains.kotlin.fir.visitors.FirVisitor
class FirErrorLoop(
session: FirSession,
psi: PsiElement?,
override val reason: String
) : FirAbstractElement(session, psi), FirErrorStatement, FirLoop {
) : FirAbstractElement(psi), FirErrorStatement, FirLoop {
override val annotations: List<FirAnnotationCall> = listOf()
override val condition: FirExpression = FirErrorExpressionImpl(session, psi, reason)
override val condition: FirExpression = FirErrorExpressionImpl(psi, reason)
override val block: FirBlock = FirEmptyExpressionBlock(session)
override val block: FirBlock = FirEmptyExpressionBlock()
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R {
return super<FirErrorStatement>.accept(visitor, data)
@@ -7,15 +7,13 @@ package org.jetbrains.kotlin.fir.declarations.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirAbstractElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirImport
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
class FirImportImpl(
session: FirSession,
psi: PsiElement?,
override val importedFqName: FqName?,
override val isAllUnder: Boolean,
override val aliasName: Name?
) : FirImport, FirAbstractElement(session, psi)
) : FirImport, FirAbstractElement(psi)
@@ -22,9 +22,7 @@ class FirPropertyAccessorImpl(
visibility: Visibility,
override var returnTypeRef: FirTypeRef
) : FirAbstractFunction(session, psi), FirPropertyAccessor {
override var status = FirDeclarationStatusImpl(
session, visibility, Modality.FINAL
)
override var status = FirDeclarationStatusImpl(visibility, Modality.FINAL)
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
returnTypeRef = returnTypeRef.transformSingle(transformer, data)
@@ -5,24 +5,20 @@
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.FirSession
import org.jetbrains.kotlin.fir.declarations.FirResolvedDeclarationStatus
class FirResolvedDeclarationStatusImpl(
session: FirSession,
visibility: Visibility,
modality: Modality
) : FirDeclarationStatusImpl(session, visibility, modality), FirResolvedDeclarationStatus {
) : FirDeclarationStatusImpl(visibility, modality), FirResolvedDeclarationStatus {
internal constructor(
session: FirSession,
visibility: Visibility,
modality: Modality,
flags: Int
) : this(session, visibility, modality) {
) : this(visibility, modality) {
this.flags = flags
}
@@ -6,18 +6,16 @@
package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.fir.FirAbstractElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirImport
import org.jetbrains.kotlin.fir.declarations.FirResolvedImport
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
class FirResolvedImportImpl(
session: FirSession,
val delegate: FirImport,
override val packageFqName: FqName,
override val relativeClassName: FqName?
) : FirAbstractElement(session, delegate.psi), FirResolvedImport, FirImport {
) : FirAbstractElement(delegate.psi), FirResolvedImport, FirImport {
override val aliasName: Name?
get() = delegate.aliasName
@@ -16,10 +16,7 @@ import org.jetbrains.kotlin.fir.types.*
import org.jetbrains.kotlin.fir.visitors.FirVisitor
import org.jetbrains.kotlin.name.FqName
abstract class FirAnnotationCall(
session: FirSession,
psi: PsiElement?
) : FirCallWithArgumentList(session, psi) {
abstract class FirAnnotationCall(psi: PsiElement?) : FirCallWithArgumentList(psi) {
abstract val annotationTypeRef: FirTypeRef
// May be should be not-null (with correct default target)
@@ -6,14 +6,10 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.impl.FirUnknownTypeCallWithArgumentList
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirArrayOfCall(
session: FirSession,
psi: PsiElement?
) : FirUnknownTypeCallWithArgumentList(session, psi) {
abstract class FirArrayOfCall(psi: PsiElement?) : FirUnknownTypeCallWithArgumentList(psi) {
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitArrayOfCall(this, data)
}
@@ -6,14 +6,12 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.VisitedSupertype
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirArraySetCall(
session: FirSession,
psi: PsiElement?
) : @VisitedSupertype FirCall(session, psi), FirAssignment {
) : @VisitedSupertype FirCall(psi), FirAssignment {
// NB: arguments of this thing are indexes AND rvalue
abstract val indexes: List<FirExpression>
@@ -6,14 +6,10 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.impl.FirUnknownTypeExpression
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirBlock(
session: FirSession,
psi: PsiElement?
) : FirUnknownTypeExpression(session, psi) {
abstract class FirBlock(psi: PsiElement?) : FirUnknownTypeExpression(psi) {
abstract val statements: List<FirStatement>
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
@@ -6,14 +6,10 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.impl.FirLoopJump
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirBreakExpression(
session: FirSession,
psi: PsiElement?
) : FirLoopJump(session, psi) {
abstract class FirBreakExpression(psi: PsiElement?) : FirLoopJump(psi) {
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitBreakExpression(this, data)
}
@@ -7,15 +7,11 @@ package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.BaseTransformedType
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.visitors.FirTransformer
import org.jetbrains.kotlin.fir.visitors.FirVisitor
@BaseTransformedType
abstract class FirCall(
session: FirSession,
psi: PsiElement?
) : FirExpression(session, psi) {
abstract class FirCall(psi: PsiElement?) : FirExpression(psi) {
abstract val arguments: List<FirExpression>
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
@@ -6,13 +6,9 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirCallableReferenceAccess(
session: FirSession,
psi: PsiElement?
) : FirQualifiedAccessExpression(session, psi) {
abstract class FirCallableReferenceAccess(psi: PsiElement?) : FirQualifiedAccessExpression(psi) {
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitCallableReferenceAccess(this, data)
}
@@ -6,15 +6,11 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.impl.FirUnknownTypeExpression
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirClassReferenceExpression(
session: FirSession,
psi: PsiElement?
) : FirUnknownTypeExpression(session, psi) {
abstract class FirClassReferenceExpression(psi: PsiElement?) : FirUnknownTypeExpression(psi) {
abstract val classTypeRef: FirTypeRef
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
@@ -6,13 +6,9 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirComponentCall(
session: FirSession,
psi: PsiElement?
) : FirFunctionCall(session, psi) {
abstract class FirComponentCall(psi: PsiElement?) : FirFunctionCall(psi) {
// Starting from 1, not from 0
abstract val componentIndex: Int
@@ -6,15 +6,11 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.impl.FirUnknownTypeExpression
import org.jetbrains.kotlin.fir.visitors.FirVisitor
import org.jetbrains.kotlin.ir.expressions.IrConstKind
abstract class FirConstExpression<T>(
session: FirSession,
psi: PsiElement?
) : FirUnknownTypeExpression(session, psi) {
abstract class FirConstExpression<T>(psi: PsiElement?) : FirUnknownTypeExpression(psi) {
abstract val kind: IrConstKind<T>
abstract val value: T
@@ -6,14 +6,10 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.impl.FirLoopJump
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirContinueExpression(
session: FirSession,
psi: PsiElement?
) : FirLoopJump(session, psi) {
abstract class FirContinueExpression(psi: PsiElement?) : FirLoopJump(psi) {
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitContinueExpression(this, data)
}
@@ -6,16 +6,14 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.VisitedSupertype
import org.jetbrains.kotlin.fir.expressions.impl.FirCallWithArgumentList
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirDelegatedConstructorCall(
session: FirSession,
psi: PsiElement?
) : @VisitedSupertype FirCallWithArgumentList(session, psi), FirQualifiedAccess {
) : @VisitedSupertype FirCallWithArgumentList(psi), FirQualifiedAccess {
// Do we need 'constructedType: FirType' here?
abstract val constructedTypeRef: FirTypeRef
@@ -6,14 +6,10 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.impl.FirUnknownTypeExpression
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirErrorExpression(
session: FirSession,
psi: PsiElement?
) : FirUnknownTypeExpression(session, psi) {
abstract class FirErrorExpression(psi: PsiElement?) : FirUnknownTypeExpression(psi) {
abstract val reason: String
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R {
@@ -7,16 +7,14 @@ package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirResolvedCallableReference
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.impl.FirAnnotatedStatement
import org.jetbrains.kotlin.fir.symbols.ConeCallableSymbol
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirExpression(
session: FirSession,
psi: PsiElement?
) : FirAnnotatedStatement(session, psi) {
) : FirAnnotatedStatement(psi) {
abstract val typeRef: FirTypeRef
abstract fun replaceTypeRef(newTypeRef: FirTypeRef)
@@ -14,9 +14,8 @@ import org.jetbrains.kotlin.fir.types.FirTypeProjectionContainer
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirFunctionCall(
session: FirSession,
psi: PsiElement?
) : @VisitedSupertype FirUnknownTypeCallWithArgumentList(session, psi), FirQualifiedAccess, FirTypeProjectionContainer {
) : @VisitedSupertype FirUnknownTypeCallWithArgumentList(psi), FirQualifiedAccess, FirTypeProjectionContainer {
abstract override val calleeReference: FirNamedReference
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
@@ -6,14 +6,10 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.impl.FirUnknownTypeCallWithArgumentList
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirGetClassCall(
session: FirSession,
psi: PsiElement?
) : FirUnknownTypeCallWithArgumentList(session, psi) {
abstract class FirGetClassCall(psi: PsiElement?) : FirUnknownTypeCallWithArgumentList(psi) {
val argument: FirExpression get() = arguments.first()
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
@@ -6,15 +6,11 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.FirTarget
import org.jetbrains.kotlin.fir.FirTargetElement
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirJump<E : FirTargetElement>(
session: FirSession,
psi: PsiElement?
) : FirExpression(session, psi) {
abstract class FirJump<E : FirTargetElement>(psi: PsiElement?) : FirExpression(psi) {
abstract val target: FirTarget<E>
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
@@ -6,13 +6,9 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirLambdaArgumentExpression(
session: FirSession,
psi: PsiElement?
) : FirWrappedArgumentExpression(session, psi) {
abstract class FirLambdaArgumentExpression(psi: PsiElement?) : FirWrappedArgumentExpression(psi) {
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitLambdaArgumentExpression(this, data)
}
@@ -6,14 +6,12 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.visitors.FirVisitor
import org.jetbrains.kotlin.name.Name
abstract class FirNamedArgumentExpression(
session: FirSession,
psi: PsiElement?
) : FirWrappedArgumentExpression(session, psi) {
) : FirWrappedArgumentExpression(psi) {
abstract val name: Name
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
@@ -6,14 +6,10 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.impl.FirCallWithArgumentList
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirOperatorCall(
session: FirSession,
psi: PsiElement?
) : FirCallWithArgumentList(session, psi) {
abstract class FirOperatorCall(psi: PsiElement?) : FirCallWithArgumentList(psi) {
abstract val operation: FirOperation
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
@@ -6,15 +6,13 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.VisitedSupertype
import org.jetbrains.kotlin.fir.expressions.impl.FirUnknownTypeExpression
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirQualifiedAccessExpression(
session: FirSession,
psi: PsiElement?
) : FirQualifiedAccess, @VisitedSupertype FirUnknownTypeExpression(session, psi) {
) : FirQualifiedAccess, @VisitedSupertype FirUnknownTypeExpression(psi) {
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitQualifiedAccessExpression(this, data)
@@ -6,16 +6,12 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.impl.FirUnknownTypeExpression
import org.jetbrains.kotlin.fir.visitors.FirVisitor
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName
abstract class FirResolvedQualifier(
session: FirSession,
psi: PsiElement?
) : FirUnknownTypeExpression(session, psi) {
abstract class FirResolvedQualifier(psi: PsiElement?) : FirUnknownTypeExpression(psi) {
abstract val packageFqName: FqName
abstract val relativeClassFqName: FqName?
@@ -6,14 +6,10 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirFunction
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirReturnExpression(
session: FirSession,
psi: PsiElement?
) : FirJump<FirFunction>(session, psi) {
abstract class FirReturnExpression(psi: PsiElement?) : FirJump<FirFunction>(psi) {
abstract val result: FirExpression
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
@@ -6,13 +6,9 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirSpreadArgumentExpression(
session: FirSession,
psi: PsiElement?
) : FirWrappedArgumentExpression(session, psi) {
abstract class FirSpreadArgumentExpression(psi: PsiElement?) : FirWrappedArgumentExpression(psi) {
override val isSpread: Boolean
get() = true
@@ -6,14 +6,10 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.impl.FirCallWithArgumentList
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirStringConcatenationCall(
session: FirSession,
psi: PsiElement?
) : FirCallWithArgumentList(session, psi) {
abstract class FirStringConcatenationCall(psi: PsiElement?) : FirCallWithArgumentList(psi) {
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitStringConcatenationCall(this, data)
}
@@ -6,13 +6,9 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirThrowExpression(
session: FirSession,
psi: PsiElement?
) : FirExpression(session, psi) {
abstract class FirThrowExpression(psi: PsiElement?) : FirExpression(psi) {
abstract val exception: FirExpression
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
@@ -6,14 +6,12 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.impl.FirUnknownTypeExpression
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirTryExpression(
session: FirSession,
psi: PsiElement?
) : FirUnknownTypeExpression(session, psi) {
) : FirUnknownTypeExpression(psi) {
abstract val tryBlock: FirBlock
abstract val catches: List<FirCatch>
@@ -6,17 +6,15 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.impl.FirOperationBasedCall
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirVisitor
// is/!is/as/as?
abstract class FirTypeOperatorCall(
session: FirSession,
psi: PsiElement?,
operation: FirOperation
) : FirOperationBasedCall(session, psi, operation) {
) : FirOperationBasedCall(psi, operation) {
val argument: FirExpression get() = arguments.first()
abstract val conversionTypeRef: FirTypeRef
@@ -6,14 +6,10 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.impl.FirUnknownTypeCallWithArgumentList
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirUncheckedNotNullCast(
session: FirSession,
psi: PsiElement?
) : FirUnknownTypeCallWithArgumentList(session, psi) {
abstract class FirUncheckedNotNullCast(psi: PsiElement?) : FirUnknownTypeCallWithArgumentList(psi) {
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitUncheckedNotNullCast(this, data)
val expression: FirExpression get() = arguments[0]
@@ -6,14 +6,10 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.impl.FirUnknownTypeExpression
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirWhenExpression(
session: FirSession,
psi: PsiElement?
) : FirUnknownTypeExpression(session, psi) {
abstract class FirWhenExpression(psi: PsiElement?) : FirUnknownTypeExpression(psi) {
abstract val subject: FirExpression?
// when (val subjectVariable = subject()) { ... }
@@ -6,15 +6,11 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.FirWhenSubject
import org.jetbrains.kotlin.fir.expressions.impl.FirUnknownTypeExpression
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirWhenSubjectExpression(
session: FirSession,
psi: PsiElement?
) : FirUnknownTypeExpression(session, psi) {
abstract class FirWhenSubjectExpression(psi: PsiElement?) : FirUnknownTypeExpression(psi) {
abstract val whenSubject: FirWhenSubject
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
@@ -6,14 +6,10 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirWrappedArgumentExpression(
session: FirSession,
psi: PsiElement?
) : FirWrappedExpression(session, psi) {
abstract class FirWrappedArgumentExpression(psi: PsiElement?) : FirWrappedExpression(psi) {
open val isSpread: Boolean
get() = false
@@ -6,14 +6,10 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirWrappedDelegateExpression(
session: FirSession,
psi: PsiElement?
) : FirWrappedExpression(session, psi) {
abstract class FirWrappedDelegateExpression(psi: PsiElement?) : FirWrappedExpression(psi) {
abstract val delegateProvider: FirExpression
override val typeRef: FirTypeRef
@@ -6,14 +6,10 @@
package org.jetbrains.kotlin.fir.expressions
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirVisitor
abstract class FirWrappedExpression(
session: FirSession,
psi: PsiElement?
) : FirExpression(session, psi) {
abstract class FirWrappedExpression(psi: PsiElement?) : FirExpression(psi) {
abstract val expression: FirExpression
override fun replaceTypeRef(newTypeRef: FirTypeRef) {
@@ -8,16 +8,12 @@ package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirAbstractElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirAnnotationContainer
import org.jetbrains.kotlin.fir.transformInplace
import org.jetbrains.kotlin.fir.visitors.FirTransformer
abstract class FirAbstractAnnotatedElement(
session: FirSession,
psi: PsiElement?
) : FirAbstractElement(session, psi), FirAnnotationContainer {
abstract class FirAbstractAnnotatedElement(psi: PsiElement?) : FirAbstractElement(psi), FirAnnotationContainer {
final override val annotations = mutableListOf<FirAnnotationCall>()
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
@@ -8,7 +8,6 @@ package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirReference
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirAssignment
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.expressions.FirOperation
@@ -17,12 +16,11 @@ import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.visitors.FirTransformer
abstract class FirAbstractAssignment(
session: FirSession,
psi: PsiElement?,
final override var rValue: FirExpression,
final override val operation: FirOperation,
safe: Boolean = false
) : FirAbstractQualifiedAccess(session, psi, safe), FirVariableAssignment {
) : FirAbstractQualifiedAccess(psi, safe), FirVariableAssignment {
override var lValue: FirReference
get() = calleeReference
@@ -13,10 +13,9 @@ import org.jetbrains.kotlin.fir.expressions.FirLoop
import org.jetbrains.kotlin.fir.visitors.FirTransformer
abstract class FirAbstractLoop(
session: FirSession,
psi: PsiElement?,
override var condition: FirExpression
) : FirAnnotatedStatement(session, psi), FirLoop {
) : FirAnnotatedStatement(psi), FirLoop {
override lateinit var block: FirBlock
override var label: FirLabel? = null
@@ -12,10 +12,9 @@ import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccess
import org.jetbrains.kotlin.fir.visitors.FirTransformer
abstract class FirAbstractQualifiedAccess(
session: FirSession,
psi: PsiElement?,
final override var safe: Boolean = false
) : FirAnnotatedStatement(session, psi), FirModifiableQualifiedAccess<FirReference> {
) : FirAnnotatedStatement(psi), FirModifiableQualifiedAccess<FirReference> {
final override lateinit var calleeReference: FirReference
final override var explicitReceiver: FirExpression? = null
@@ -6,10 +6,6 @@
package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirStatement
abstract class FirAnnotatedStatement(
session: FirSession,
psi: PsiElement?
) : FirAbstractAnnotatedElement(session, psi), FirStatement
abstract class FirAnnotatedStatement(psi: PsiElement?) : FirAbstractAnnotatedElement(psi), FirStatement
@@ -8,18 +8,16 @@ package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirAnnotationCallImpl(
session: FirSession,
psi: PsiElement?,
override val useSiteTarget: AnnotationUseSiteTarget?,
override var annotationTypeRef: FirTypeRef
) : FirAnnotationCall(session, psi) {
) : FirAnnotationCall(psi) {
override val typeRef: FirTypeRef
get() = annotationTypeRef
@@ -6,10 +6,6 @@
package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirArrayOfCall
class FirArrayOfCallImpl(
session: FirSession,
psi: PsiElement?
) : FirArrayOfCall(session, psi)
class FirArrayOfCallImpl(psi: PsiElement?) : FirArrayOfCall(psi)
@@ -13,11 +13,10 @@ import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirArraySetCallImpl(
session: FirSession,
psi: PsiElement?,
override var rValue: FirExpression,
override val operation: FirOperation
) : FirArraySetCall(session, psi), FirModifiableQualifiedAccess<FirReference> {
) : FirArraySetCall(psi), FirModifiableQualifiedAccess<FirReference> {
override lateinit var calleeReference: FirReference
override var lValue: FirReference
@@ -30,7 +29,7 @@ class FirArraySetCallImpl(
get() = null
set(_) {}
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(session, null)
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
override fun replaceTypeRef(newTypeRef: FirTypeRef) {
typeRef = newTypeRef
@@ -7,16 +7,12 @@ package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.expressions.FirStatement
import org.jetbrains.kotlin.fir.transformInplace
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirBlockImpl(
session: FirSession,
psi: PsiElement?
) : FirBlock(session, psi) {
class FirBlockImpl(psi: PsiElement?) : FirBlock(psi) {
override val statements = mutableListOf<FirStatement>()
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
@@ -6,10 +6,6 @@
package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirBreakExpression
class FirBreakExpressionImpl(
session: FirSession,
psi: PsiElement?
) : FirBreakExpression(session, psi)
class FirBreakExpressionImpl(psi: PsiElement?) : FirBreakExpression(psi)
@@ -7,16 +7,12 @@ package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.transformInplace
import org.jetbrains.kotlin.fir.visitors.FirTransformer
abstract class FirCallWithArgumentList(
session: FirSession,
psi: PsiElement?
) : FirCall(session, psi) {
abstract class FirCallWithArgumentList(psi: PsiElement?) : FirCall(psi) {
override val arguments = mutableListOf<FirExpression>()
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
@@ -8,16 +8,14 @@ package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirReference
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirCallableReferenceAccess
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirCallableReferenceAccessImpl(
session: FirSession,
psi: PsiElement?
) : FirCallableReferenceAccess(session, psi), FirModifiableQualifiedAccess<FirReference> {
) : FirCallableReferenceAccess(psi), FirModifiableQualifiedAccess<FirReference> {
override lateinit var calleeReference: FirReference
override var explicitReceiver: FirExpression? = null
@@ -8,7 +8,6 @@ package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirAbstractElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.expressions.FirCatch
@@ -16,11 +15,10 @@ import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirCatchImpl(
session: FirSession,
psi: PsiElement?,
override var parameter: FirValueParameter,
override var block: FirBlock
) : FirAbstractElement(session, psi), FirCatch {
) : FirAbstractElement(psi), FirCatch {
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
parameter = parameter.transformSingle(transformer, data)
block = block.transformSingle(transformer, data)
@@ -7,17 +7,12 @@ package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirClassReferenceExpression
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirClassReferenceExpressionImpl(
session: FirSession,
psi: PsiElement?,
override var classTypeRef: FirTypeRef
) : FirClassReferenceExpression(session, psi) {
class FirClassReferenceExpressionImpl(psi: PsiElement?, override var classTypeRef: FirTypeRef) : FirClassReferenceExpression(psi) {
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
classTypeRef = classTypeRef.transformSingle(transformer, data)
return super.transformChildren(transformer, data)
@@ -8,7 +8,6 @@ package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirNamedReference
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirComponentCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccess
@@ -19,18 +18,17 @@ import org.jetbrains.kotlin.fir.visitors.FirTransformer
import org.jetbrains.kotlin.name.Name
class FirComponentCallImpl(
session: FirSession,
psi: PsiElement?,
override val componentIndex: Int,
override var explicitReceiver: FirExpression
) : FirComponentCall(session, psi) {
) : FirComponentCall(psi) {
override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirQualifiedAccess {
explicitReceiver = explicitReceiver.transformSingle(transformer, data)
return this
}
override var calleeReference: FirNamedReference =
FirSimpleNamedReference(session, psi, Name.identifier("component$componentIndex"))
FirSimpleNamedReference(psi, Name.identifier("component$componentIndex"))
override val typeArguments: List<FirTypeProjection>
get() = emptyList()
@@ -6,16 +6,14 @@
package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirConstExpression
import org.jetbrains.kotlin.ir.expressions.IrConstKind
class FirConstExpressionImpl<T>(
session: FirSession,
psi: PsiElement?,
override val kind: IrConstKind<T>,
override val value: T
) : FirConstExpression<T>(session, psi)
) : FirConstExpression<T>(psi)
fun <T> FirConstExpressionImpl(session: FirSession, psi: PsiElement?, kind: IrConstKind<T>, value: T?, errorReason: String) =
value?.let { FirConstExpressionImpl(session, psi, kind, it) } ?: FirErrorExpressionImpl(session, psi, errorReason)
fun <T> FirConstExpressionImpl(psi: PsiElement?, kind: IrConstKind<T>, value: T?, errorReason: String) =
value?.let { FirConstExpressionImpl(psi, kind, it) } ?: FirErrorExpressionImpl(psi, errorReason)
@@ -6,10 +6,6 @@
package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirContinueExpression
class FirContinueExpressionImpl(
session: FirSession,
psi: PsiElement?
) : FirContinueExpression(session, psi)
class FirContinueExpressionImpl(psi: PsiElement?) : FirContinueExpression(psi)
@@ -8,7 +8,6 @@ package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirReference
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccess
import org.jetbrains.kotlin.fir.references.FirExplicitSuperReference
@@ -19,13 +18,12 @@ import org.jetbrains.kotlin.fir.types.impl.FirImplicitUnitTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirDelegatedConstructorCallImpl(
session: FirSession,
psi: PsiElement?,
override var constructedTypeRef: FirTypeRef,
override val isThis: Boolean
) : FirDelegatedConstructorCall(session, psi) {
) : FirDelegatedConstructorCall(psi) {
override var calleeReference: FirReference =
if (isThis) FirExplicitThisReference(session, psi, null) else FirExplicitSuperReference(session, psi, constructedTypeRef)
if (isThis) FirExplicitThisReference(psi, null) else FirExplicitSuperReference(psi, constructedTypeRef)
override fun <D> transformCalleeReference(transformer: FirTransformer<D>, data: D): FirQualifiedAccess {
calleeReference = calleeReference.transformSingle(transformer, data)
@@ -44,7 +42,7 @@ class FirDelegatedConstructorCallImpl(
return this
}
override var typeRef: FirTypeRef = FirImplicitUnitTypeRef(session, psi)
override var typeRef: FirTypeRef = FirImplicitUnitTypeRef(psi)
override fun replaceTypeRef(newTypeRef: FirTypeRef) {}
}
@@ -6,12 +6,7 @@
package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirDoWhileLoop
import org.jetbrains.kotlin.fir.expressions.FirExpression
class FirDoWhileLoopImpl(
session: FirSession,
psi: PsiElement?,
condition: FirExpression
) : FirAbstractLoop(session, psi, condition), FirDoWhileLoop
class FirDoWhileLoopImpl(psi: PsiElement?, condition: FirExpression) : FirAbstractLoop(psi, condition), FirDoWhileLoop
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.types.FirTypeRef
@@ -15,12 +14,9 @@ import org.jetbrains.kotlin.fir.types.impl.FirImplicitUnitTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
// Representation of "dummy" condition at else branch
class FirElseIfTrueCondition(
session: FirSession,
psi: PsiElement?
) : FirExpression(session, psi) {
class FirElseIfTrueCondition(psi: PsiElement?) : FirExpression(psi) {
override var typeRef: FirTypeRef = FirImplicitUnitTypeRef(session, psi)
override var typeRef: FirTypeRef = FirImplicitUnitTypeRef(psi)
override fun replaceTypeRef(newTypeRef: FirTypeRef) {}
@@ -5,12 +5,9 @@
package org.jetbrains.kotlin.fir.expressions.impl
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.expressions.FirStatement
class FirEmptyExpressionBlock(
session: FirSession
) : FirBlock(session, null) {
class FirEmptyExpressionBlock : FirBlock(null) {
override val statements: List<FirStatement> = listOf()
}
@@ -10,7 +10,6 @@ import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirErrorExpression
class FirErrorExpressionImpl(
session: FirSession,
psi: PsiElement?,
override val reason: String
) : FirErrorExpression(session, psi)
) : FirErrorExpression(psi)
@@ -6,9 +6,5 @@
package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
class FirExpressionStub(
session: FirSession,
psi: PsiElement?
) : FirUnknownTypeExpression(session, psi)
class FirExpressionStub(psi: PsiElement?) : FirUnknownTypeExpression(psi)
@@ -14,10 +14,9 @@ import org.jetbrains.kotlin.fir.types.FirTypeProjection
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirFunctionCallImpl(
session: FirSession,
psi: PsiElement?,
override var safe: Boolean = false
) : FirFunctionCall(session, psi), FirModifiableQualifiedAccess<FirNamedReference> {
) : FirFunctionCall(psi), FirModifiableQualifiedAccess<FirNamedReference> {
override val typeArguments = mutableListOf<FirTypeProjection>()
override lateinit var calleeReference: FirNamedReference
@@ -6,10 +6,6 @@
package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirGetClassCall
class FirGetClassCallImpl(
session: FirSession,
psi: PsiElement?
) : FirGetClassCall(session, psi)
class FirGetClassCallImpl(psi: PsiElement?) : FirGetClassCall(psi)
@@ -7,17 +7,15 @@ package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.expressions.FirLambdaArgumentExpression
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirLambdaArgumentExpressionImpl(
session: FirSession,
psi: PsiElement?,
override var expression: FirExpression
) : FirLambdaArgumentExpression(session, psi) {
) : FirLambdaArgumentExpression(psi) {
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
expression = expression.transformSingle(transformer, data)
return super.transformChildren(transformer, data)
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.FirTarget
import org.jetbrains.kotlin.fir.expressions.FirJump
import org.jetbrains.kotlin.fir.expressions.FirLoop
@@ -16,13 +15,10 @@ import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.types.impl.FirImplicitNothingTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
abstract class FirLoopJump(
session: FirSession,
psi: PsiElement?
) : FirJump<FirLoop>(session, psi) {
abstract class FirLoopJump(psi: PsiElement?) : FirJump<FirLoop>(psi) {
override lateinit var target: FirTarget<FirLoop>
override var typeRef: FirTypeRef = FirImplicitNothingTypeRef(session, psi)
override var typeRef: FirTypeRef = FirImplicitNothingTypeRef(psi)
override fun replaceTypeRef(newTypeRef: FirTypeRef) {}
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.expressions.FirNamedArgumentExpression
import org.jetbrains.kotlin.fir.transformSingle
@@ -15,12 +14,11 @@ import org.jetbrains.kotlin.fir.visitors.FirTransformer
import org.jetbrains.kotlin.name.Name
class FirNamedArgumentExpressionImpl(
session: FirSession,
psi: PsiElement?,
override val name: Name,
override val isSpread: Boolean,
override var expression: FirExpression
) : FirNamedArgumentExpression(session, psi) {
) : FirNamedArgumentExpression(psi) {
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
expression = expression.transformSingle(transformer, data)
return super.transformChildren(transformer, data)
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirOperation
import org.jetbrains.kotlin.fir.expressions.FirOperatorCall
import org.jetbrains.kotlin.fir.transformSingle
@@ -17,14 +16,13 @@ import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl
import org.jetbrains.kotlin.fir.visitors.FirTransformer
abstract class FirOperationBasedCall(
session: FirSession,
psi: PsiElement?,
final override val operation: FirOperation
) : FirOperatorCall(session, psi) {
) : FirOperatorCall(psi) {
override var typeRef: FirTypeRef = if (operation in FirOperation.BOOLEANS) {
FirImplicitBooleanTypeRef(session, null)
FirImplicitBooleanTypeRef(null)
} else {
FirImplicitTypeRefImpl(session, null)
FirImplicitTypeRefImpl(null)
}
override fun replaceTypeRef(newTypeRef: FirTypeRef) {
@@ -6,11 +6,9 @@
package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirOperation
class FirOperatorCallImpl(
session: FirSession,
psi: PsiElement?,
operation: FirOperation
) : FirOperationBasedCall(session, psi, operation)
) : FirOperationBasedCall(psi, operation)
@@ -8,17 +8,15 @@ package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirReference
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirQualifiedAccessExpressionImpl(
session: FirSession,
psi: PsiElement?,
override var safe: Boolean = false
) : FirModifiableQualifiedAccess<FirReference>, FirQualifiedAccessExpression(session, psi) {
) : FirModifiableQualifiedAccess<FirReference>, FirQualifiedAccessExpression(psi) {
override lateinit var calleeReference: FirReference
override var explicitReceiver: FirExpression? = null
@@ -6,21 +6,14 @@
package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirResolvedQualifier
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName
class FirResolvedQualifierImpl(
session: FirSession,
psi: PsiElement?,
override val packageFqName: FqName,
override val relativeClassFqName: FqName?
) : FirResolvedQualifier(session, psi) {
constructor(session: FirSession, psi: PsiElement?, classId: ClassId) : this(
session,
psi,
classId.packageFqName,
classId.relativeClassName
)
) : FirResolvedQualifier(psi) {
constructor(psi: PsiElement?, classId: ClassId) : this(psi, classId.packageFqName, classId.relativeClassName)
}
@@ -15,10 +15,9 @@ import org.jetbrains.kotlin.fir.types.impl.FirImplicitNothingTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirReturnExpressionImpl(
session: FirSession,
psi: PsiElement?,
override var result: FirExpression
) : FirReturnExpression(session, psi) {
) : FirReturnExpression(psi) {
override lateinit var target: FirTarget<FirFunction>
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
@@ -27,7 +26,7 @@ class FirReturnExpressionImpl(
return super.transformChildren(transformer, data)
}
override var typeRef: FirTypeRef = FirImplicitNothingTypeRef(session, psi)
override var typeRef: FirTypeRef = FirImplicitNothingTypeRef(psi)
override fun replaceTypeRef(newTypeRef: FirTypeRef) {}
}
@@ -6,16 +6,12 @@
package org.jetbrains.kotlin.fir.expressions.impl
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.expressions.FirStatement
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirSingleExpressionBlock(
session: FirSession,
private var statement: FirStatement
) : FirBlock(session, statement.psi) {
class FirSingleExpressionBlock(private var statement: FirStatement) : FirBlock(statement.psi) {
override val statements
get() = listOf(statement)
@@ -7,17 +7,15 @@ package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.expressions.FirSpreadArgumentExpression
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirSpreadArgumentExpressionImpl(
session: FirSession,
psi: PsiElement?,
override var expression: FirExpression
) : FirSpreadArgumentExpression(session, psi) {
) : FirSpreadArgumentExpression(psi) {
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
expression = expression.transformSingle(transformer, data)
return super.transformChildren(transformer, data)
@@ -7,20 +7,16 @@ package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirStringConcatenationCall
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.types.impl.FirImplicitStringTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirStringConcatenationCallImpl(
session: FirSession,
psi: PsiElement?
) : FirStringConcatenationCall(session, psi) {
class FirStringConcatenationCallImpl(psi: PsiElement?) : FirStringConcatenationCall(psi) {
override fun replaceTypeRef(newTypeRef: FirTypeRef) {}
override var typeRef: FirTypeRef = FirImplicitStringTypeRef(session, psi)
override var typeRef: FirTypeRef = FirImplicitStringTypeRef(psi)
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
typeRef = typeRef.transformSingle(transformer, data)
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.expressions.FirThrowExpression
import org.jetbrains.kotlin.fir.transformSingle
@@ -16,10 +15,9 @@ import org.jetbrains.kotlin.fir.types.impl.FirImplicitNothingTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirThrowExpressionImpl(
session: FirSession,
psi: PsiElement?,
override var exception: FirExpression
) : FirThrowExpression(session, psi) {
) : FirThrowExpression(psi) {
override fun replaceTypeRef(newTypeRef: FirTypeRef) {}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
@@ -28,5 +26,5 @@ class FirThrowExpressionImpl(
return super.transformChildren(transformer, data)
}
override var typeRef: FirTypeRef = FirImplicitNothingTypeRef(session, psi)
override var typeRef: FirTypeRef = FirImplicitNothingTypeRef(psi)
}
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.expressions.FirCatch
import org.jetbrains.kotlin.fir.expressions.FirTryExpression
@@ -16,11 +15,10 @@ import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirTryExpressionImpl(
session: FirSession,
psi: PsiElement?,
override var tryBlock: FirBlock,
override var finallyBlock: FirBlock?
) : FirTryExpression(session, psi) {
) : FirTryExpression(psi) {
override val catches = mutableListOf<FirCatch>()
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirOperation
import org.jetbrains.kotlin.fir.expressions.FirTypeOperatorCall
import org.jetbrains.kotlin.fir.transformSingle
@@ -15,11 +14,10 @@ import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirTypeOperatorCallImpl(
session: FirSession,
psi: PsiElement?,
operation: FirOperation,
override var conversionTypeRef: FirTypeRef
) : FirTypeOperatorCall(session, psi, operation) {
) : FirTypeOperatorCall(psi, operation) {
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
conversionTypeRef = conversionTypeRef.transformSingle(transformer, data)
return super.transformChildren(transformer, data)
@@ -6,15 +6,10 @@
package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.expressions.FirUncheckedNotNullCast
class FirUncheckedNotNullCastImpl(
session: FirSession,
psi: PsiElement?,
expression: FirExpression
) : FirUncheckedNotNullCast(session, psi) {
class FirUncheckedNotNullCastImpl(psi: PsiElement?, expression: FirExpression) : FirUncheckedNotNullCast(psi) {
init {
arguments += expression
}
@@ -7,20 +7,16 @@ package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.types.impl.FirImplicitUnitTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirUnitExpression(
session: FirSession,
psi: PsiElement?
) : FirExpression(session, psi) {
class FirUnitExpression(psi: PsiElement?) : FirExpression(psi) {
override fun replaceTypeRef(newTypeRef: FirTypeRef) {}
override var typeRef: FirTypeRef = FirImplicitUnitTypeRef(session, psi)
override var typeRef: FirTypeRef = FirImplicitUnitTypeRef(psi)
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
typeRef = typeRef.transformSingle(transformer, data)
@@ -7,17 +7,15 @@ package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl
import org.jetbrains.kotlin.fir.visitors.FirTransformer
abstract class FirUnknownTypeCallWithArgumentList(
session: FirSession,
psi: PsiElement?
) : FirCallWithArgumentList(session, psi) {
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(session, null)
) : FirCallWithArgumentList(psi) {
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
override fun replaceTypeRef(newTypeRef: FirTypeRef) {
typeRef = newTypeRef
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.types.FirTypeRef
@@ -15,10 +14,9 @@ import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl
import org.jetbrains.kotlin.fir.visitors.FirTransformer
abstract class FirUnknownTypeExpression(
session: FirSession,
psi: PsiElement?
) : FirExpression(session, psi) {
final override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(session, null)
) : FirExpression(psi) {
final override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
final override fun replaceTypeRef(newTypeRef: FirTypeRef) {
typeRef = newTypeRef
@@ -6,15 +6,13 @@
package org.jetbrains.kotlin.fir.expressions.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.expressions.FirOperation
import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment
class FirVariableAssignmentImpl(
session: FirSession,
psi: PsiElement?,
value: FirExpression,
operation: FirOperation,
safe: Boolean = false
) : FirAbstractAssignment(session, psi, value, operation, safe), FirVariableAssignment
) : FirAbstractAssignment(psi, value, operation, safe), FirVariableAssignment
@@ -16,11 +16,10 @@ import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirWhenBranchImpl(
session: FirSession,
psi: PsiElement?,
override var condition: FirExpression,
override var result: FirBlock
) : FirAbstractElement(session, psi), FirWhenBranch {
) : FirAbstractElement(psi), FirWhenBranch {
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
condition = condition.transformSingle(transformer, data)
result = result.transformSingle(transformer, data)
@@ -14,11 +14,10 @@ import org.jetbrains.kotlin.fir.expressions.FirWhenExpression
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirWhenExpressionImpl(
session: FirSession,
psiElement: PsiElement?,
override var subject: FirExpression? = null,
override var subjectVariable: FirVariable<*>? = null
) : FirWhenExpression(session, psiElement) {
) : FirWhenExpression(psiElement) {
override val branches = mutableListOf<FirWhenBranch>()
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {

Some files were not shown because too many files have changed in this diff Show More