[FIR] Fix order of resolving children of FirProperty
This commit is contained in:
+5
-5
@@ -21,8 +21,6 @@ import org.jetbrains.kotlin.fir.resolve.calls.extractLambdaInfoFromFunctionalTyp
|
|||||||
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
|
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.*
|
import org.jetbrains.kotlin.fir.resolve.transformers.*
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirStatusResolveTransformer.Companion.resolveStatus
|
import org.jetbrains.kotlin.fir.resolve.transformers.FirStatusResolveTransformer.Companion.resolveStatus
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.StoreType
|
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.transformVarargTypeToArrayType
|
|
||||||
import org.jetbrains.kotlin.fir.resolvedTypeFromPrototype
|
import org.jetbrains.kotlin.fir.resolvedTypeFromPrototype
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.FirLocalScope
|
import org.jetbrains.kotlin.fir.scopes.impl.FirLocalScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.FirMemberTypeParameterScope
|
import org.jetbrains.kotlin.fir.scopes.impl.FirMemberTypeParameterScope
|
||||||
@@ -126,8 +124,8 @@ class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransformer)
|
|||||||
private fun transformLocalVariable(variable: FirProperty): CompositeTransformResult<FirDeclaration> {
|
private fun transformLocalVariable(variable: FirProperty): CompositeTransformResult<FirDeclaration> {
|
||||||
assert(variable.isLocal)
|
assert(variable.isLocal)
|
||||||
val resolutionMode = withExpectedType(variable.returnTypeRef)
|
val resolutionMode = withExpectedType(variable.returnTypeRef)
|
||||||
variable.transformOtherChildren(transformer, resolutionMode)
|
variable.transformInitializer(transformer, resolutionMode)
|
||||||
.transformInitializer(transformer, resolutionMode)
|
.transformOtherChildren(transformer, resolutionMode)
|
||||||
.transformInitializer(integerLiteralTypeApproximator, null)
|
.transformInitializer(integerLiteralTypeApproximator, null)
|
||||||
if (variable.initializer != null) {
|
if (variable.initializer != null) {
|
||||||
storeVariableReturnType(variable)
|
storeVariableReturnType(variable)
|
||||||
@@ -141,7 +139,9 @@ class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransformer)
|
|||||||
|
|
||||||
private fun FirProperty.transformChildrenWithoutAccessors(returnTypeRef: FirTypeRef): FirProperty {
|
private fun FirProperty.transformChildrenWithoutAccessors(returnTypeRef: FirTypeRef): FirProperty {
|
||||||
val data = withExpectedType(returnTypeRef)
|
val data = withExpectedType(returnTypeRef)
|
||||||
return transformInitializer(transformer, data).transformOtherChildren(transformer, data)
|
return transformReturnTypeRef(transformer, data)
|
||||||
|
.transformInitializer(transformer, data)
|
||||||
|
.transformOtherChildren(transformer, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun <F : FirVariable<F>> FirVariable<F>.transformAccessors() {
|
private fun <F : FirVariable<F>> FirVariable<F>.transformAccessors() {
|
||||||
|
|||||||
Reference in New Issue
Block a user