void (HashSet<T> interfaceMethods, PsiClass intf) { PsiMethod[] methods = intf.getMethods(); for (PsiMethod method1 : methods) { PsiMethod method = myClass.findMethodBySignature(method1, true); if (method != null) { interfaceMethods.add((T)method); } } PsiReferenceList implementsList = intf.getImplementsList(); if (implementsList != null) { PsiClassType[] implemented = implementsList.getReferencedTypes(); for (PsiClassType aImplemented : implemented) { PsiClass resolved = aImplemented.resolve(); if (resolved != null) { buildInterfaceMethods(interfaceMethods, resolved); } } } PsiReferenceList extendsList = intf.getExtendsList(); if (extendsList != null) { PsiClassType[] extended = extendsList.getReferencedTypes(); for (PsiClassType aExtended : extended) { PsiClass ref = aExtended.resolve(); if (ref != null) { buildInterfaceMethods(interfaceMethods, ref); } } } }