[FIR] ReturnTypeCalculator: replace !! with useful exception
^KT-64196
This commit is contained in:
+7
-2
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user