[FIR] Introduce unchecked not-null cast as internal operation for !!, ?:

This commit is contained in:
Simon Ogorodnik
2019-05-15 15:48:26 +03:00
committed by Mikhail Glukhikh
parent b469eb293b
commit aa96837758
16 changed files with 138 additions and 43 deletions
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.expressions.*
import org.jetbrains.kotlin.fir.expressions.impl.FirElseIfTrueCondition
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpression
import org.jetbrains.kotlin.fir.expressions.impl.FirUncheckedNotNullCastImpl
import org.jetbrains.kotlin.fir.expressions.impl.FirUnitExpression
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
import org.jetbrains.kotlin.fir.references.FirSimpleNamedReference
@@ -990,6 +991,11 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver
}
}
private fun FlowContent.generate(makeNotNullCall: FirUncheckedNotNullCastImpl) {
generate(makeNotNullCall.expression)
keyword("!")
}
private fun FlowContent.generate(typeOperatorCall: FirTypeOperatorCall) {
val (expression) = typeOperatorCall.arguments
generate(expression)
@@ -1178,6 +1184,7 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver
generate(expression.expression)
}
is FirTypeOperatorCall -> generate(expression)
is FirUncheckedNotNullCastImpl -> generate(expression)
is FirOperatorCall -> generate(expression)
else -> inlineUnsupported(expression)
}