FIR: Prepare tree for context receivers

This commit is contained in:
Denis.Zharkov
2022-02-16 11:40:51 +03:00
committed by teamcity
parent c4bb445c01
commit a89680fb34
68 changed files with 317 additions and 6 deletions
@@ -52,6 +52,9 @@ class FirJavaClass @FirImplementationDetail internal constructor(
override val controlFlowGraphReference: FirControlFlowGraphReference? get() = null
override var deprecation: DeprecationsPerUseSite? = null
override val contextReceivers: List<FirContextReceiver>
get() = emptyList()
init {
symbol.bind(this)
}
@@ -63,6 +63,8 @@ class FirJavaConstructor @FirImplementationDetail constructor(
override val annotations: List<FirAnnotation> by lazy { annotationBuilder() }
override val contextReceivers: List<FirContextReceiver>
get() = emptyList()
override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirJavaConstructor {
valueParameters.transformInplace(transformer, data)
@@ -67,6 +67,9 @@ class FirJavaField @FirImplementationDetail constructor(
annotations.getDeprecationInfosFromAnnotations(moduleData.session.languageVersionSettings.apiVersion, fromJava = true)
}
override val contextReceivers: List<FirContextReceiver>
get() = emptyList()
override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirField {
returnTypeRef = returnTypeRef.transformSingle(transformer, data)
return this
@@ -85,6 +85,9 @@ class FirJavaMethod @FirImplementationDetail constructor(
override val annotations: List<FirAnnotation> by lazy { annotationBuilder() }
override val contextReceivers: List<FirContextReceiver>
get() = emptyList()
//not used actually, because get 'enhanced' into regular FirSimpleFunction
override var deprecation: DeprecationsPerUseSite? = null
@@ -223,6 +226,10 @@ class FirJavaMethodBuilder : FirFunctionBuilder, FirTypeParametersOwnerBuilder,
throw IllegalStateException()
}
@Deprecated("Modification of 'contextReceivers' has no impact for FirJavaFunctionBuilder", level = DeprecationLevel.HIDDEN)
override val contextReceivers: MutableList<FirContextReceiver>
get() = throw IllegalStateException()
@OptIn(FirImplementationDetail::class)
override fun build(): FirJavaMethod {
return FirJavaMethod(
@@ -97,6 +97,9 @@ class FirJavaValueParameter @FirImplementationDetail constructor(
override val dispatchReceiverType: ConeSimpleKotlinType?
get() = null
override val contextReceivers: List<FirContextReceiver>
get() = emptyList()
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
returnTypeRef.accept(visitor, data)
annotations.forEach { it.accept(visitor, data) }