[FIR IDE] Implement lazy designated resolve for all resolve FIR phases
This commit is contained in:
@@ -56,7 +56,9 @@ fun FirRegularClassBuilder.generateValuesFunction(
|
||||
}
|
||||
symbol = FirNamedFunctionSymbol(CallableId(packageFqName, classFqName, ENUM_VALUES))
|
||||
resolvePhase = FirResolvePhase.BODY_RESOLVE
|
||||
body = buildEmptyExpressionBlock()
|
||||
body = buildEmptyExpressionBlock().also {
|
||||
it.replaceTypeRef(returnTypeRef)
|
||||
}
|
||||
}.apply {
|
||||
containingClassAttr = this@generateValuesFunction.symbol.toLookupTag()
|
||||
}
|
||||
@@ -97,7 +99,9 @@ fun FirRegularClassBuilder.generateValueOfFunction(
|
||||
isVararg = false
|
||||
}
|
||||
resolvePhase = FirResolvePhase.BODY_RESOLVE
|
||||
body = buildEmptyExpressionBlock()
|
||||
body = buildEmptyExpressionBlock().also {
|
||||
it.replaceTypeRef(returnTypeRef)
|
||||
}
|
||||
}.apply {
|
||||
containingClassAttr = this@generateValueOfFunction.symbol.toLookupTag()
|
||||
}
|
||||
|
||||
+3
-6
@@ -12,10 +12,7 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
|
||||
import org.jetbrains.kotlin.fir.FirModuleData
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.contracts.impl.FirEmptyContractDescription
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.declarations.builder.buildDefaultSetterValueParameter
|
||||
import org.jetbrains.kotlin.fir.expressions.FirBlock
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertyAccessorSymbol
|
||||
@@ -40,7 +37,7 @@ abstract class FirDefaultPropertyAccessor(
|
||||
) : FirPropertyAccessorImpl(
|
||||
source,
|
||||
moduleData,
|
||||
resolvePhase = FirResolvePhase.BODY_RESOLVE,
|
||||
resolvePhase = if (effectiveVisibility != null) FirResolvePhase.BODY_RESOLVE else FirResolvePhase.TYPES,
|
||||
origin,
|
||||
FirDeclarationAttributes(),
|
||||
propertyTypeRef,
|
||||
@@ -59,7 +56,7 @@ abstract class FirDefaultPropertyAccessor(
|
||||
typeParameters = mutableListOf(),
|
||||
) {
|
||||
override var resolvePhase
|
||||
get() = FirResolvePhase.BODY_RESOLVE
|
||||
get() = if (status is FirResolvedDeclarationStatus) FirResolvePhase.BODY_RESOLVE else FirResolvePhase.TYPES
|
||||
set(_) {}
|
||||
|
||||
final override var body: FirBlock?
|
||||
|
||||
Reference in New Issue
Block a user