From 757675c4cae85c9b07ac43836b26c82956715ae2 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Tue, 18 Dec 2018 14:46:47 +0300 Subject: [PATCH] New J2K: Make JKType.updateNullability return the same type --- j2k/newSrc/org/jetbrains/kotlin/j2k/tree/j.kt | 2 +- j2k/newSrc/org/jetbrains/kotlin/j2k/tree/types.kt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/j.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/j.kt index 56801e3078f..dc7febd1719 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/j.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/j.kt @@ -35,7 +35,7 @@ interface JKClassBody : JKTreeElement, JKBranchElement { interface JKEmptyClassBody : JKClassBody -interface JKJavaNewExpression : JKExpression, JKTypeArgumentListOwner { +interface JKJavaNewExpression : JKExpression, JKTypeArgumentListOwner, PsiOwner { val classSymbol: JKClassSymbol var arguments: JKExpressionList var classBody: JKClassBody diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/types.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/types.kt index a0d1c71de5f..a35004fa352 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/types.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/types.kt @@ -146,7 +146,7 @@ fun JKClassSymbol.toKtType(symbolProvider: JKSymbolProvider): KotlinType { return classDescriptor.defaultType } -fun JKType.updateNullability(newNullability: Nullability): JKType = +inline fun T.updateNullability(newNullability: Nullability): T = if (nullability == newNullability) this else when (this) { is JKTypeParameterTypeImpl -> JKTypeParameterTypeImpl(name, newNullability) @@ -157,7 +157,7 @@ fun JKType.updateNullability(newNullability: Nullability): JKType = is JKJavaPrimitiveType -> this is JKJavaArrayType -> JKJavaArrayTypeImpl(type, newNullability) else -> TODO(this::class.toString()) - } + } as T fun JKJavaMethod.returnTypeNullability(context: ConversionContext): Nullability = context.typeFlavorCalculator.methodNullability(psi()!!)