[FIR] Record & use type arguments of FirQualifiedAccessExpression
This commit is contained in:
+2
@@ -25,6 +25,8 @@ interface FirQualifiedAccessWithoutCallee : FirStatement {
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitQualifiedAccessWithoutCallee(this, data)
|
||||
|
||||
fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>)
|
||||
|
||||
fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirQualifiedAccessWithoutCallee
|
||||
|
||||
fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirQualifiedAccessWithoutCallee
|
||||
|
||||
@@ -33,5 +33,7 @@ abstract class FirResolvedQualifier : FirExpression() {
|
||||
|
||||
abstract fun replaceSafe(newSafe: Boolean)
|
||||
|
||||
abstract fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>)
|
||||
|
||||
abstract fun <D> transformTypeArguments(transformer: FirTransformer<D>, data: D): FirResolvedQualifier
|
||||
}
|
||||
|
||||
@@ -109,4 +109,9 @@ internal class FirArraySetCallImpl(
|
||||
indexes.transformInplace(transformer, data)
|
||||
return this
|
||||
}
|
||||
|
||||
override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>) {
|
||||
typeArguments.clear()
|
||||
typeArguments.addAll(newTypeArguments)
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -88,4 +88,9 @@ internal class FirCallableReferenceAccessImpl(
|
||||
override fun replaceTypeRef(newTypeRef: FirTypeRef) {
|
||||
typeRef = newTypeRef
|
||||
}
|
||||
|
||||
override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>) {
|
||||
typeArguments.clear()
|
||||
typeArguments.addAll(newTypeArguments)
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -95,4 +95,9 @@ internal class FirComponentCallImpl(
|
||||
override fun replaceTypeRef(newTypeRef: FirTypeRef) {
|
||||
typeRef = newTypeRef
|
||||
}
|
||||
|
||||
override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>) {
|
||||
typeArguments.clear()
|
||||
typeArguments.addAll(newTypeArguments)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -97,4 +97,9 @@ open class FirFunctionCallImpl @FirImplementationDetail constructor(
|
||||
override fun replaceTypeRef(newTypeRef: FirTypeRef) {
|
||||
typeRef = newTypeRef
|
||||
}
|
||||
|
||||
override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>) {
|
||||
typeArguments.clear()
|
||||
typeArguments.addAll(newTypeArguments)
|
||||
}
|
||||
}
|
||||
|
||||
+2
@@ -35,4 +35,6 @@ interface FirModifiableQualifiedAccess : FirQualifiedAccessWithoutCallee {
|
||||
override fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirModifiableQualifiedAccess
|
||||
|
||||
override fun <D> transformExtensionReceiver(transformer: FirTransformer<D>, data: D): FirModifiableQualifiedAccess
|
||||
|
||||
override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>)
|
||||
}
|
||||
|
||||
+5
@@ -88,4 +88,9 @@ internal class FirQualifiedAccessExpressionImpl(
|
||||
override fun replaceTypeRef(newTypeRef: FirTypeRef) {
|
||||
typeRef = newTypeRef
|
||||
}
|
||||
|
||||
override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>) {
|
||||
typeArguments.clear()
|
||||
typeArguments.addAll(newTypeArguments)
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -59,4 +59,9 @@ internal class FirResolvedQualifierImpl(
|
||||
override fun replaceSafe(newSafe: Boolean) {
|
||||
safe = newSafe
|
||||
}
|
||||
|
||||
override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>) {
|
||||
typeArguments.clear()
|
||||
typeArguments.addAll(newTypeArguments)
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -90,4 +90,9 @@ internal class FirThisReceiverExpressionImpl(
|
||||
override fun replaceTypeRef(newTypeRef: FirTypeRef) {
|
||||
typeRef = newTypeRef
|
||||
}
|
||||
|
||||
override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>) {
|
||||
typeArguments.clear()
|
||||
typeArguments.addAll(newTypeArguments)
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -94,4 +94,9 @@ internal class FirVariableAssignmentImpl(
|
||||
rValue = rValue.transformSingle(transformer, data)
|
||||
return this
|
||||
}
|
||||
|
||||
override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>) {
|
||||
typeArguments.clear()
|
||||
typeArguments.addAll(newTypeArguments)
|
||||
}
|
||||
}
|
||||
|
||||
+4
@@ -67,5 +67,9 @@ internal class FirExpressionWithSmartcastImpl(
|
||||
throw IllegalStateException()
|
||||
}
|
||||
|
||||
override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>) {
|
||||
throw IllegalStateException()
|
||||
}
|
||||
|
||||
override fun replaceTypeRef(newTypeRef: FirTypeRef) {}
|
||||
}
|
||||
+1
-1
@@ -29,7 +29,7 @@ object FieldSets {
|
||||
)
|
||||
|
||||
val typeArguments =
|
||||
fieldList("typeArguments", typeProjection)
|
||||
fieldList("typeArguments", typeProjection, withReplace = true)
|
||||
|
||||
val arguments =
|
||||
fieldList("arguments", expression)
|
||||
|
||||
Reference in New Issue
Block a user