mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
show params info: skip inference when argument list is not valid anymore (EA-30223 - PIEAE: CompositePsiElement.getProject)
This commit is contained in:
+2
-2
@@ -125,7 +125,7 @@ public class MethodParameterInfoHandler implements ParameterInfoHandlerWithTabAc
|
||||
for (int i = 0; i < candidates.length; i++) {
|
||||
CandidateInfo candidate = (CandidateInfo)candidates[i];
|
||||
PsiMethod method = (PsiMethod)candidate.getElement();
|
||||
PsiSubstitutor substitutor = candidate instanceof MethodCandidateInfo ? ((MethodCandidateInfo)candidate).inferTypeArguments(true) : candidate.getSubstitutor();
|
||||
PsiSubstitutor substitutor = candidate instanceof MethodCandidateInfo && ((MethodCandidateInfo)candidate).isInferencePossible() ? ((MethodCandidateInfo)candidate).inferTypeArguments(true) : candidate.getSubstitutor();
|
||||
assert substitutor != null;
|
||||
|
||||
if (!method.isValid() || !substitutor.isValid()) {
|
||||
@@ -408,7 +408,7 @@ public class MethodParameterInfoHandler implements ParameterInfoHandlerWithTabAc
|
||||
public void updateUI(final Object p, final ParameterInfoUIContext context) {
|
||||
if (p instanceof CandidateInfo) {
|
||||
CandidateInfo info = (CandidateInfo)p;
|
||||
updateMethodPresentation((PsiMethod)info.getElement(), info instanceof MethodCandidateInfo ? ((MethodCandidateInfo)info).inferTypeArguments(true) : info.getSubstitutor(), context);
|
||||
updateMethodPresentation((PsiMethod)info.getElement(), info instanceof MethodCandidateInfo && ((MethodCandidateInfo)info).isInferencePossible() ? ((MethodCandidateInfo)info).inferTypeArguments(true) : info.getSubstitutor(), context);
|
||||
}
|
||||
else {
|
||||
updateMethodPresentation((PsiMethod)p, null, context);
|
||||
|
||||
@@ -136,6 +136,10 @@ public class MethodCandidateInfo extends CandidateInfo{
|
||||
myArgumentList.getParent(), forCompletion);
|
||||
}
|
||||
|
||||
public boolean isInferencePossible() {
|
||||
return myArgumentList.isValid();
|
||||
}
|
||||
|
||||
public static class ApplicabilityLevel {
|
||||
public static final int NOT_APPLICABLE = 1;
|
||||
public static final int VARARGS = 2;
|
||||
|
||||
Reference in New Issue
Block a user