[FIR] ReturnTypeCalculator: replace !! with useful exception

^KT-64196
This commit is contained in:
Dmitrii Gridin
2023-12-21 23:10:58 +01:00
parent 1ec994cd0d
commit e2f245096c
@@ -1,5 +1,5 @@
/*
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
@@ -9,6 +9,8 @@ import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
import org.jetbrains.kotlin.fir.scopes.CallableCopyTypeCalculator
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
import org.jetbrains.kotlin.fir.utils.exceptions.withFirEntry
import org.jetbrains.kotlin.utils.exceptions.errorWithAttachment
abstract class ReturnTypeCalculator {
abstract val callableCopyTypeCalculator: CallableCopyTypeCalculator
@@ -16,7 +18,10 @@ abstract class ReturnTypeCalculator {
abstract fun tryCalculateReturnTypeOrNull(declaration: FirCallableDeclaration): FirResolvedTypeRef?
fun tryCalculateReturnType(declaration: FirCallableDeclaration): FirResolvedTypeRef {
return tryCalculateReturnTypeOrNull(declaration)!!
return tryCalculateReturnTypeOrNull(declaration)
?: errorWithAttachment("Return type cannot be calculated for ${declaration::class.simpleName}") {
withFirEntry("declaration", declaration)
}
}
fun tryCalculateReturnType(symbol: FirCallableSymbol<*>): FirResolvedTypeRef {