mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
IDEA-141620 Duplicating entries in the Expression Type popup
This commit is contained in:
@@ -17,10 +17,7 @@ package com.intellij.codeInsight.hint;
|
||||
|
||||
import com.intellij.lang.ExpressionTypeProvider;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiExpression;
|
||||
import com.intellij.psi.PsiType;
|
||||
import com.intellij.psi.SyntaxTraverser;
|
||||
import com.intellij.psi.*;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.List;
|
||||
@@ -46,6 +43,15 @@ public class JavaTypeProvider extends ExpressionTypeProvider<PsiExpression> {
|
||||
@NotNull
|
||||
@Override
|
||||
public List<PsiExpression> getExpressionsAt(@NotNull PsiElement elementAt) {
|
||||
return SyntaxTraverser.psiApi().parents(elementAt).filter(PsiExpression.class).toList();
|
||||
return SyntaxTraverser.psiApi().parents(elementAt)
|
||||
.filter(PsiExpression.class)
|
||||
.filter(JavaTypeProvider::notAMethodReferenceInCall)
|
||||
.toList();
|
||||
}
|
||||
|
||||
private static boolean notAMethodReferenceInCall(PsiExpression expression) {
|
||||
boolean b = expression instanceof PsiReferenceExpression;
|
||||
PsiElement p = b ? expression.getParent() : null;
|
||||
return !(p instanceof PsiMethodCallExpression && ((PsiMethodCallExpression)p).getMethodExpression() == expression);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user