From 80d29cdad19b90430631361ed41a7de7094a29bd Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Mon, 23 Dec 2019 14:01:15 +0300 Subject: [PATCH] FIR resolve: soften processBlock limitation during inference completion This allows us to enter some lambdas unentered before --- .../jetbrains/kotlin/fir/resolve/calls/InferenceCompletion.kt | 2 +- .../testData/resolve/problems/covariantArrayAsReceiver.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/InferenceCompletion.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/InferenceCompletion.kt index aa534122143..7012226585b 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/InferenceCompletion.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/InferenceCompletion.kt @@ -217,7 +217,7 @@ class ConstraintSystemCompleter(val components: InferenceComponents) { primitive.processAllContainingCallCandidates( // TODO: remove this argument and relevant parameter // Currently, it's used because otherwise problem happens with a lambda in a try-block (see tryWithLambdaInside test) - processBlocks = false + processBlocks = primitive !is FirTryExpression ) { candidate -> candidate.postponedAtoms.forEach { notAnalyzedArguments.addIfNotNull(it.safeAs()?.takeUnless { it.analyzed }) diff --git a/compiler/fir/resolve/testData/resolve/problems/covariantArrayAsReceiver.txt b/compiler/fir/resolve/testData/resolve/problems/covariantArrayAsReceiver.txt index de4e7a162d7..2a31b8a545a 100644 --- a/compiler/fir/resolve/testData/resolve/problems/covariantArrayAsReceiver.txt +++ b/compiler/fir/resolve/testData/resolve/problems/covariantArrayAsReceiver.txt @@ -20,7 +20,7 @@ FILE: covariantArrayAsReceiver.kt lval adjusted: R|kotlin/collections/List?| = when () { (R|/element| is R|KtParameter|) -> { R|/usages|.R|/filterNot|( = filterNot@fun .(): { - (it#.usage# is KtLightMethod) + (R|/it|.R|/UsageInfo.usage| is R|KtLightMethod|) } ) }