diff --git a/source/com/intellij/psi/impl/source/tree/ChangeUtil.java b/source/com/intellij/psi/impl/source/tree/ChangeUtil.java index d5261de83f51..24539cd9c58a 100644 --- a/source/com/intellij/psi/impl/source/tree/ChangeUtil.java +++ b/source/com/intellij/psi/impl/source/tree/ChangeUtil.java @@ -619,12 +619,17 @@ public class ChangeUtil implements Constants { LOG.assertTrue(type instanceof PsiClassType); final PsiClassType classType = (PsiClassType)type; final PsiClassType.ClassResolveResult resolveResult = classType.resolveGenerics(); - final PsiClass referencedClass = resolveResult.getElement(); + PsiClass referencedClass = resolveResult.getElement(); if (referencedClass == null) return; - final ASTNode reference = typeElement.getFirstChildNode(); - LOG.assertTrue(reference.getElementType() == JAVA_CODE_REFERENCE); + if (referencedClass instanceof PsiAnonymousClass) { + encodeInfoInTypeElement(typeElement, ((PsiAnonymousClass)referencedClass).getBaseClassType()); + } + else { + final ASTNode reference = typeElement.getFirstChildNode(); + LOG.assertTrue(reference.getElementType() == JAVA_CODE_REFERENCE); - encodeClassTypeInfoInReference((CompositeElement)reference, resolveResult.getElement(), resolveResult.getSubstitutor()); + encodeClassTypeInfoInReference((CompositeElement)reference, resolveResult.getElement(), resolveResult.getSubstitutor()); + } } }