diff --git a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/references/Fe10IdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/references/Fe10IdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java index 4537e2baf40..d18fd9bf07b 100644 --- a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/references/Fe10IdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java +++ b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/references/Fe10IdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java @@ -1561,6 +1561,12 @@ public class Fe10IdeNormalAnalysisSourceModuleReferenceResolveTestGenerated exte runTest("analysis/analysis-api/testData/referenceResolve/withErrors/AnnotationParameter.kt"); } + @Test + @TestMetadata("ByReturnExpression.kt") + public void testByReturnExpression() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/withErrors/ByReturnExpression.kt"); + } + @Test @TestMetadata("ClassNameBeforeDot.kt") public void testClassNameBeforeDot() throws Exception { diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/references/FirReferenceResolveHelper.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/references/FirReferenceResolveHelper.kt index 5e0c6ab08b7..192ac4017b1 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/references/FirReferenceResolveHelper.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/references/FirReferenceResolveHelper.kt @@ -387,7 +387,8 @@ internal object FirReferenceResolveHelper { symbolBuilder: KtSymbolByFirBuilder ): Collection { return if (expression is KtLabelReferenceExpression) { - listOf(fir.target.labeledElement.buildSymbol(symbolBuilder)) + val labeledElement = fir.target.labeledElement + if (labeledElement is FirErrorFunction) emptyList() else listOf(labeledElement.buildSymbol(symbolBuilder)) } else emptyList() } diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeDependentAnalysisSourceModuleReferenceResolveTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeDependentAnalysisSourceModuleReferenceResolveTestGenerated.java index 7b60669ccd8..dcdaae07d78 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeDependentAnalysisSourceModuleReferenceResolveTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeDependentAnalysisSourceModuleReferenceResolveTestGenerated.java @@ -1561,6 +1561,12 @@ public class FirIdeDependentAnalysisSourceModuleReferenceResolveTestGenerated ex runTest("analysis/analysis-api/testData/referenceResolve/withErrors/AnnotationParameter.kt"); } + @Test + @TestMetadata("ByReturnExpression.kt") + public void testByReturnExpression() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/withErrors/ByReturnExpression.kt"); + } + @Test @TestMetadata("ClassNameBeforeDot.kt") public void testClassNameBeforeDot() throws Exception { diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java index d8f1f19529d..a8259f9b44e 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java @@ -1561,6 +1561,12 @@ public class FirIdeNormalAnalysisSourceModuleReferenceResolveTestGenerated exten runTest("analysis/analysis-api/testData/referenceResolve/withErrors/AnnotationParameter.kt"); } + @Test + @TestMetadata("ByReturnExpression.kt") + public void testByReturnExpression() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/withErrors/ByReturnExpression.kt"); + } + @Test @TestMetadata("ClassNameBeforeDot.kt") public void testClassNameBeforeDot() throws Exception { diff --git a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/references/FirStandaloneNormalAnalysisSourceModuleReferenceResolveTestGenerated.java b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/references/FirStandaloneNormalAnalysisSourceModuleReferenceResolveTestGenerated.java index b2046eeeb42..438a5c0c164 100644 --- a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/references/FirStandaloneNormalAnalysisSourceModuleReferenceResolveTestGenerated.java +++ b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/references/FirStandaloneNormalAnalysisSourceModuleReferenceResolveTestGenerated.java @@ -1561,6 +1561,12 @@ public class FirStandaloneNormalAnalysisSourceModuleReferenceResolveTestGenerate runTest("analysis/analysis-api/testData/referenceResolve/withErrors/AnnotationParameter.kt"); } + @Test + @TestMetadata("ByReturnExpression.kt") + public void testByReturnExpression() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/withErrors/ByReturnExpression.kt"); + } + @Test @TestMetadata("ClassNameBeforeDot.kt") public void testClassNameBeforeDot() throws Exception { diff --git a/analysis/analysis-api/testData/referenceResolve/withErrors/ByReturnExpression.kt b/analysis/analysis-api/testData/referenceResolve/withErrors/ByReturnExpression.kt new file mode 100644 index 00000000000..86e890c6a47 --- /dev/null +++ b/analysis/analysis-api/testData/referenceResolve/withErrors/ByReturnExpression.kt @@ -0,0 +1,8 @@ +// UNRESOLVED_REFERENCE +fun bar(block: () -> Unit) {} + +fun foo() { + bar { + return@b + } +} \ No newline at end of file