}
private void addMethodsOfType(PsiType psiType, Collection<Pair<PsiMethod, PsiSubstitutor>> allMethods) {
final PsiSubstitutor classSubstitutor = getSubstitutor(psiType);
PsiClass psiClass = PsiUtil.resolveClassInType(psiType);
if (null != psiClass) {
List<Pair<PsiMethod, PsiSubstitutor>> acceptedMethods = psiClass.getAllMethodsAndTheirSubstitutors();
for (Pair<PsiMethod, PsiSubstitutor> pair : acceptedMethods) {
PsiMethod psiMethod = pair.getFirst();
if (!psiMethod.isConstructor() && psiMethod.hasModifierProperty(PsiModifier.PUBLIC) && !psiMethod.hasModifierProperty(PsiModifier.STATIC)) {
PsiSubstitutor combinedSubstitutor = pair.getSecond().putAll(classSubstitutor);
allMethods.add(new Pair<PsiMethod, PsiSubstitutor>(psiMethod, combinedSubstitutor));