List<PsiReference> (PsiClass psiClass, Query<? extends PsiReference> memberReferences) { final List<PsiReference> refs = new ArrayList<>(); for (PsiReference memberReference : memberReferences) { if (psiClass == null) { refs.add(memberReference); } else { final PsiElement referencedElement = memberReference.getElement(); if (referencedElement instanceof PsiReferenceExpression) { final PsiExpression qualifierExpression = ((PsiReferenceExpression)referencedElement).getQualifierExpression(); if (qualifierExpression != null) { final PsiType qualifierType = qualifierExpression.getType(); if (qualifierType instanceof PsiClassType && psiClass == ((PsiClassType)qualifierType).resolve()) { refs.add(memberReference); } } else { if (psiClass == PsiTreeUtil.getParentOfType(referencedElement, PsiClass.class)) { refs.add(memberReference); } } } } } return refs; }