FIR resolve: set implicit Unit type for block without result expression
This fixes most of "implicit error types"
This commit is contained in:
+5
-1
@@ -776,7 +776,11 @@ open class FirBodyResolveTransformer(val session: FirSession, val implicitTypeOn
|
|||||||
is FirExpression -> statement
|
is FirExpression -> statement
|
||||||
else -> null
|
else -> null
|
||||||
}
|
}
|
||||||
block.resultType = (resultExpression?.resultType as? FirResolvedTypeRef) ?: FirErrorTypeRefImpl(session, null, "No type for block")
|
block.resultType = if (resultExpression == null) {
|
||||||
|
FirImplicitUnitTypeRef(session, block.psi)
|
||||||
|
} else {
|
||||||
|
(resultExpression.resultType as? FirResolvedTypeRef) ?: FirErrorTypeRefImpl(session, null, "No type for block")
|
||||||
|
}
|
||||||
|
|
||||||
return block.compose()
|
return block.compose()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user