diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Arguments.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Arguments.kt index 16b01567e75..f2d30b176a7 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Arguments.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Arguments.kt @@ -124,6 +124,14 @@ fun Candidate.resolveArgumentExpression( isReceiver, isDispatch ) + is FirErrorExpression -> { + val wrappedExpression = argument.expression + if (wrappedExpression != null) { + resolveArgumentExpression(csBuilder, wrappedExpression, expectedType, sink, context, isReceiver, isDispatch) + } else { + resolvePlainExpressionArgument(csBuilder, argument, expectedType, sink, context, isReceiver, isDispatch) + } + } else -> resolvePlainExpressionArgument(csBuilder, argument, expectedType, sink, context, isReceiver, isDispatch) } } diff --git a/compiler/testData/diagnostics/tests/labels/multipleLabels.fir.kt b/compiler/testData/diagnostics/tests/labels/multipleLabels.fir.kt index 957ec9df94e..46cf6b8ea2a 100644 --- a/compiler/testData/diagnostics/tests/labels/multipleLabels.fir.kt +++ b/compiler/testData/diagnostics/tests/labels/multipleLabels.fir.kt @@ -35,3 +35,11 @@ fun foo6() { fun foo7() { l3@ l2@ l1@ fun bar() {} } + +fun func(y: (Unit) -> Unit) {} + +fun foo8() { + func(l@ {}) + func(l2@ l1@ {}) + func(_@ {}) +} diff --git a/compiler/testData/diagnostics/tests/labels/multipleLabels.kt b/compiler/testData/diagnostics/tests/labels/multipleLabels.kt index 7f6a3cb4a47..339e2693148 100644 --- a/compiler/testData/diagnostics/tests/labels/multipleLabels.kt +++ b/compiler/testData/diagnostics/tests/labels/multipleLabels.kt @@ -35,3 +35,11 @@ fun foo6() { fun foo7() { l3@ l2@ l1@ fun bar() {} } + +fun func(y: (Unit) -> Unit) {} + +fun foo8() { + func(l@ {}) + func(l2@ l1@ {}) + func(_@ {}) +}