Do not use setting specifyFieldTypeByDefault for locals

This commit is contained in:
Valentin Kipyatkov
2016-05-10 16:45:41 +03:00
parent bf9e4a3d84
commit 962223159a
@@ -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