Override/Implement: Make return type non-nullable (platform collection case) when overriding Java method
#KT-13455 Fixed
This commit is contained in:
+2
-7
@@ -31,13 +31,11 @@ import org.jetbrains.kotlin.idea.core.util.DescriptorMemberChooserObject
|
||||
import org.jetbrains.kotlin.idea.j2k.IdeaDocCommentConverter
|
||||
import org.jetbrains.kotlin.idea.kdoc.KDocElementFactory
|
||||
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers
|
||||
import org.jetbrains.kotlin.idea.util.approximateFlexibleTypes
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.findDocComment.findDocComment
|
||||
import org.jetbrains.kotlin.renderer.*
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.setSingleOverridden
|
||||
import org.jetbrains.kotlin.types.KotlinType
|
||||
import org.jetbrains.kotlin.types.isFlexible
|
||||
import org.jetbrains.kotlin.types.typeUtil.makeNotNullable
|
||||
|
||||
interface OverrideMemberChooserObject : ClassMember {
|
||||
enum class BodyType {
|
||||
@@ -161,10 +159,7 @@ private fun generateConstructorParameter(project: Project, descriptor: PropertyD
|
||||
private fun generateFunction(project: Project, descriptor: FunctionDescriptor, bodyType: OverrideMemberChooserObject.BodyType): KtNamedFunction {
|
||||
val newDescriptor = object : FunctionDescriptor by descriptor {
|
||||
override fun getModality() = Modality.OPEN
|
||||
override fun getReturnType(): KotlinType? {
|
||||
val originalType = descriptor.returnType ?: return null
|
||||
return if (originalType.isFlexible()) originalType.makeNotNullable() else originalType
|
||||
}
|
||||
override fun getReturnType() = descriptor.returnType?.approximateFlexibleTypes(preferNotNull = true, preferStarForRaw = true)
|
||||
override fun getOverriddenDescriptors() = listOf(descriptor)
|
||||
override fun <R : Any?, D : Any?> accept(visitor: DeclarationDescriptorVisitor<R, D>, data: D) = visitor.visitFunctionDescriptor(this, data)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user