New J2K: Get rid of JKUnresolvedClassType and use JKClassType(JKUnresolvedClassSymbol) instead
This commit is contained in:
committed by
Ilya Kirillov
parent
325eec2454
commit
71b194d0d6
@@ -866,9 +866,6 @@ private inline fun JKDelegationConstructorCall.isCallOfConstructorOf(type: JKTyp
|
||||
val symbol = type.classReference as? JKClassSymbol ?: return false
|
||||
this.identifier.name == symbol.name && this.identifier.declaredIn == symbol
|
||||
}
|
||||
is JKUnresolvedClassType -> {
|
||||
this.identifier.name == type.name
|
||||
}
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ class ImplicitInitializerConversion(private val context: ConversionContext) : Re
|
||||
|
||||
val fieldType = element.type.type
|
||||
val newInitializer = when (fieldType) {
|
||||
is JKClassType, is JKUnresolvedClassType -> JKNullLiteral()
|
||||
is JKClassType -> JKNullLiteral()
|
||||
is JKJavaPrimitiveType -> createPrimitiveTypeInitializer(fieldType)
|
||||
else -> null
|
||||
}
|
||||
|
||||
@@ -8,10 +8,7 @@ package org.jetbrains.kotlin.j2k.conversions
|
||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||
import org.jetbrains.kotlin.j2k.tree.*
|
||||
import org.jetbrains.kotlin.j2k.tree.impl.JKJavaMethodImpl
|
||||
import org.jetbrains.kotlin.j2k.tree.impl.JKJavaVoidType
|
||||
import org.jetbrains.kotlin.j2k.tree.impl.JKTypeElementImpl
|
||||
import org.jetbrains.kotlin.j2k.tree.impl.JKUnresolvedClassType
|
||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
||||
|
||||
class JavaStandartMethodsConversion(private val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||
@@ -23,7 +20,10 @@ class JavaStandartMethodsConversion(private val context: ConversionContext) : Re
|
||||
if (fixCloneMethod(declaration)) {
|
||||
element.inheritance.implements +=
|
||||
JKTypeElementImpl(
|
||||
JKUnresolvedClassType("Cloneable", emptyList(), Nullability.NotNull)
|
||||
JKClassTypeImpl(
|
||||
JKUnresolvedClassSymbol("Cloneable"),
|
||||
emptyList(), Nullability.NotNull
|
||||
)
|
||||
)
|
||||
continue
|
||||
}
|
||||
|
||||
@@ -193,12 +193,6 @@ object JKNoTypeImpl: JKNoType {
|
||||
|
||||
class JKStarProjectionTypeImpl : JKStarProjectionType
|
||||
|
||||
class JKUnresolvedClassType(
|
||||
val name: String,
|
||||
override val parameters: List<JKType>,
|
||||
override val nullability: Nullability = Nullability.Default
|
||||
) : JKParametrizedType
|
||||
|
||||
fun JKType.fqName(): String =
|
||||
when (this) {
|
||||
is JKClassType -> {
|
||||
@@ -209,14 +203,10 @@ fun JKType.fqName(): String =
|
||||
else -> TODO(target.toString())
|
||||
}
|
||||
}
|
||||
is JKUnresolvedClassType -> name
|
||||
is JKJavaPrimitiveType -> jvmPrimitiveType.name
|
||||
else -> TODO(toString())
|
||||
}
|
||||
|
||||
fun JKType.equalsByName(other: JKType) = fqName() == other.fqName()
|
||||
|
||||
|
||||
class JKNullLiteral : JKLiteralExpression, JKElementBase(), PsiOwner by PsiOwnerImpl() {
|
||||
override val literal: String
|
||||
get() = "null"
|
||||
|
||||
@@ -68,7 +68,7 @@ fun PsiType.toJK(symbolProvider: JKSymbolProvider, nullability: Nullability = Nu
|
||||
val parameters = parameters.map { it.toJK(symbolProvider, nullability) }
|
||||
when (target) {
|
||||
null ->
|
||||
JKUnresolvedClassType(rawType().canonicalText, parameters, nullability)
|
||||
JKClassTypeImpl(JKUnresolvedClassSymbol(rawType().canonicalText), parameters, nullability)
|
||||
is PsiTypeParameter ->
|
||||
JKTypeParameterTypeImpl(target.name!!)
|
||||
else -> {
|
||||
@@ -157,7 +157,6 @@ inline fun <reified T : JKType> T.updateNullability(newNullability: Nullability)
|
||||
else when (this) {
|
||||
is JKTypeParameterTypeImpl -> JKTypeParameterTypeImpl(name, newNullability)
|
||||
is JKClassTypeImpl -> JKClassTypeImpl(classReference, parameters, newNullability)
|
||||
is JKUnresolvedClassType -> JKUnresolvedClassType(name, parameters, newNullability)
|
||||
is JKNoType -> this
|
||||
is JKJavaVoidType -> this
|
||||
is JKJavaPrimitiveType -> this
|
||||
|
||||
Reference in New Issue
Block a user