From bf9e4a3d848e4c553e6d205cd1c9e9588f148211 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Thu, 5 May 2016 11:08:46 +0300 Subject: [PATCH] Better code --- j2k/src/org/jetbrains/kotlin/j2k/ExpressionConverter.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/j2k/src/org/jetbrains/kotlin/j2k/ExpressionConverter.kt b/j2k/src/org/jetbrains/kotlin/j2k/ExpressionConverter.kt index d9c27499774..5603474084e 100644 --- a/j2k/src/org/jetbrains/kotlin/j2k/ExpressionConverter.kt +++ b/j2k/src/org/jetbrains/kotlin/j2k/ExpressionConverter.kt @@ -581,13 +581,17 @@ class DefaultExpressionConverter : JavaElementVisitor(), ExpressionConverter { if (!converter.inConversionScope(target)) return false + if (converter.settings.specifyFieldTypeByDefault) return false + val canChangeType = when (target) { is PsiLocalVariable -> codeConverter.canChangeType(target) is PsiField -> target.hasModifierProperty(PsiModifier.PRIVATE) else -> return false } - val shouldDeclareVariableType = converter.shouldDeclareVariableType(target, converter.typeConverter.convertVariableType(target), canChangeType) - return !shouldDeclareVariableType && !converter.settings.specifyFieldTypeByDefault && codeConverter.convertExpression(target.initializer).isNullable + if (converter.shouldDeclareVariableType(target, converter.typeConverter.convertVariableType(target), canChangeType)) return false + + // if variable type won't be specified then check nullability of the initializer + return codeConverter.convertExpression(target.initializer).isNullable } override fun visitSuperExpression(expression: PsiSuperExpression) {