[FIR] Make result type after safe-call nullable (for nullable receiver)
This commit is contained in:
committed by
Mikhail Glukhikh
parent
f7b6fec70c
commit
672c172c99
+9
-1
@@ -202,7 +202,15 @@ open class FirBodyResolveTransformer(val session: FirSession, val implicitTypeOn
|
||||
is FirResolvedCallableReference -> {
|
||||
val symbol = newCallee.coneSymbol
|
||||
if (symbol is ConeCallableSymbol) {
|
||||
jump.tryCalculateReturnType(symbol.firUnsafe())
|
||||
val returnType = jump.tryCalculateReturnType(symbol.firUnsafe())
|
||||
if (access.safe && access.explicitReceiver!!.resultType.coneTypeUnsafe<ConeKotlinType>().isNullable) {
|
||||
returnType.withReplacedConeType(
|
||||
session,
|
||||
returnType.coneTypeUnsafe<ConeKotlinType>().withNullability(ConeNullability.NULLABLE)
|
||||
)
|
||||
} else {
|
||||
returnType
|
||||
}
|
||||
} else if (symbol is ConeClassifierSymbol) {
|
||||
val firUnsafe = symbol.firUnsafe<FirElement>()
|
||||
// TODO: unhack
|
||||
|
||||
Reference in New Issue
Block a user