FIR: Add some absent "replace" methods for callable declarations
It's necessary to avoid copying lambdas in LambdaAnalyzerImpl
This commit is contained in:
@@ -115,4 +115,11 @@ class FirJavaConstructor(
|
|||||||
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
||||||
returnTypeRef = newReturnTypeRef
|
returnTypeRef = newReturnTypeRef
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {}
|
||||||
|
|
||||||
|
override fun replaceValueParameters(newValueParameters: List<FirValueParameter>) {
|
||||||
|
valueParameters.clear()
|
||||||
|
valueParameters.addAll(newValueParameters)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -115,4 +115,6 @@ class FirJavaField(
|
|||||||
override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirField {
|
override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirField {
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,8 @@ interface FirCallableDeclaration<F : FirCallableDeclaration<F>> : FirTypedDeclar
|
|||||||
|
|
||||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitCallableDeclaration(this, data)
|
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitCallableDeclaration(this, data)
|
||||||
|
|
||||||
|
fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?)
|
||||||
|
|
||||||
override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirCallableDeclaration<F>
|
override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirCallableDeclaration<F>
|
||||||
|
|
||||||
fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirCallableDeclaration<F>
|
fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirCallableDeclaration<F>
|
||||||
|
|||||||
@@ -37,6 +37,8 @@ interface FirFunction<F : FirFunction<F>> : FirCallableDeclaration<F>, FirTarget
|
|||||||
|
|
||||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitFunction(this, data)
|
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitFunction(this, data)
|
||||||
|
|
||||||
|
fun replaceValueParameters(newValueParameters: List<FirValueParameter>)
|
||||||
|
|
||||||
override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirFunction<F>
|
override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirFunction<F>
|
||||||
|
|
||||||
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirFunction<F>
|
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirFunction<F>
|
||||||
|
|||||||
+9
@@ -103,6 +103,15 @@ class FirAnonymousFunctionImpl(
|
|||||||
returnTypeRef = newReturnTypeRef
|
returnTypeRef = newReturnTypeRef
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {
|
||||||
|
receiverTypeRef = newReceiverTypeRef
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun replaceValueParameters(newValueParameters: List<FirValueParameter>) {
|
||||||
|
valueParameters.clear()
|
||||||
|
valueParameters.addAll(newValueParameters)
|
||||||
|
}
|
||||||
|
|
||||||
override fun replaceTypeRef(newTypeRef: FirTypeRef) {
|
override fun replaceTypeRef(newTypeRef: FirTypeRef) {
|
||||||
typeRef = newTypeRef
|
typeRef = newTypeRef
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,4 +105,13 @@ open class FirConstructorImpl(
|
|||||||
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
||||||
returnTypeRef = newReturnTypeRef
|
returnTypeRef = newReturnTypeRef
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {
|
||||||
|
receiverTypeRef = newReceiverTypeRef
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun replaceValueParameters(newValueParameters: List<FirValueParameter>) {
|
||||||
|
valueParameters.clear()
|
||||||
|
valueParameters.addAll(newValueParameters)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -111,4 +111,8 @@ class FirDefaultSetterValueParameter(
|
|||||||
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
||||||
returnTypeRef = newReturnTypeRef
|
returnTypeRef = newReturnTypeRef
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {
|
||||||
|
receiverTypeRef = newReceiverTypeRef
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -109,4 +109,6 @@ class FirEnumEntryImpl(
|
|||||||
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
||||||
returnTypeRef = newReturnTypeRef
|
returnTypeRef = newReturnTypeRef
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {}
|
||||||
}
|
}
|
||||||
|
|||||||
+7
@@ -89,4 +89,11 @@ class FirErrorFunctionImpl(
|
|||||||
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
||||||
returnTypeRef = newReturnTypeRef
|
returnTypeRef = newReturnTypeRef
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {}
|
||||||
|
|
||||||
|
override fun replaceValueParameters(newValueParameters: List<FirValueParameter>) {
|
||||||
|
valueParameters.clear()
|
||||||
|
valueParameters.addAll(newValueParameters)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -106,4 +106,6 @@ class FirFieldImpl(
|
|||||||
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
||||||
returnTypeRef = newReturnTypeRef
|
returnTypeRef = newReturnTypeRef
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -60,4 +60,8 @@ abstract class FirModifiableConstructor : FirPureAbstractElement(), FirConstruct
|
|||||||
abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
|
abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
|
||||||
|
|
||||||
abstract override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef)
|
abstract override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef)
|
||||||
|
|
||||||
|
abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?)
|
||||||
|
|
||||||
|
abstract override fun replaceValueParameters(newValueParameters: List<FirValueParameter>)
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -50,4 +50,8 @@ interface FirModifiableFunction<F : FirFunction<F>> : FirFunction<F>, FirAbstra
|
|||||||
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
|
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
|
||||||
|
|
||||||
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef)
|
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef)
|
||||||
|
|
||||||
|
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?)
|
||||||
|
|
||||||
|
override fun replaceValueParameters(newValueParameters: List<FirValueParameter>)
|
||||||
}
|
}
|
||||||
|
|||||||
+2
@@ -57,4 +57,6 @@ interface FirModifiableVariable<F : FirVariable<F>> : FirVariable<F>, FirAbstra
|
|||||||
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
|
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
|
||||||
|
|
||||||
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef)
|
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef)
|
||||||
|
|
||||||
|
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?)
|
||||||
}
|
}
|
||||||
|
|||||||
+9
@@ -113,4 +113,13 @@ open class FirPropertyAccessorImpl(
|
|||||||
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
||||||
returnTypeRef = newReturnTypeRef
|
returnTypeRef = newReturnTypeRef
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {
|
||||||
|
receiverTypeRef = newReceiverTypeRef
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun replaceValueParameters(newValueParameters: List<FirValueParameter>) {
|
||||||
|
valueParameters.clear()
|
||||||
|
valueParameters.addAll(newValueParameters)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -134,4 +134,8 @@ class FirPropertyImpl(
|
|||||||
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
||||||
returnTypeRef = newReturnTypeRef
|
returnTypeRef = newReturnTypeRef
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {
|
||||||
|
receiverTypeRef = newReceiverTypeRef
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+9
@@ -114,4 +114,13 @@ open class FirSimpleFunctionImpl(
|
|||||||
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
||||||
returnTypeRef = newReturnTypeRef
|
returnTypeRef = newReturnTypeRef
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {
|
||||||
|
receiverTypeRef = newReceiverTypeRef
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun replaceValueParameters(newValueParameters: List<FirValueParameter>) {
|
||||||
|
valueParameters.clear()
|
||||||
|
valueParameters.addAll(newValueParameters)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -111,4 +111,8 @@ open class FirValueParameterImpl(
|
|||||||
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
||||||
returnTypeRef = newReturnTypeRef
|
returnTypeRef = newReturnTypeRef
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {
|
||||||
|
receiverTypeRef = newReceiverTypeRef
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -71,7 +71,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
|||||||
callableDeclaration.configure {
|
callableDeclaration.configure {
|
||||||
withArg("F", "FirCallableDeclaration<F>")
|
withArg("F", "FirCallableDeclaration<F>")
|
||||||
parentArg(symbolOwner, "E", "F")
|
parentArg(symbolOwner, "E", "F")
|
||||||
+field("receiverTypeRef", typeRef, nullable = true).withTransform()
|
+field("receiverTypeRef", typeRef, nullable = true, withReplace = true).withTransform()
|
||||||
+symbol("FirCallableSymbol", "F")
|
+symbol("FirCallableSymbol", "F")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,7 +86,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
|||||||
parentArg(callableDeclaration, "F", "F")
|
parentArg(callableDeclaration, "F", "F")
|
||||||
+controlFlowGraphReferenceField.withTransform()
|
+controlFlowGraphReferenceField.withTransform()
|
||||||
+symbol("FirFunctionSymbol", "F")
|
+symbol("FirFunctionSymbol", "F")
|
||||||
+valueParameters.withTransform()
|
+fieldList(valueParameter, withReplace = true).withTransform()
|
||||||
+body(nullable = true)
|
+body(nullable = true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user