Java to Kotlin converter: minor code refactoring
This commit is contained in:
@@ -286,25 +286,32 @@ public class Converter private(val project: Project, val settings: ConverterSett
|
|||||||
convertElement(field.getArgumentList()))
|
convertElement(field.getArgumentList()))
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
val initializer = field.getInitializer()
|
|
||||||
val convertedType = typeConverter.convertVariableType(field)
|
val convertedType = typeConverter.convertVariableType(field)
|
||||||
val isVal = isVal(field)
|
val isVal = isVal(field)
|
||||||
val omitType = !settings.specifyFieldTypeByDefault &&
|
|
||||||
initializer != null &&
|
|
||||||
(modifiers.isPrivate && (isVal || convertedType == typeConverter.convertExpressionType(initializer)) ||
|
|
||||||
modifiers.isInternal && convertedType == typeConverter.convertExpressionType(initializer))
|
|
||||||
Field(name,
|
Field(name,
|
||||||
annotations,
|
annotations,
|
||||||
modifiers,
|
modifiers,
|
||||||
convertedType,
|
convertedType,
|
||||||
convertExpression(initializer, field.getType()),
|
convertExpression(field.getInitializer(), field.getType()),
|
||||||
isVal,
|
isVal,
|
||||||
!omitType,
|
shouldDeclareType(field, isVal, convertedType),
|
||||||
field.hasWriteAccesses(field.getContainingClass()))
|
field.hasWriteAccesses(field.getContainingClass()))
|
||||||
}
|
}
|
||||||
return converted.assignPrototype(field)
|
return converted.assignPrototype(field)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun shouldDeclareType(field: PsiField, isVal: Boolean, convertedType: Type): Boolean {
|
||||||
|
if (settings.specifyFieldTypeByDefault) return true
|
||||||
|
val initializer = field.getInitializer() ?: return true
|
||||||
|
fun typeMatches() = convertedType == typeConverter.convertExpressionType(initializer)
|
||||||
|
return if (field.hasModifierProperty(PsiModifier.PRIVATE))
|
||||||
|
!isVal && !typeMatches()
|
||||||
|
else if (field.hasModifierProperty(PsiModifier.PACKAGE_LOCAL))
|
||||||
|
!typeMatches()
|
||||||
|
else
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
private fun isVal(field: PsiField): Boolean {
|
private fun isVal(field: PsiField): Boolean {
|
||||||
if (field.hasModifierProperty(PsiModifier.FINAL)) return true
|
if (field.hasModifierProperty(PsiModifier.FINAL)) return true
|
||||||
if (!field.hasModifierProperty(PsiModifier.PRIVATE)) return false
|
if (!field.hasModifierProperty(PsiModifier.PRIVATE)) return false
|
||||||
|
|||||||
Reference in New Issue
Block a user