[FIR] Don't pass analyzed lambda to data flow analyzer
This commit is contained in:
+9
-4
@@ -431,12 +431,17 @@ class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransformer)
|
|||||||
): CompositeTransformResult<FirStatement> {
|
): CompositeTransformResult<FirStatement> {
|
||||||
return withLocalScopeCleanup {
|
return withLocalScopeCleanup {
|
||||||
addLocalScope(FirLocalScope())
|
addLocalScope(FirLocalScope())
|
||||||
dataFlowAnalyzer.enterFunction(function)
|
val functionIsNotAnalyzed = transformerPhase != function.resolvePhase
|
||||||
|
if (functionIsNotAnalyzed) {
|
||||||
|
dataFlowAnalyzer.enterFunction(function)
|
||||||
|
}
|
||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST")
|
||||||
transformDeclarationContent(function, data).also {
|
transformDeclarationContent(function, data).also {
|
||||||
val result = it.single as FirFunction<*>
|
if (functionIsNotAnalyzed) {
|
||||||
dataFlowAnalyzer.exitFunction(result)?.let { controlFlowGraph ->
|
val result = it.single as FirFunction<*>
|
||||||
result.transformControlFlowGraphReference(ControlFlowGraphReferenceTransformer, controlFlowGraph)
|
dataFlowAnalyzer.exitFunction(result)?.let { controlFlowGraph ->
|
||||||
|
result.transformControlFlowGraphReference(ControlFlowGraphReferenceTransformer, controlFlowGraph)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} as CompositeTransformResult<FirStatement>
|
} as CompositeTransformResult<FirStatement>
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user