New J2K: Assume that is expression type is always not null
This commit is contained in:
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
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user