From c2b72108a3334caa28b6d6fdc98d1a2449679405 Mon Sep 17 00:00:00 2001 From: "Victoria.Petrakovich" Date: Tue, 15 Jul 2025 20:38:40 +0200 Subject: [PATCH] [kotlin] Remove unneeded extension and use existing `KtTypeElement.unwrapNullability()` KTIJ-33942 GitOrigin-RevId: 0d62349aa47a0b0224d813428485e837a7eaca7d --- ...ectionWithNullableTypeArgumentInspection.kt | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/plugins/kotlin/code-insight/inspections-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/inspections/JavaCollectionWithNullableTypeArgumentInspection.kt b/plugins/kotlin/code-insight/inspections-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/inspections/JavaCollectionWithNullableTypeArgumentInspection.kt index 0eb531f86191..2f8a63a89cad 100644 --- a/plugins/kotlin/code-insight/inspections-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/inspections/JavaCollectionWithNullableTypeArgumentInspection.kt +++ b/plugins/kotlin/code-insight/inspections-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/inspections/JavaCollectionWithNullableTypeArgumentInspection.kt @@ -29,6 +29,7 @@ import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqNameUnsafe import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.* +import org.jetbrains.kotlin.psi.psiUtil.unwrapNullability import org.jetbrains.kotlin.utils.exceptions.errorWithAttachment import org.jetbrains.kotlin.utils.exceptions.withPsiEntry @@ -195,10 +196,9 @@ internal class JavaCollectionWithNullableTypeArgumentInspection : } private fun KtTypeProjection.removeQuestionMark() { - val initialNullableType = this.typeReference?.typeElement as? KtNullableType ?: return - val deepestNullableType = getDeepestNullableType(initialNullableType) - val innerType = deepestNullableType.innerType ?: return - innerType.let { initialNullableType.replace(innerType) } + val typeElement = this.typeReference?.typeElement + val unwrappedTypeElement = typeElement?.unwrapNullability() ?: return + typeElement.replace(unwrappedTypeElement) } private fun KtTypeProjection.makeDefinitelyNonNullable() { @@ -300,11 +300,7 @@ private fun KtElement.getTypeArguments(): List? { return when (this) { is KtTypeReference -> { val typeElement = this.typeElement - val userType = if (typeElement is KtNullableType) { - getDeepestNullableType(typeElement).innerType - } else { - typeElement - } as? KtUserType + val userType = typeElement?.unwrapNullability() as? KtUserType userType?.typeArguments.orEmpty() } @@ -315,7 +311,3 @@ private fun KtElement.getTypeArguments(): List? { else -> null } } - -private fun getDeepestNullableType(initialNullableType: KtNullableType): KtNullableType { - return generateSequence(initialNullableType) { it.innerType as? KtNullableType }.last() -} \ No newline at end of file