Don't insert fqn even if current element is resolved into constructor

This commit is contained in:
Nikolay Krasko
2012-11-08 18:29:29 +04:00
parent dc5402337a
commit 5cf708d056
4 changed files with 23 additions and 5 deletions
@@ -18,10 +18,7 @@ package org.jetbrains.jet.plugin.quickfix;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.util.TextRange;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiDocumentManager;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiReference;
import com.intellij.psi.*;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.DefaultModuleConfiguration;
@@ -92,7 +89,18 @@ public class ImportInsertHelper {
PsiElement target = reference.resolve();
if (target != null) {
boolean same = file.getManager().areElementsEquivalent(target, targetElement);
same |= target instanceof PsiClass && importFqn.getFqName().equals(((PsiClass)target).getQualifiedName());
if (!same) {
same = target instanceof PsiClass && importFqn.getFqName().equals(((PsiClass)target).getQualifiedName());
}
if (!same) {
if (target instanceof PsiMethod) {
PsiMethod method = (PsiMethod) target;
same = (method.isConstructor() && file.getManager().areElementsEquivalent(method.getContainingClass(), targetElement));
}
}
if (!same) {
Document document = PsiDocumentManager.getInstance(file.getProject()).getDocument(file);
TextRange refRange = reference.getElement().getTextRange();