new inference: method refs: do not provide raw substitutor when containing class provides empty one

This commit is contained in:
anna
2013-10-30 11:46:31 +01:00
parent 80131fafda
commit 0ba945c96e
@@ -131,7 +131,10 @@ public class PsiMethodReferenceUtil {
if (resolve instanceof PsiClass) {
containingClass = (PsiClass)resolve;
substitutor = resolveResult.getSubstitutor();
return new QualifierResolveResult(containingClass, substitutor, true);
final PsiElement element = methodReferenceExpression.getReferenceNameElement();
final boolean isConstructor = element instanceof PsiKeyword && PsiKeyword.NEW.equals(element.getText());
final boolean isRawSubst = (!isConstructor && PsiTreeUtil.isAncestor(containingClass, methodReferenceExpression, true)) && PsiUtil.isRawSubstitutor(containingClass, substitutor);
return new QualifierResolveResult(containingClass, isRawSubst ? PsiSubstitutor.EMPTY : substitutor, true);
}
}
}