diff --git a/python/helpers/python-skeletons/__builtin__.py b/python/helpers/python-skeletons/__builtin__.py index 69e30af36951..cd5ecda0da56 100644 --- a/python/helpers/python-skeletons/__builtin__.py +++ b/python/helpers/python-skeletons/__builtin__.py @@ -2349,6 +2349,12 @@ class set(object): """ return False + def __iter__(self): + """ + :rtype: collections.Iterator[T] + """ + pass + class frozenset(object): """frozenset object.""" diff --git a/python/helpers/python-skeletons/builtins.py b/python/helpers/python-skeletons/builtins.py index 7171c52192ab..67f797586bb8 100644 --- a/python/helpers/python-skeletons/builtins.py +++ b/python/helpers/python-skeletons/builtins.py @@ -2039,6 +2039,12 @@ class set(object): """ return False + def __iter__(self): + """ + :rtype: collections.Iterator[T] + """ + pass + class frozenset(object): """frozenset object.""" diff --git a/python/testSrc/com/jetbrains/python/PyTypeTest.java b/python/testSrc/com/jetbrains/python/PyTypeTest.java index d8e4f32b2d01..3c386e2e59a0 100644 --- a/python/testSrc/com/jetbrains/python/PyTypeTest.java +++ b/python/testSrc/com/jetbrains/python/PyTypeTest.java @@ -1102,6 +1102,14 @@ public class PyTypeTest extends PyTestCase { TypeEvalContext.userInitiated(expr.getProject(), expr.getContainingFile())); } + // PY-20063 + public void testIteratedSetElement() { + doTest("int", + "xs = {1}\n" + + "for expr in xs:\n" + + " print(expr)"); + } + private static List getTypeEvalContexts(@NotNull PyExpression element) { return ImmutableList.of(TypeEvalContext.codeAnalysis(element.getProject(), element.getContainingFile()).withTracing(), TypeEvalContext.userInitiated(element.getProject(), element.getContainingFile()).withTracing());