Raw FIR: swap branches in when for elvis and bang-bang
This commit is contained in:
@@ -188,18 +188,15 @@ internal fun FirExpression.generateNotNullOrOther(
|
||||
).apply {
|
||||
branches += FirWhenBranchImpl(
|
||||
session, psi,
|
||||
FirOperatorCallImpl(session, psi, FirOperation.NOT_EQ).apply {
|
||||
FirOperatorCallImpl(session, psi, FirOperation.EQ).apply {
|
||||
arguments += subjectExpression
|
||||
arguments += FirConstExpressionImpl(session, psi, IrConstKind.Null, null)
|
||||
},
|
||||
FirSingleExpressionBlock(
|
||||
session,
|
||||
generateAccessExpression(session, psi, subjectName)
|
||||
)
|
||||
FirSingleExpressionBlock(session, other)
|
||||
)
|
||||
branches += FirWhenBranchImpl(
|
||||
session, other.psi, FirElseIfTrueCondition(session, psi),
|
||||
FirSingleExpressionBlock(session, other)
|
||||
FirSingleExpressionBlock(session, generateAccessExpression(session, psi, subjectName))
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
FILE: nullability.kt
|
||||
public? final? fun orFourtyTwo(arg: Int?): <implicit> {
|
||||
^orFourtyTwo when (lval <elvis>: <implicit> = arg#) {
|
||||
!=($subj$, Null(null)) -> {
|
||||
<elvis>#
|
||||
==($subj$, Null(null)) -> {
|
||||
Int(42)
|
||||
}
|
||||
else -> {
|
||||
Int(42)
|
||||
<elvis>#
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
public? final? fun bang(arg: Int?): <implicit> {
|
||||
^bang when (lval <bangbang>: <implicit> = arg#) {
|
||||
!=($subj$, Null(null)) -> {
|
||||
<bangbang>#
|
||||
==($subj$, Null(null)) -> {
|
||||
throw KotlinNullPointerException#()
|
||||
}
|
||||
else -> {
|
||||
throw KotlinNullPointerException#()
|
||||
<bangbang>#
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user