[FIR] Add transformConversionTypeRef to FirTypeOperatorCall

This commit is contained in:
Dmitriy Novozhilov
2020-07-13 19:05:05 +03:00
parent 1b78950ebb
commit 1c622a5a3f
3 changed files with 20 additions and 5 deletions
@@ -29,4 +29,8 @@ abstract class FirTypeOperatorCall : FirExpression(), FirCall {
abstract override fun replaceArgumentList(newArgumentList: FirArgumentList) abstract override fun replaceArgumentList(newArgumentList: FirArgumentList)
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirTypeOperatorCall abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirTypeOperatorCall
abstract fun <D> transformConversionTypeRef(transformer: FirTransformer<D>, data: D): FirTypeOperatorCall
abstract fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirTypeOperatorCall
} }
@@ -36,10 +36,8 @@ internal class FirTypeOperatorCallImpl(
} }
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirTypeOperatorCallImpl { override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirTypeOperatorCallImpl {
typeRef = typeRef.transformSingle(transformer, data) transformConversionTypeRef(transformer, data)
transformAnnotations(transformer, data) transformOtherChildren(transformer, data)
argumentList = argumentList.transformSingle(transformer, data)
conversionTypeRef = conversionTypeRef.transformSingle(transformer, data)
return this return this
} }
@@ -48,6 +46,18 @@ internal class FirTypeOperatorCallImpl(
return this return this
} }
override fun <D> transformConversionTypeRef(transformer: FirTransformer<D>, data: D): FirTypeOperatorCallImpl {
conversionTypeRef = conversionTypeRef.transformSingle(transformer, data)
return this
}
override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirTypeOperatorCallImpl {
typeRef = typeRef.transformSingle(transformer, data)
transformAnnotations(transformer, data)
argumentList = argumentList.transformSingle(transformer, data)
return this
}
override fun replaceTypeRef(newTypeRef: FirTypeRef) { override fun replaceTypeRef(newTypeRef: FirTypeRef) {
typeRef = newTypeRef typeRef = newTypeRef
} }
@@ -218,7 +218,8 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
typeOperatorCall.configure { typeOperatorCall.configure {
+field("operation", operationType) +field("operation", operationType)
+field("conversionTypeRef", typeRef) +field("conversionTypeRef", typeRef).withTransform()
needTransformOtherChildren()
} }
whenBranch.configure { whenBranch.configure {