List<PsiNamedElement> (@NotNull PsiElement element) { final TypeEvalContext typeEvalContext = TypeEvalContext.userInitiated(element.getProject(), element.getContainingFile()); final List<PsiNamedElement> components = new ArrayList<>(); for (PsiNamedElement namedElement : getVisibleNamedElements(element)) { if (namedElement instanceof PyTypedElement) { final PyType type = typeEvalContext.getType((PyTypedElement)namedElement); if (type != null && PyABCUtil.isSubtype(type, PyNames.ITERABLE, typeEvalContext)) { components.add(namedElement); } } } return components; }