FIR: introduce BodyResolveContext.storeCallableReferenceContext
This commit is contained in:
+1
-1
@@ -74,7 +74,7 @@ class PostponedArgumentsAnalyzer(
|
||||
val callableReferenceAccess = atom.reference
|
||||
atom.analyzed = true
|
||||
|
||||
resolutionContext.bodyResolveContext.towerDataContextForCallableReferences.remove(callableReferenceAccess)
|
||||
resolutionContext.bodyResolveContext.dropCallableReferenceContext(callableReferenceAccess)
|
||||
|
||||
val (resultingCandidate, applicability) = atom.resultingCandidate
|
||||
?: Pair(null, CandidateApplicability.INAPPLICABLE)
|
||||
|
||||
+9
-1
@@ -66,7 +66,7 @@ class BodyResolveContext(
|
||||
val towerDataContextForAnonymousFunctions: MutableMap<FirAnonymousFunctionSymbol, FirTowerDataContext>
|
||||
get() = towerDataContextsForClassParts.towerDataContextForAnonymousFunctions
|
||||
|
||||
val towerDataContextForCallableReferences: MutableMap<FirCallableReferenceAccess, FirTowerDataContext>
|
||||
private val towerDataContextForCallableReferences: MutableMap<FirCallableReferenceAccess, FirTowerDataContext>
|
||||
get() = towerDataContextsForClassParts.towerDataContextForCallableReferences
|
||||
|
||||
@set:PrivateForInline
|
||||
@@ -651,4 +651,12 @@ class BodyResolveContext(
|
||||
|
||||
fun buildSecondaryConstructorParametersScope(constructor: FirConstructor): FirLocalScope =
|
||||
constructor.valueParameters.fold(FirLocalScope()) { acc, param -> acc.storeVariable(param) }
|
||||
|
||||
fun storeCallableReferenceContext(callableReferenceAccess: FirCallableReferenceAccess) {
|
||||
towerDataContextForCallableReferences[callableReferenceAccess] = towerDataContext
|
||||
}
|
||||
|
||||
fun dropCallableReferenceContext(callableReferenceAccess: FirCallableReferenceAccess) {
|
||||
towerDataContextForCallableReferences.remove(callableReferenceAccess)
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -688,7 +688,7 @@ open class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransform
|
||||
return resolvedReference.compose()
|
||||
}
|
||||
|
||||
context.towerDataContextForCallableReferences[callableReferenceAccess] = context.towerDataContext
|
||||
context.storeCallableReferenceContext(callableReferenceAccess)
|
||||
|
||||
dataFlowAnalyzer.exitCallableReference(callableReferenceAccessWithTransformedLHS)
|
||||
return callableReferenceAccessWithTransformedLHS.compose()
|
||||
|
||||
Reference in New Issue
Block a user