New J2K: correctly remove redundant property type in a case of nullable initializer
This commit is contained in:
@@ -499,13 +499,11 @@ object NewJ2KPostProcessingRegistrar {
|
|||||||
if (needLocalVariablesTypes && element.isLocal) return false
|
if (needLocalVariablesTypes && element.isLocal) return false
|
||||||
if (needFieldTypes && element.isMember) return false
|
if (needFieldTypes && element.isMember) return false
|
||||||
val initializer = element.initializer ?: 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
|
val descriptor = element.resolveToDescriptorIfAny() as? CallableDescriptor ?: return false
|
||||||
return when (withoutExpectedType.getType(initializer)) {
|
return if (element.isVar) withoutExpectedType == descriptor.returnType
|
||||||
descriptor.returnType -> true
|
else withoutExpectedType.makeNotNullable() == descriptor.returnType?.makeNotNullable()
|
||||||
descriptor.returnType?.makeNotNullable() -> !element.isVar
|
|
||||||
else -> false
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!check(element)) {
|
if (!check(element)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user