From 962223159ad47e99765fba41a560ad3fd962228a Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Tue, 10 May 2016 16:45:41 +0300 Subject: [PATCH] Do not use setting specifyFieldTypeByDefault for locals --- .../jetbrains/kotlin/j2k/ExpressionConverter.kt | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/j2k/src/org/jetbrains/kotlin/j2k/ExpressionConverter.kt b/j2k/src/org/jetbrains/kotlin/j2k/ExpressionConverter.kt index 5603474084e..fe796e4e1ae 100644 --- a/j2k/src/org/jetbrains/kotlin/j2k/ExpressionConverter.kt +++ b/j2k/src/org/jetbrains/kotlin/j2k/ExpressionConverter.kt @@ -581,13 +581,21 @@ class DefaultExpressionConverter : JavaElementVisitor(), ExpressionConverter { if (!converter.inConversionScope(target)) return false - if (converter.settings.specifyFieldTypeByDefault) return false + val canChangeType: Boolean + when (target) { + is PsiLocalVariable -> { + if (converter.settings.specifyLocalVariableTypeByDefault) return false + canChangeType = codeConverter.canChangeType(target) + } + + is PsiField -> { + if (converter.settings.specifyFieldTypeByDefault) return false + canChangeType = target.hasModifierProperty(PsiModifier.PRIVATE) + } - val canChangeType = when (target) { - is PsiLocalVariable -> codeConverter.canChangeType(target) - is PsiField -> target.hasModifierProperty(PsiModifier.PRIVATE) else -> return false } + if (converter.shouldDeclareVariableType(target, converter.typeConverter.convertVariableType(target), canChangeType)) return false // if variable type won't be specified then check nullability of the initializer