Fix unresolved reference to catch parameter from lambda expression

#KT-41140 Fixed
This commit is contained in:
Mikhail Zarechenskiy
2020-08-18 10:52:45 +03:00
parent f2fba8a469
commit 6ed13ef1b6
9 changed files with 51 additions and 1 deletions
@@ -728,6 +728,9 @@ class PSICallResolver(
val argumentName = valueArgument.getArgumentName()?.asName
@Suppress("NAME_SHADOWING")
val outerCallContext = outerCallContext.expandContextForCatchClause(ktExpression)
processFunctionalExpression(
outerCallContext, argumentExpression, startDataFlowInfo,
valueArgument, argumentName, builtIns, typeResolver
@@ -743,7 +746,7 @@ class PSICallResolver(
val context = outerCallContext.replaceContextDependency(ContextDependency.DEPENDENT)
.replaceDataFlowInfo(startDataFlowInfo)
.expandContextForCatchClause(ktExpression).let {
.let {
if (isSpecialFunction &&
argumentExpression is KtBlockExpression &&
ArgumentTypeResolver.getCallableReferenceExpressionIfAny(argumentExpression, it) != null