List<HierarchicalMethodSignature> (List<HierarchicalMethodSignature> signatures) { for (HierarchicalMethodSignature signature : signatures) { boolean subSignature = true; for (HierarchicalMethodSignature methodSignature : signatures) { if (!signature.equals(methodSignature) && !skipMethod(signature, methodSignature)) { subSignature = false; break; } } if (subSignature) return Collections.singletonList(signature); } return signatures; }