[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. * 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.scopes.CallableCopyTypeCalculator
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef 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 class ReturnTypeCalculator {
abstract val callableCopyTypeCalculator: CallableCopyTypeCalculator abstract val callableCopyTypeCalculator: CallableCopyTypeCalculator
@@ -16,7 +18,10 @@ abstract class ReturnTypeCalculator {
abstract fun tryCalculateReturnTypeOrNull(declaration: FirCallableDeclaration): FirResolvedTypeRef? abstract fun tryCalculateReturnTypeOrNull(declaration: FirCallableDeclaration): FirResolvedTypeRef?
fun tryCalculateReturnType(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 { fun tryCalculateReturnType(symbol: FirCallableSymbol<*>): FirResolvedTypeRef {