diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt index 5466081bf44..bde412fc99f 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt @@ -426,21 +426,22 @@ class ReturnTypeCalculatorWithJump(val session: FirSession) : ReturnTypeCalculat val provider = session.service() - val file = provider.getFirCallableContainerFile(id) ?: FirErrorTypeRefImpl( + val file = provider.getFirCallableContainerFile(id) + + val outerClasses = generateSequence(id.classId) { classId -> + classId.outerClassId + }.mapTo(mutableListOf()) { provider.getFirClassifierByFqName(it) } + + if (file == null || outerClasses.any { it == null }) return FirErrorTypeRefImpl( session, null, "I don't know what todo" ) - val outerClasses = generateSequence(id.classId) { classId -> - classId.outerClassId - }.mapTo(mutableListOf()) { provider.getFirClassifierByFqName(it)!! } - - declaration.transformReturnTypeRef(storeType, FirComputingImplicitTypeRef) val transformer = FirDesignatedBodyResolveTransformer( - (listOf(file) + outerClasses.asReversed() + listOf(declaration)).iterator(), + (listOf(file) + outerClasses.filterNotNull().asReversed() + listOf(declaration)).iterator(), file.session )