[FIR] Introduce FirAssignExpressionAltererExtension

This extension can be used to override resolution of assign statements
  with custom statement
This commit is contained in:
Dmitriy Novozhilov
2022-08-12 12:55:50 +03:00
committed by teamcity
parent 42b1621b4b
commit bb38690273
11 changed files with 110 additions and 1 deletions
@@ -29,6 +29,7 @@ abstract class FirExtensionRegistrar : FirExtensionRegistrarAdapter() {
FirExpressionResolutionExtension::class,
FirExtensionSessionComponent::class,
FirSamConversionTransformerExtension::class,
FirAssignExpressionAltererExtension::class,
)
}
@@ -77,6 +78,11 @@ abstract class FirExtensionRegistrar : FirExtensionRegistrarAdapter() {
registerExtension(FirSamConversionTransformerExtension::class, this)
}
@JvmName("plusAssignExpressionAltererExtension")
operator fun (FirAssignExpressionAltererExtension.Factory).unaryPlus() {
registerExtension(FirAssignExpressionAltererExtension::class, this)
}
// ------------------ reference methods ------------------
@JvmName("plusStatusTransformerExtension")
@@ -119,6 +125,11 @@ abstract class FirExtensionRegistrar : FirExtensionRegistrarAdapter() {
FirSamConversionTransformerExtension.Factory { this.invoke(it) }.unaryPlus()
}
@JvmName("plusAssignExpressionAltererExtension")
operator fun ((FirSession) -> FirAssignExpressionAltererExtension).unaryPlus() {
FirAssignExpressionAltererExtension.Factory { this.invoke(it) }.unaryPlus()
}
// ------------------ utilities ------------------
@JvmName("bindLeft")