From 71b194d0d6289e29b20e2cd7ac621a252c281527 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Mon, 24 Dec 2018 12:02:47 +0300 Subject: [PATCH] New J2K: Get rid of JKUnresolvedClassType and use JKClassType(JKUnresolvedClassSymbol) instead --- j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt | 3 --- .../j2k/conversions/ImplicitInitializerConversion.kt | 2 +- .../j2k/conversions/JavaStandartMethodsConversion.kt | 10 +++++----- j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/jk.kt | 10 ---------- j2k/newSrc/org/jetbrains/kotlin/j2k/tree/types.kt | 3 +-- 5 files changed, 7 insertions(+), 21 deletions(-) diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt index 6d144e9082c..26b355cd683 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt @@ -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 } } diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/ImplicitInitializerConversion.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/ImplicitInitializerConversion.kt index 4368d886f4a..267ec599dda 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/ImplicitInitializerConversion.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/ImplicitInitializerConversion.kt @@ -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 } diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/JavaStandartMethodsConversion.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/JavaStandartMethodsConversion.kt index 9fd71e96784..b822f97aba6 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/JavaStandartMethodsConversion.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/JavaStandartMethodsConversion.kt @@ -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 } diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/jk.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/jk.kt index d98858c35e0..719aadbaabc 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/jk.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/jk.kt @@ -193,12 +193,6 @@ object JKNoTypeImpl: JKNoType { class JKStarProjectionTypeImpl : JKStarProjectionType -class JKUnresolvedClassType( - val name: String, - override val parameters: List, - 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" diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/types.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/types.kt index fb48358da63..42160eed202 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/types.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/types.kt @@ -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 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