From 3771ccedb72afba526b031519cd8170c49a5f9bf Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Sat, 10 Nov 2018 19:26:57 +0300 Subject: [PATCH] New J2K: Add JKType.updateNullability function --- j2k/newSrc/org/jetbrains/kotlin/j2k/tree/types.kt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/types.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/types.kt index b3fc5267c51..5c1042f58d7 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/types.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/types.kt @@ -135,3 +135,15 @@ fun JKClassSymbol.toKtType(symbolProvider: JKSymbolProvider): KotlinType { } return classDescriptor.defaultType } + +fun JKType.updateNullability(newNullability: Nullability): JKType = + if (nullability == newNullability) this + 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 + else -> TODO(this::class.toString()) + } \ No newline at end of file