FIR: extract initializing of containingClassAttr into fun
This commit is contained in:
+4
-12
@@ -1019,9 +1019,7 @@ class DeclarationsConverter(
|
||||
null, session, FirDeclarationOrigin.Source, returnType, propertyVisibility
|
||||
).also {
|
||||
it.status = defaultAccessorStatus()
|
||||
currentDispatchReceiverType()?.lookupTag?.let { lookupTag ->
|
||||
it.containingClassAttr = lookupTag
|
||||
}
|
||||
it.initContainingClassAttr()
|
||||
}
|
||||
// NOTE: We still need the setter even for a val property so we can report errors (e.g., VAL_WITH_SETTER).
|
||||
this.setter = convertedAccessors.find { it.isSetter }
|
||||
@@ -1030,9 +1028,7 @@ class DeclarationsConverter(
|
||||
null, session, FirDeclarationOrigin.Source, returnType, propertyVisibility
|
||||
).also {
|
||||
it.status = defaultAccessorStatus()
|
||||
currentDispatchReceiverType()?.lookupTag?.let { lookupTag ->
|
||||
it.containingClassAttr = lookupTag
|
||||
}
|
||||
it.initContainingClassAttr()
|
||||
}
|
||||
} else null
|
||||
|
||||
@@ -1176,9 +1172,7 @@ class DeclarationsConverter(
|
||||
.also { accessor ->
|
||||
accessor.annotations += modifiers.annotations
|
||||
accessor.status = status
|
||||
currentDispatchReceiverType()?.lookupTag?.let { lookupTag ->
|
||||
accessor.containingClassAttr = lookupTag
|
||||
}
|
||||
accessor.initContainingClassAttr()
|
||||
}
|
||||
}
|
||||
val target = FirFunctionTarget(labelName = null, isLambda = false)
|
||||
@@ -1207,9 +1201,7 @@ class DeclarationsConverter(
|
||||
context.firFunctionTargets.removeLast()
|
||||
}.also {
|
||||
target.bind(it)
|
||||
currentDispatchReceiverType()?.lookupTag?.let { lookupTag ->
|
||||
it.containingClassAttr = lookupTag
|
||||
}
|
||||
it.initContainingClassAttr()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -357,9 +357,7 @@ open class RawFirBuilder(
|
||||
this.contractDescription = it
|
||||
}
|
||||
}.also {
|
||||
currentDispatchReceiverType()?.lookupTag?.let { lookupTag ->
|
||||
it.containingClassAttr = lookupTag
|
||||
}
|
||||
it.initContainingClassAttr()
|
||||
accessorTarget.bind(it)
|
||||
this@RawFirBuilder.context.firFunctionTargets.removeLast()
|
||||
}
|
||||
@@ -382,9 +380,7 @@ open class RawFirBuilder(
|
||||
it.extractAnnotationsFrom(this)
|
||||
}
|
||||
it.status = status
|
||||
currentDispatchReceiverType()?.lookupTag?.let { lookupTag ->
|
||||
it.containingClassAttr = lookupTag
|
||||
}
|
||||
it.initContainingClassAttr()
|
||||
}
|
||||
}
|
||||
else -> {
|
||||
|
||||
+5
@@ -1140,6 +1140,11 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
|
||||
}
|
||||
}
|
||||
|
||||
protected fun FirCallableDeclaration<*>.initContainingClassAttr() {
|
||||
val currentDispatchReceiverType = currentDispatchReceiverType() ?: return
|
||||
containingClassAttr = currentDispatchReceiverType.lookupTag
|
||||
}
|
||||
|
||||
private fun FirVariable<*>.toQualifiedAccess(): FirQualifiedAccessExpression = buildQualifiedAccessExpression {
|
||||
calleeReference = buildResolvedNamedReference {
|
||||
source = this@toQualifiedAccess.source
|
||||
|
||||
Reference in New Issue
Block a user