diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/pullUp/JavaToKotlinPreconversionPullUpHelper.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/pullUp/JavaToKotlinPreconversionPullUpHelper.kt index e2f08a46cae..cab442199eb 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/pullUp/JavaToKotlinPreconversionPullUpHelper.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/pullUp/JavaToKotlinPreconversionPullUpHelper.kt @@ -99,7 +99,15 @@ class JavaToKotlinPreconversionPullUpHelper( val superInterfaceCount = getCurrentSuperInterfaceCount() - javaHelper.move(info, substitutor) + val adjustedSubstitutor = substitutor.substitutionMap.entries.fold(substitutor) { subst, (typeParameter, type) -> + if (type == null) { + val substitutedUpperBound = substitutor.substitute(PsiIntersectionType.createIntersection(*typeParameter.superTypes)) + subst.put(typeParameter, substitutedUpperBound) + } + else subst + } + + javaHelper.move(info, adjustedSubstitutor) if (info.isStatic) { member.removeOverrideModifier()