diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/declarationUtils.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/declarationUtils.kt index 108dfe3f556..8be63c33373 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/declarationUtils.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/declarationUtils.kt @@ -124,11 +124,11 @@ private fun KtClassOrObject.findFir(firSymbolProvider: FirSymbolProvider): FirRe } } -private fun KtTypeAlias.findFir(firSymbolProvider: FirSymbolProvider): FirTypeAlias { +private fun KtTypeAlias.findFir(firSymbolProvider: FirSymbolProvider): FirTypeAlias? { val typeAlias = ClassId(containingKtFile.packageFqName, nameAsSafeName) return executeWithoutPCE { + // Finding a non-top-level type alias won't work firSymbolProvider.getClassLikeSymbolByFqName(typeAlias)?.fir as? FirTypeAlias - ?: error("Could not find type alias $typeAlias") } } diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/utils.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/utils.kt index a01ee03a91d..ef55daacd5c 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/utils.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/utils.kt @@ -28,10 +28,11 @@ internal inline fun executeOrReturnDefaultValueOnPCE(defaultValue: T, action defaultValue } -internal inline fun executeWithoutPCE(crossinline action: () -> T): T { +internal inline fun executeWithoutPCE(crossinline action: () -> T): T { var result: T? = null ProgressManager.getInstance().executeNonCancelableSection { result = action() } - return result!! + @Suppress("UNCHECKED_CAST") + return result as T } internal inline fun Lock.lockWithPCECheck(lockingIntervalMs: Long, action: () -> T): T {