Set<PsiClass> (@NotNull PsiExpression expression, int maxDepth) { PsiReferenceExpression ref = ((PsiMethodCallExpression)expression).getMethodExpression(); PsiExpression qualifier = ref.getQualifierExpression(); if (qualifier == null) return extractClass(expression.getType()); Set<PsiClass> qualifierType = getPossibleTypes(qualifier, maxDepth - 1); String refName = ref.getReferenceName(); int argCount = ((PsiMethodCallExpression)expression).getArgumentList().getExpressionCount(); List<PsiMethod> methods = refName == null || qualifierType == null ? null : getPossibleMethods(qualifierType, refName, argCount); return methods == null ? null : getDefiniteSymbolTypes(methods, qualifierType); }