From 54432448e3bb741f2acd9bc09482d0dcbe113054 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Mon, 20 May 2019 01:15:28 +0300 Subject: [PATCH] New J2K: correctly remove redundant property type in a case of nullable initializer --- .../org/jetbrains/kotlin/nj2k/NewJ2kPostProcessings.kt | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/NewJ2kPostProcessings.kt b/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/NewJ2kPostProcessings.kt index 876eed3825c..13938888052 100644 --- a/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/NewJ2kPostProcessings.kt +++ b/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/NewJ2kPostProcessings.kt @@ -499,13 +499,11 @@ object NewJ2KPostProcessingRegistrar { if (needLocalVariablesTypes && element.isLocal) return false if (needFieldTypes && element.isMember) return false val initializer = element.initializer ?: return false - val withoutExpectedType = initializer.analyzeInContext(initializer.getResolutionScope()) + val withoutExpectedType = + initializer.analyzeInContext(initializer.getResolutionScope()).getType(initializer) ?: return false val descriptor = element.resolveToDescriptorIfAny() as? CallableDescriptor ?: return false - return when (withoutExpectedType.getType(initializer)) { - descriptor.returnType -> true - descriptor.returnType?.makeNotNullable() -> !element.isVar - else -> false - } + return if (element.isVar) withoutExpectedType == descriptor.returnType + else withoutExpectedType.makeNotNullable() == descriptor.returnType?.makeNotNullable() } if (!check(element)) {