New J2K: Assume that is expression type is always not null

This commit is contained in:
Ilya Kirillov
2018-12-18 14:40:36 +03:00
committed by Ilya Kirillov
parent 1615b1c6b3
commit cd6bcb7878
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.j2k.conversions package org.jetbrains.kotlin.j2k.conversions
import com.intellij.psi.PsiClass import com.intellij.psi.PsiClass
import org.jetbrains.kotlin.j2k.ast.Nullability
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.j2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.j2k.tree.impl.*
import org.jetbrains.kotlin.psi.KtClass import org.jetbrains.kotlin.psi.KtClass
@@ -14,10 +15,10 @@ import org.jetbrains.kotlin.psi.KtClass
class InstanceOfConversion : RecursiveApplicableConversionBase() { class InstanceOfConversion : RecursiveApplicableConversionBase() {
override fun applyToElement(element: JKTreeElement): JKTreeElement { override fun applyToElement(element: JKTreeElement): JKTreeElement {
if (element !is JKJavaInstanceOfExpression) return recurse(element) if (element !is JKJavaInstanceOfExpression) return recurse(element)
val checkingType = element.type.type val checkingType = element.type.type.updateNullability(Nullability.NotNull)
val type = val type =
if (checkingType is JKClassType && checkingType.parameters.isEmpty()) { if (checkingType is JKClassType && checkingType.parameters.isEmpty()) {
val resolvedClass = checkingType.classReference?.target val resolvedClass = checkingType.classReference.target
val parametersCount = val parametersCount =
when (resolvedClass) { when (resolvedClass) {
is PsiClass -> resolvedClass.typeParameters.size is PsiClass -> resolvedClass.typeParameters.size
@@ -26,7 +27,7 @@ class InstanceOfConversion : RecursiveApplicableConversionBase() {
} }
val typeParameters = List(parametersCount) { JKStarProjectionTypeImpl() } val typeParameters = List(parametersCount) { JKStarProjectionTypeImpl() }
JKClassTypeImpl( JKClassTypeImpl(
checkingType.classReference as JKClassSymbol, checkingType.classReference,
typeParameters, typeParameters,
checkingType.nullability checkingType.nullability
) )