diff --git a/java/java-impl/src/com/intellij/refactoring/typeMigration/ClassTypeArgumentMigrationProcessor.java b/java/java-impl/src/com/intellij/refactoring/typeMigration/ClassTypeArgumentMigrationProcessor.java index 673364b61ce6..e2cb7547613f 100644 --- a/java/java-impl/src/com/intellij/refactoring/typeMigration/ClassTypeArgumentMigrationProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/typeMigration/ClassTypeArgumentMigrationProcessor.java @@ -88,9 +88,10 @@ public class ClassTypeArgumentMigrationProcessor { } }); - final PsiClass resolvedClass = (PsiClass) referenceParameterList.getParent().getParent(); + final PsiClass resolvedClass = (PsiClass)((PsiJavaCodeReferenceElement)referenceParameterList.getParent()).resolve();; LOG.assertTrue(resolvedClass != null); final Set superClasses = new HashSet(); + superClasses.add(resolvedClass); InheritanceUtil.getSuperClasses(resolvedClass, superClasses, true); for (PsiClass superSuperClass : superClasses) { final TypeParameterSearcher parameterSearcher = new TypeParameterSearcher(superSuperClass.getTypeParameters()); @@ -131,36 +132,6 @@ public class ClassTypeArgumentMigrationProcessor { } } - private static PsiSubstitutor composeSubstitutor(final Project project, final PsiType migrationType, final Map visibleTypeParams) { - PsiSubstitutor substitutor = PsiSubstitutor.EMPTY; - final PsiResolveHelper psiResolveHelper = JavaPsiFacade.getInstance(project).getResolveHelper(); - for (Map.Entry entry : visibleTypeParams.entrySet()) { - final PsiClassType clearedOriginalType = JavaPsiFacade.getElementFactory(project).createType(entry.getKey(), PsiSubstitutor.EMPTY); - for (PsiTypeParameter parameter : entry.getValue()) { - substitutor = substitutor.put(parameter, - psiResolveHelper.getSubstitutionForTypeParameter(parameter, clearedOriginalType, migrationType, true, clearedOriginalType.getLanguageLevel())); - } - } - return substitutor; - } - - private static Map getTypeParametersHierarchy(final PsiReferenceParameterList referenceParameterList) { - final PsiElement parent = referenceParameterList.getParent(); - LOG.assertTrue(parent instanceof PsiJavaCodeReferenceElement); - final PsiClass superClass = (PsiClass)((PsiJavaCodeReferenceElement)parent).resolve(); - LOG.assertTrue(superClass != null); - - final Map visibleTypeParams = new HashMap(); - visibleTypeParams.put(superClass, superClass.getTypeParameters()); - - final HashSet superClasses = new HashSet(); - InheritanceUtil.getSuperClasses(superClass, superClasses, true); - for (PsiClass superSuperClass : superClasses) { - visibleTypeParams.put(superSuperClass, superSuperClass.getTypeParameters()); - } - return visibleTypeParams; - } - /** * signature should be changed for methods with type parameters */