From 45cfecd3cfc43c08467ba6ee3ed7c5be9e0b1063 Mon Sep 17 00:00:00 2001 From: Dmitry Avdeev Date: Wed, 22 Aug 2012 15:14:31 +0400 Subject: [PATCH] diagnostics for EA-38264 - assert: PsiReferenceBase.calculateDefaultRangeInElement --- .../src/com/intellij/psi/PsiReferenceBase.java | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/platform/lang-api/src/com/intellij/psi/PsiReferenceBase.java b/platform/lang-api/src/com/intellij/psi/PsiReferenceBase.java index 48905695d65e..aa8a585045ca 100644 --- a/platform/lang-api/src/com/intellij/psi/PsiReferenceBase.java +++ b/platform/lang-api/src/com/intellij/psi/PsiReferenceBase.java @@ -102,9 +102,7 @@ public abstract class PsiReferenceBase implements PsiRefer } protected TextRange calculateDefaultRangeInElement() { - final ElementManipulator manipulator = getManipulator(); - assert manipulator != null: "Cannot find manipulator for " + myElement; - return manipulator.getRangeInElement(myElement); + return getManipulator().getRangeInElement(myElement); } @NotNull @@ -113,9 +111,7 @@ public abstract class PsiReferenceBase implements PsiRefer } public PsiElement handleElementRename(String newElementName) throws IncorrectOperationException { - final ElementManipulator manipulator = getManipulator(); - assert manipulator != null: "Cannot find manipulator for " + myElement; - return manipulator.handleContentChange(myElement, getRangeInElement(), newElementName); + return getManipulator().handleContentChange(myElement, getRangeInElement(), newElementName); } public PsiElement bindToElement(@NotNull PsiElement element) throws IncorrectOperationException { @@ -134,9 +130,12 @@ public abstract class PsiReferenceBase implements PsiRefer return new Immediate(element, range, resolveTo); } - @Nullable ElementManipulator getManipulator() { - return ElementManipulators.getManipulator(myElement); + ElementManipulator manipulator = ElementManipulators.getManipulator(myElement); + if (manipulator == null) { + LOG.error("Cannot find manipulator for " + myElement + " in " + this + " class " + getClass()); + } + return manipulator; } public boolean isSoft() {