FIR tree generator: merge fields from parents properly
This commit is contained in:
+1
-1
@@ -34,6 +34,7 @@ class FirIntegerOperatorCall @FirImplementationDetail constructor(
|
||||
argumentList: FirArgumentList,
|
||||
calleeReference: FirNamedReference,
|
||||
) : FirFunctionCallImpl(
|
||||
source,
|
||||
typeRef,
|
||||
annotations,
|
||||
typeArguments,
|
||||
@@ -42,7 +43,6 @@ class FirIntegerOperatorCall @FirImplementationDetail constructor(
|
||||
extensionReceiver,
|
||||
argumentList,
|
||||
calleeReference,
|
||||
source,
|
||||
)
|
||||
|
||||
@FirBuilderDsl
|
||||
|
||||
+4
-4
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
|
||||
*/
|
||||
|
||||
abstract class FirCallableReferenceAccess : FirQualifiedAccessExpression() {
|
||||
abstract override val source: FirSourceElement?
|
||||
abstract override val typeRef: FirTypeRef
|
||||
abstract override val annotations: List<FirAnnotationCall>
|
||||
abstract override val typeArguments: List<FirTypeProjection>
|
||||
@@ -27,10 +28,12 @@ abstract class FirCallableReferenceAccess : FirQualifiedAccessExpression() {
|
||||
abstract override val extensionReceiver: FirExpression
|
||||
abstract override val calleeReference: FirNamedReference
|
||||
abstract val hasQuestionMarkAtLHS: Boolean
|
||||
abstract override val source: FirSourceElement?
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitCallableReferenceAccess(this, data)
|
||||
|
||||
@FirImplementationDetail
|
||||
abstract override fun replaceSource(newSource: FirSourceElement?)
|
||||
|
||||
abstract override fun replaceTypeRef(newTypeRef: FirTypeRef)
|
||||
|
||||
abstract override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>)
|
||||
@@ -43,9 +46,6 @@ abstract class FirCallableReferenceAccess : FirQualifiedAccessExpression() {
|
||||
|
||||
abstract fun replaceHasQuestionMarkAtLHS(newHasQuestionMarkAtLHS: Boolean)
|
||||
|
||||
@FirImplementationDetail
|
||||
abstract override fun replaceSource(newSource: FirSourceElement?)
|
||||
|
||||
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirCallableReferenceAccess
|
||||
|
||||
abstract override fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirCallableReferenceAccess
|
||||
|
||||
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
|
||||
*/
|
||||
|
||||
abstract class FirComponentCall : FirFunctionCall() {
|
||||
abstract override val source: FirSourceElement?
|
||||
abstract override val typeRef: FirTypeRef
|
||||
abstract override val annotations: List<FirAnnotationCall>
|
||||
abstract override val typeArguments: List<FirTypeProjection>
|
||||
@@ -26,12 +27,14 @@ abstract class FirComponentCall : FirFunctionCall() {
|
||||
abstract override val extensionReceiver: FirExpression
|
||||
abstract override val argumentList: FirArgumentList
|
||||
abstract override val calleeReference: FirNamedReference
|
||||
abstract override val source: FirSourceElement?
|
||||
abstract override val explicitReceiver: FirExpression
|
||||
abstract val componentIndex: Int
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitComponentCall(this, data)
|
||||
|
||||
@FirImplementationDetail
|
||||
abstract override fun replaceSource(newSource: FirSourceElement?)
|
||||
|
||||
abstract override fun replaceTypeRef(newTypeRef: FirTypeRef)
|
||||
|
||||
abstract override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>)
|
||||
@@ -42,9 +45,6 @@ abstract class FirComponentCall : FirFunctionCall() {
|
||||
|
||||
abstract override fun replaceCalleeReference(newCalleeReference: FirReference)
|
||||
|
||||
@FirImplementationDetail
|
||||
abstract override fun replaceSource(newSource: FirSourceElement?)
|
||||
|
||||
abstract override fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?)
|
||||
|
||||
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirComponentCall
|
||||
|
||||
+4
-4
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
|
||||
*/
|
||||
|
||||
abstract class FirExpressionWithSmartcast : FirQualifiedAccessExpression() {
|
||||
abstract override val source: FirSourceElement?
|
||||
abstract override val typeRef: FirTypeRef
|
||||
abstract override val annotations: List<FirAnnotationCall>
|
||||
abstract override val calleeReference: FirReference
|
||||
@@ -29,10 +30,12 @@ abstract class FirExpressionWithSmartcast : FirQualifiedAccessExpression() {
|
||||
abstract val originalExpression: FirQualifiedAccessExpression
|
||||
abstract val typesFromSmartCast: Collection<ConeKotlinType>
|
||||
abstract val originalType: FirTypeRef
|
||||
abstract override val source: FirSourceElement?
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitExpressionWithSmartcast(this, data)
|
||||
|
||||
@FirImplementationDetail
|
||||
abstract override fun replaceSource(newSource: FirSourceElement?)
|
||||
|
||||
abstract override fun replaceTypeRef(newTypeRef: FirTypeRef)
|
||||
|
||||
abstract override fun replaceCalleeReference(newCalleeReference: FirReference)
|
||||
@@ -41,9 +44,6 @@ abstract class FirExpressionWithSmartcast : FirQualifiedAccessExpression() {
|
||||
|
||||
abstract override fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?)
|
||||
|
||||
@FirImplementationDetail
|
||||
abstract override fun replaceSource(newSource: FirSourceElement?)
|
||||
|
||||
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirExpressionWithSmartcast
|
||||
|
||||
abstract override fun <D> transformCalleeReference(transformer: FirTransformer<D>, data: D): FirExpressionWithSmartcast
|
||||
|
||||
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
|
||||
*/
|
||||
|
||||
abstract class FirFunctionCall : FirQualifiedAccessExpression(), FirCall {
|
||||
abstract override val source: FirSourceElement?
|
||||
abstract override val typeRef: FirTypeRef
|
||||
abstract override val annotations: List<FirAnnotationCall>
|
||||
abstract override val typeArguments: List<FirTypeProjection>
|
||||
@@ -27,10 +28,12 @@ abstract class FirFunctionCall : FirQualifiedAccessExpression(), FirCall {
|
||||
abstract override val extensionReceiver: FirExpression
|
||||
abstract override val argumentList: FirArgumentList
|
||||
abstract override val calleeReference: FirNamedReference
|
||||
abstract override val source: FirSourceElement?
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitFunctionCall(this, data)
|
||||
|
||||
@FirImplementationDetail
|
||||
abstract override fun replaceSource(newSource: FirSourceElement?)
|
||||
|
||||
abstract override fun replaceTypeRef(newTypeRef: FirTypeRef)
|
||||
|
||||
abstract override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>)
|
||||
@@ -43,9 +46,6 @@ abstract class FirFunctionCall : FirQualifiedAccessExpression(), FirCall {
|
||||
|
||||
abstract override fun replaceCalleeReference(newCalleeReference: FirReference)
|
||||
|
||||
@FirImplementationDetail
|
||||
abstract override fun replaceSource(newSource: FirSourceElement?)
|
||||
|
||||
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirFunctionCall
|
||||
|
||||
abstract override fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirFunctionCall
|
||||
|
||||
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
|
||||
*/
|
||||
|
||||
abstract class FirImplicitInvokeCall : FirFunctionCall() {
|
||||
abstract override val source: FirSourceElement?
|
||||
abstract override val typeRef: FirTypeRef
|
||||
abstract override val annotations: List<FirAnnotationCall>
|
||||
abstract override val typeArguments: List<FirTypeProjection>
|
||||
@@ -27,10 +28,12 @@ abstract class FirImplicitInvokeCall : FirFunctionCall() {
|
||||
abstract override val extensionReceiver: FirExpression
|
||||
abstract override val argumentList: FirArgumentList
|
||||
abstract override val calleeReference: FirNamedReference
|
||||
abstract override val source: FirSourceElement?
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitImplicitInvokeCall(this, data)
|
||||
|
||||
@FirImplementationDetail
|
||||
abstract override fun replaceSource(newSource: FirSourceElement?)
|
||||
|
||||
abstract override fun replaceTypeRef(newTypeRef: FirTypeRef)
|
||||
|
||||
abstract override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>)
|
||||
@@ -43,9 +46,6 @@ abstract class FirImplicitInvokeCall : FirFunctionCall() {
|
||||
|
||||
abstract override fun replaceCalleeReference(newCalleeReference: FirReference)
|
||||
|
||||
@FirImplementationDetail
|
||||
abstract override fun replaceSource(newSource: FirSourceElement?)
|
||||
|
||||
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirImplicitInvokeCall
|
||||
|
||||
abstract override fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirImplicitInvokeCall
|
||||
|
||||
+4
-4
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
|
||||
*/
|
||||
|
||||
abstract class FirQualifiedAccessExpression : FirExpression(), FirQualifiedAccess {
|
||||
abstract override val source: FirSourceElement?
|
||||
abstract override val typeRef: FirTypeRef
|
||||
abstract override val annotations: List<FirAnnotationCall>
|
||||
abstract override val calleeReference: FirReference
|
||||
@@ -25,10 +26,12 @@ abstract class FirQualifiedAccessExpression : FirExpression(), FirQualifiedAcces
|
||||
abstract override val explicitReceiver: FirExpression?
|
||||
abstract override val dispatchReceiver: FirExpression
|
||||
abstract override val extensionReceiver: FirExpression
|
||||
abstract override val source: FirSourceElement?
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitQualifiedAccessExpression(this, data)
|
||||
|
||||
@FirImplementationDetail
|
||||
abstract override fun replaceSource(newSource: FirSourceElement?)
|
||||
|
||||
abstract override fun replaceTypeRef(newTypeRef: FirTypeRef)
|
||||
|
||||
abstract override fun replaceCalleeReference(newCalleeReference: FirReference)
|
||||
@@ -37,9 +40,6 @@ abstract class FirQualifiedAccessExpression : FirExpression(), FirQualifiedAcces
|
||||
|
||||
abstract override fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?)
|
||||
|
||||
@FirImplementationDetail
|
||||
abstract override fun replaceSource(newSource: FirSourceElement?)
|
||||
|
||||
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirQualifiedAccessExpression
|
||||
|
||||
abstract override fun <D> transformCalleeReference(transformer: FirTransformer<D>, data: D): FirQualifiedAccessExpression
|
||||
|
||||
+4
-4
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
|
||||
*/
|
||||
|
||||
abstract class FirThisReceiverExpression : FirQualifiedAccessExpression() {
|
||||
abstract override val source: FirSourceElement?
|
||||
abstract override val typeRef: FirTypeRef
|
||||
abstract override val annotations: List<FirAnnotationCall>
|
||||
abstract override val typeArguments: List<FirTypeProjection>
|
||||
@@ -26,10 +27,12 @@ abstract class FirThisReceiverExpression : FirQualifiedAccessExpression() {
|
||||
abstract override val dispatchReceiver: FirExpression
|
||||
abstract override val extensionReceiver: FirExpression
|
||||
abstract override val calleeReference: FirThisReference
|
||||
abstract override val source: FirSourceElement?
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitThisReceiverExpression(this, data)
|
||||
|
||||
@FirImplementationDetail
|
||||
abstract override fun replaceSource(newSource: FirSourceElement?)
|
||||
|
||||
abstract override fun replaceTypeRef(newTypeRef: FirTypeRef)
|
||||
|
||||
abstract override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>)
|
||||
@@ -40,9 +43,6 @@ abstract class FirThisReceiverExpression : FirQualifiedAccessExpression() {
|
||||
|
||||
abstract override fun replaceCalleeReference(newCalleeReference: FirReference)
|
||||
|
||||
@FirImplementationDetail
|
||||
abstract override fun replaceSource(newSource: FirSourceElement?)
|
||||
|
||||
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirThisReceiverExpression
|
||||
|
||||
abstract override fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirThisReceiverExpression
|
||||
|
||||
+2
-2
@@ -31,6 +31,7 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
|
||||
@FirBuilderDsl
|
||||
class FirCallableReferenceAccessBuilder : FirQualifiedAccessBuilder, FirAnnotationContainerBuilder, FirExpressionBuilder {
|
||||
override var source: FirSourceElement? = null
|
||||
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
|
||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||
override val typeArguments: MutableList<FirTypeProjection> = mutableListOf()
|
||||
@@ -39,10 +40,10 @@ class FirCallableReferenceAccessBuilder : FirQualifiedAccessBuilder, FirAnnotati
|
||||
override var extensionReceiver: FirExpression = FirNoReceiverExpression
|
||||
lateinit var calleeReference: FirNamedReference
|
||||
var hasQuestionMarkAtLHS: Boolean = false
|
||||
override var source: FirSourceElement? = null
|
||||
|
||||
override fun build(): FirCallableReferenceAccess {
|
||||
return FirCallableReferenceAccessImpl(
|
||||
source,
|
||||
typeRef,
|
||||
annotations,
|
||||
typeArguments,
|
||||
@@ -51,7 +52,6 @@ class FirCallableReferenceAccessBuilder : FirQualifiedAccessBuilder, FirAnnotati
|
||||
extensionReceiver,
|
||||
calleeReference,
|
||||
hasQuestionMarkAtLHS,
|
||||
source,
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -35,23 +35,23 @@ import org.jetbrains.kotlin.name.Name
|
||||
|
||||
@FirBuilderDsl
|
||||
class FirComponentCallBuilder : FirCallBuilder, FirAnnotationContainerBuilder, FirExpressionBuilder {
|
||||
override var source: FirSourceElement? = null
|
||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||
val typeArguments: MutableList<FirTypeProjection> = mutableListOf()
|
||||
var dispatchReceiver: FirExpression = FirNoReceiverExpression
|
||||
var extensionReceiver: FirExpression = FirNoReceiverExpression
|
||||
override var argumentList: FirArgumentList = FirEmptyArgumentList
|
||||
override var source: FirSourceElement? = null
|
||||
lateinit var explicitReceiver: FirExpression
|
||||
var componentIndex: Int by kotlin.properties.Delegates.notNull<Int>()
|
||||
|
||||
override fun build(): FirComponentCall {
|
||||
return FirComponentCallImpl(
|
||||
source,
|
||||
annotations,
|
||||
typeArguments,
|
||||
dispatchReceiver,
|
||||
extensionReceiver,
|
||||
argumentList,
|
||||
source,
|
||||
explicitReceiver,
|
||||
componentIndex,
|
||||
)
|
||||
|
||||
+2
-2
@@ -33,6 +33,7 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
|
||||
@FirBuilderDsl
|
||||
open class FirFunctionCallBuilder : FirAbstractFunctionCallBuilder, FirAnnotationContainerBuilder, FirExpressionBuilder {
|
||||
override var source: FirSourceElement? = null
|
||||
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
|
||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||
override val typeArguments: MutableList<FirTypeProjection> = mutableListOf()
|
||||
@@ -41,11 +42,11 @@ open class FirFunctionCallBuilder : FirAbstractFunctionCallBuilder, FirAnnotatio
|
||||
override var extensionReceiver: FirExpression = FirNoReceiverExpression
|
||||
override var argumentList: FirArgumentList = FirEmptyArgumentList
|
||||
override lateinit var calleeReference: FirNamedReference
|
||||
override var source: FirSourceElement? = null
|
||||
|
||||
@OptIn(FirImplementationDetail::class)
|
||||
override fun build(): FirFunctionCall {
|
||||
return FirFunctionCallImpl(
|
||||
source,
|
||||
typeRef,
|
||||
annotations,
|
||||
typeArguments,
|
||||
@@ -54,7 +55,6 @@ open class FirFunctionCallBuilder : FirAbstractFunctionCallBuilder, FirAnnotatio
|
||||
extensionReceiver,
|
||||
argumentList,
|
||||
calleeReference,
|
||||
source,
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -33,6 +33,7 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
|
||||
@FirBuilderDsl
|
||||
open class FirImplicitInvokeCallBuilder : FirAbstractFunctionCallBuilder, FirAnnotationContainerBuilder, FirExpressionBuilder {
|
||||
override var source: FirSourceElement? = null
|
||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||
override val typeArguments: MutableList<FirTypeProjection> = mutableListOf()
|
||||
override var explicitReceiver: FirExpression? = null
|
||||
@@ -40,10 +41,10 @@ open class FirImplicitInvokeCallBuilder : FirAbstractFunctionCallBuilder, FirAnn
|
||||
override var extensionReceiver: FirExpression = FirNoReceiverExpression
|
||||
override var argumentList: FirArgumentList = FirEmptyArgumentList
|
||||
override lateinit var calleeReference: FirNamedReference
|
||||
override var source: FirSourceElement? = null
|
||||
|
||||
override fun build(): FirImplicitInvokeCall {
|
||||
return FirImplicitInvokeCallImpl(
|
||||
source,
|
||||
annotations,
|
||||
typeArguments,
|
||||
explicitReceiver,
|
||||
@@ -51,7 +52,6 @@ open class FirImplicitInvokeCallBuilder : FirAbstractFunctionCallBuilder, FirAnn
|
||||
extensionReceiver,
|
||||
argumentList,
|
||||
calleeReference,
|
||||
source,
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -30,6 +30,7 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
|
||||
@FirBuilderDsl
|
||||
class FirQualifiedAccessExpressionBuilder : FirQualifiedAccessBuilder, FirAnnotationContainerBuilder, FirExpressionBuilder {
|
||||
override var source: FirSourceElement? = null
|
||||
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
|
||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||
lateinit var calleeReference: FirReference
|
||||
@@ -37,10 +38,10 @@ class FirQualifiedAccessExpressionBuilder : FirQualifiedAccessBuilder, FirAnnota
|
||||
override var explicitReceiver: FirExpression? = null
|
||||
override var dispatchReceiver: FirExpression = FirNoReceiverExpression
|
||||
override var extensionReceiver: FirExpression = FirNoReceiverExpression
|
||||
override var source: FirSourceElement? = null
|
||||
|
||||
override fun build(): FirQualifiedAccessExpression {
|
||||
return FirQualifiedAccessExpressionImpl(
|
||||
source,
|
||||
typeRef,
|
||||
annotations,
|
||||
calleeReference,
|
||||
@@ -48,7 +49,6 @@ class FirQualifiedAccessExpressionBuilder : FirQualifiedAccessBuilder, FirAnnota
|
||||
explicitReceiver,
|
||||
dispatchReceiver,
|
||||
extensionReceiver,
|
||||
source,
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -31,19 +31,19 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
|
||||
@FirBuilderDsl
|
||||
class FirThisReceiverExpressionBuilder : FirQualifiedAccessBuilder, FirAnnotationContainerBuilder, FirExpressionBuilder {
|
||||
override var source: FirSourceElement? = null
|
||||
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
|
||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||
override val typeArguments: MutableList<FirTypeProjection> = mutableListOf()
|
||||
lateinit var calleeReference: FirThisReference
|
||||
override var source: FirSourceElement? = null
|
||||
|
||||
override fun build(): FirThisReceiverExpression {
|
||||
return FirThisReceiverExpressionImpl(
|
||||
source,
|
||||
typeRef,
|
||||
annotations,
|
||||
typeArguments,
|
||||
calleeReference,
|
||||
source,
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
+6
-6
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
|
||||
*/
|
||||
|
||||
internal class FirCallableReferenceAccessImpl(
|
||||
override var source: FirSourceElement?,
|
||||
override var typeRef: FirTypeRef,
|
||||
override val annotations: MutableList<FirAnnotationCall>,
|
||||
override val typeArguments: MutableList<FirTypeProjection>,
|
||||
@@ -30,7 +31,6 @@ internal class FirCallableReferenceAccessImpl(
|
||||
override var extensionReceiver: FirExpression,
|
||||
override var calleeReference: FirNamedReference,
|
||||
override var hasQuestionMarkAtLHS: Boolean,
|
||||
override var source: FirSourceElement?,
|
||||
) : FirCallableReferenceAccess() {
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
typeRef.accept(visitor, data)
|
||||
@@ -91,6 +91,11 @@ internal class FirCallableReferenceAccessImpl(
|
||||
return this
|
||||
}
|
||||
|
||||
@FirImplementationDetail
|
||||
override fun replaceSource(newSource: FirSourceElement?) {
|
||||
source = newSource
|
||||
}
|
||||
|
||||
override fun replaceTypeRef(newTypeRef: FirTypeRef) {
|
||||
typeRef = newTypeRef
|
||||
}
|
||||
@@ -116,9 +121,4 @@ internal class FirCallableReferenceAccessImpl(
|
||||
override fun replaceHasQuestionMarkAtLHS(newHasQuestionMarkAtLHS: Boolean) {
|
||||
hasQuestionMarkAtLHS = newHasQuestionMarkAtLHS
|
||||
}
|
||||
|
||||
@FirImplementationDetail
|
||||
override fun replaceSource(newSource: FirSourceElement?) {
|
||||
source = newSource
|
||||
}
|
||||
}
|
||||
|
||||
+6
-6
@@ -27,12 +27,12 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
|
||||
@OptIn(FirImplementationDetail::class)
|
||||
internal class FirComponentCallImpl(
|
||||
override var source: FirSourceElement?,
|
||||
override val annotations: MutableList<FirAnnotationCall>,
|
||||
override val typeArguments: MutableList<FirTypeProjection>,
|
||||
override var dispatchReceiver: FirExpression,
|
||||
override var extensionReceiver: FirExpression,
|
||||
override var argumentList: FirArgumentList,
|
||||
override var source: FirSourceElement?,
|
||||
override var explicitReceiver: FirExpression,
|
||||
override val componentIndex: Int,
|
||||
) : FirComponentCall() {
|
||||
@@ -100,6 +100,11 @@ internal class FirComponentCallImpl(
|
||||
return this
|
||||
}
|
||||
|
||||
@FirImplementationDetail
|
||||
override fun replaceSource(newSource: FirSourceElement?) {
|
||||
source = newSource
|
||||
}
|
||||
|
||||
override fun replaceTypeRef(newTypeRef: FirTypeRef) {
|
||||
typeRef = newTypeRef
|
||||
}
|
||||
@@ -122,11 +127,6 @@ internal class FirComponentCallImpl(
|
||||
replaceCalleeReference(newCalleeReference)
|
||||
}
|
||||
|
||||
@FirImplementationDetail
|
||||
override fun replaceSource(newSource: FirSourceElement?) {
|
||||
source = newSource
|
||||
}
|
||||
|
||||
override fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?) {
|
||||
require(newExplicitReceiver != null)
|
||||
explicitReceiver = newExplicitReceiver
|
||||
|
||||
+6
-6
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
*/
|
||||
|
||||
open class FirFunctionCallImpl @FirImplementationDetail constructor(
|
||||
override var source: FirSourceElement?,
|
||||
override var typeRef: FirTypeRef,
|
||||
override val annotations: MutableList<FirAnnotationCall>,
|
||||
override val typeArguments: MutableList<FirTypeProjection>,
|
||||
@@ -31,7 +32,6 @@ open class FirFunctionCallImpl @FirImplementationDetail constructor(
|
||||
override var extensionReceiver: FirExpression,
|
||||
override var argumentList: FirArgumentList,
|
||||
override var calleeReference: FirNamedReference,
|
||||
override var source: FirSourceElement?,
|
||||
) : FirFunctionCall() {
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
typeRef.accept(visitor, data)
|
||||
@@ -94,6 +94,11 @@ open class FirFunctionCallImpl @FirImplementationDetail constructor(
|
||||
return this
|
||||
}
|
||||
|
||||
@FirImplementationDetail
|
||||
override fun replaceSource(newSource: FirSourceElement?) {
|
||||
source = newSource
|
||||
}
|
||||
|
||||
override fun replaceTypeRef(newTypeRef: FirTypeRef) {
|
||||
typeRef = newTypeRef
|
||||
}
|
||||
@@ -119,9 +124,4 @@ open class FirFunctionCallImpl @FirImplementationDetail constructor(
|
||||
require(newCalleeReference is FirNamedReference)
|
||||
replaceCalleeReference(newCalleeReference)
|
||||
}
|
||||
|
||||
@FirImplementationDetail
|
||||
override fun replaceSource(newSource: FirSourceElement?) {
|
||||
source = newSource
|
||||
}
|
||||
}
|
||||
|
||||
+6
-6
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
|
||||
*/
|
||||
|
||||
internal class FirImplicitInvokeCallImpl(
|
||||
override var source: FirSourceElement?,
|
||||
override val annotations: MutableList<FirAnnotationCall>,
|
||||
override val typeArguments: MutableList<FirTypeProjection>,
|
||||
override var explicitReceiver: FirExpression?,
|
||||
@@ -31,7 +32,6 @@ internal class FirImplicitInvokeCallImpl(
|
||||
override var extensionReceiver: FirExpression,
|
||||
override var argumentList: FirArgumentList,
|
||||
override var calleeReference: FirNamedReference,
|
||||
override var source: FirSourceElement?,
|
||||
) : FirImplicitInvokeCall() {
|
||||
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
|
||||
|
||||
@@ -96,6 +96,11 @@ internal class FirImplicitInvokeCallImpl(
|
||||
return this
|
||||
}
|
||||
|
||||
@FirImplementationDetail
|
||||
override fun replaceSource(newSource: FirSourceElement?) {
|
||||
source = newSource
|
||||
}
|
||||
|
||||
override fun replaceTypeRef(newTypeRef: FirTypeRef) {
|
||||
typeRef = newTypeRef
|
||||
}
|
||||
@@ -121,9 +126,4 @@ internal class FirImplicitInvokeCallImpl(
|
||||
require(newCalleeReference is FirNamedReference)
|
||||
replaceCalleeReference(newCalleeReference)
|
||||
}
|
||||
|
||||
@FirImplementationDetail
|
||||
override fun replaceSource(newSource: FirSourceElement?) {
|
||||
source = newSource
|
||||
}
|
||||
}
|
||||
|
||||
+6
-6
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
|
||||
*/
|
||||
|
||||
internal class FirQualifiedAccessExpressionImpl(
|
||||
override var source: FirSourceElement?,
|
||||
override var typeRef: FirTypeRef,
|
||||
override val annotations: MutableList<FirAnnotationCall>,
|
||||
override var calleeReference: FirReference,
|
||||
@@ -28,7 +29,6 @@ internal class FirQualifiedAccessExpressionImpl(
|
||||
override var explicitReceiver: FirExpression?,
|
||||
override var dispatchReceiver: FirExpression,
|
||||
override var extensionReceiver: FirExpression,
|
||||
override var source: FirSourceElement?,
|
||||
) : FirQualifiedAccessExpression() {
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
typeRef.accept(visitor, data)
|
||||
@@ -89,6 +89,11 @@ internal class FirQualifiedAccessExpressionImpl(
|
||||
return this
|
||||
}
|
||||
|
||||
@FirImplementationDetail
|
||||
override fun replaceSource(newSource: FirSourceElement?) {
|
||||
source = newSource
|
||||
}
|
||||
|
||||
override fun replaceTypeRef(newTypeRef: FirTypeRef) {
|
||||
typeRef = newTypeRef
|
||||
}
|
||||
@@ -105,9 +110,4 @@ internal class FirQualifiedAccessExpressionImpl(
|
||||
override fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?) {
|
||||
explicitReceiver = newExplicitReceiver
|
||||
}
|
||||
|
||||
@FirImplementationDetail
|
||||
override fun replaceSource(newSource: FirSourceElement?) {
|
||||
source = newSource
|
||||
}
|
||||
}
|
||||
|
||||
+6
-6
@@ -23,11 +23,11 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
|
||||
*/
|
||||
|
||||
internal class FirThisReceiverExpressionImpl(
|
||||
override var source: FirSourceElement?,
|
||||
override var typeRef: FirTypeRef,
|
||||
override val annotations: MutableList<FirAnnotationCall>,
|
||||
override val typeArguments: MutableList<FirTypeProjection>,
|
||||
override var calleeReference: FirThisReference,
|
||||
override var source: FirSourceElement?,
|
||||
) : FirThisReceiverExpression() {
|
||||
override var explicitReceiver: FirExpression? = null
|
||||
override var dispatchReceiver: FirExpression = FirNoReceiverExpression
|
||||
@@ -92,6 +92,11 @@ internal class FirThisReceiverExpressionImpl(
|
||||
return this
|
||||
}
|
||||
|
||||
@FirImplementationDetail
|
||||
override fun replaceSource(newSource: FirSourceElement?) {
|
||||
source = newSource
|
||||
}
|
||||
|
||||
override fun replaceTypeRef(newTypeRef: FirTypeRef) {
|
||||
typeRef = newTypeRef
|
||||
}
|
||||
@@ -113,9 +118,4 @@ internal class FirThisReceiverExpressionImpl(
|
||||
require(newCalleeReference is FirThisReference)
|
||||
replaceCalleeReference(newCalleeReference)
|
||||
}
|
||||
|
||||
@FirImplementationDetail
|
||||
override fun replaceSource(newSource: FirSourceElement?) {
|
||||
source = newSource
|
||||
}
|
||||
}
|
||||
|
||||
-8
@@ -204,13 +204,8 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
||||
+field("value", "T", null)
|
||||
}
|
||||
|
||||
qualifiedAccessExpression.configure {
|
||||
+field("source", sourceElementType, nullable = true, withReplace = true)
|
||||
}
|
||||
|
||||
functionCall.configure {
|
||||
+field("calleeReference", namedReference)
|
||||
+field("source", sourceElementType, nullable = true, withReplace = true)
|
||||
}
|
||||
|
||||
comparisonExpression.configure {
|
||||
@@ -457,7 +452,6 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
||||
+field("originalExpression", qualifiedAccessExpression)
|
||||
+field("typesFromSmartCast", "Collection<ConeKotlinType>", null, customType = coneKotlinTypeType)
|
||||
+field("originalType", typeRef)
|
||||
+field("source", sourceElementType, nullable = true, withReplace = true)
|
||||
}
|
||||
|
||||
safeCallExpression.configure {
|
||||
@@ -475,7 +469,6 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
||||
callableReferenceAccess.configure {
|
||||
+field("calleeReference", namedReference, withReplace = true).withTransform()
|
||||
+booleanField("hasQuestionMarkAtLHS", withReplace = true)
|
||||
+field("source", sourceElementType, nullable = true, withReplace = true)
|
||||
}
|
||||
|
||||
getClassCall.configure {
|
||||
@@ -591,7 +584,6 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
||||
|
||||
thisReceiverExpression.configure {
|
||||
+field("calleeReference", thisReference)
|
||||
+field("source", sourceElementType, nullable = true, withReplace = true)
|
||||
}
|
||||
|
||||
whenExpression.configure {
|
||||
|
||||
+17
-3
@@ -104,7 +104,7 @@ class Element(val name: String, kind: Kind) : AbstractElement {
|
||||
}
|
||||
|
||||
val parentFields: List<Field> by lazy {
|
||||
val result = LinkedHashSet<Field>()
|
||||
val result = LinkedHashMap<String, Field>()
|
||||
parents.forEach { parent ->
|
||||
val fields = parent.allFields.map { field ->
|
||||
val copy = (field as? SimpleField)?.let { simpleField ->
|
||||
@@ -119,9 +119,23 @@ class Element(val name: String, kind: Kind) : AbstractElement {
|
||||
fromParent = true
|
||||
}
|
||||
}
|
||||
result.addAll(fields)
|
||||
fields.forEach {
|
||||
result.merge(it.name, it) { previousField, thisField ->
|
||||
val resultField = previousField.copy()
|
||||
if (thisField.withReplace) {
|
||||
resultField.withReplace = true
|
||||
}
|
||||
if (thisField.useNullableForReplace) {
|
||||
resultField.useNullableForReplace = true
|
||||
}
|
||||
if (thisField.isMutable) {
|
||||
resultField.isMutable = true
|
||||
}
|
||||
resultField
|
||||
}
|
||||
}
|
||||
}
|
||||
result.toList()
|
||||
result.values.toList()
|
||||
}
|
||||
|
||||
override val allFirFields: List<Field> by lazy {
|
||||
|
||||
Reference in New Issue
Block a user