diff --git a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/BasicExpressionTypingVisitor.java b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/BasicExpressionTypingVisitor.java index 0533d81c60e..69a02222167 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/BasicExpressionTypingVisitor.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/BasicExpressionTypingVisitor.java @@ -940,6 +940,9 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { if (ArgumentTypeResolver.isFunctionLiteralArgument(baseExpression, context)) { context.trace.report(NOT_NULL_ASSERTION_ON_LAMBDA_EXPRESSION.on(operationSign)); + if (baseTypeInfo == null) { + return TypeInfoFactoryKt.createTypeInfo(ErrorUtils.createErrorType("Unresolved lambda expression"), context); + } return baseTypeInfo; } assert baseTypeInfo != null : "Base expression was not processed: " + expression; diff --git a/compiler/testData/diagnostics/tests/regressions/kt10843.kt b/compiler/testData/diagnostics/tests/regressions/kt10843.kt new file mode 100644 index 00000000000..9467ab4c6d9 --- /dev/null +++ b/compiler/testData/diagnostics/tests/regressions/kt10843.kt @@ -0,0 +1,6 @@ +// See EA-76890 / KT-10843: NPE during analysis +fun lambda(x : Int?) = x?.let l { + y -> + if (y > 0) return@l x + y +}!! diff --git a/compiler/testData/diagnostics/tests/regressions/kt10843.txt b/compiler/testData/diagnostics/tests/regressions/kt10843.txt new file mode 100644 index 00000000000..13a7c7da10b --- /dev/null +++ b/compiler/testData/diagnostics/tests/regressions/kt10843.txt @@ -0,0 +1,3 @@ +package + +public fun lambda(/*0*/ x: kotlin.Int?): [ERROR : ] diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java index f5f5b4635f7..6ac1173b676 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java @@ -13386,6 +13386,12 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest { doTest(fileName); } + @TestMetadata("kt10843.kt") + public void testKt10843() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/regressions/kt10843.kt"); + doTest(fileName); + } + @TestMetadata("kt127.kt") public void testKt127() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/regressions/kt127.kt");