This commit is contained in:
Anna Kozlova
2015-11-04 10:11:22 +01:00
parent 6055022310
commit 20256d215d
3 changed files with 8 additions and 5 deletions
@@ -54,7 +54,7 @@ public interface PsiResolveHelper {
* @return the result of the resolve, or {@link JavaResolveResult#EMPTY} if the resolve failed.
*/
@NotNull
JavaResolveResult resolveConstructor(PsiClassType type, PsiExpressionList argumentList, PsiElement place);
JavaResolveResult resolveConstructor(PsiClassType type, @NotNull PsiExpressionList argumentList, PsiElement place);
/**
* Resolves a constructor and returns all variants for the resolve.
@@ -39,7 +39,7 @@ public class PsiResolveHelperImpl implements PsiResolveHelper {
@Override
@NotNull
public JavaResolveResult resolveConstructor(PsiClassType classType, PsiExpressionList argumentList, PsiElement place) {
public JavaResolveResult resolveConstructor(PsiClassType classType, @NotNull PsiExpressionList argumentList, PsiElement place) {
JavaResolveResult[] result = multiResolveConstructor(classType, argumentList, place);
return result.length == 1 ? result[0] : JavaResolveResult.EMPTY;
}
@@ -456,9 +456,12 @@ public class InferenceSession {
final PsiElement psiClass = resolveResult.getElement();
if (psiClass != null) {
final JavaPsiFacade facade = JavaPsiFacade.getInstance(callExpression.getProject());
constructor = facade.getResolveHelper().resolveConstructor(facade.getElementFactory().createType((PsiClass)psiClass).rawType(),
callExpression.getArgumentList(),
callExpression);
final PsiExpressionList argumentList = callExpression.getArgumentList();
if (argumentList != null) {
constructor = facade.getResolveHelper().resolveConstructor(facade.getElementFactory().createType((PsiClass)psiClass).rawType(),
argumentList,
callExpression);
}
}
}
return new Result<JavaResolveResult>(constructor.getElement() == null && resolveResult != null ? resolveResult : constructor,