diff --git a/python/psi-api/src/com/jetbrains/python/psi/PyClass.java b/python/psi-api/src/com/jetbrains/python/psi/PyClass.java index 9fc66ae306c3..26553ee50951 100644 --- a/python/psi-api/src/com/jetbrains/python/psi/PyClass.java +++ b/python/psi-api/src/com/jetbrains/python/psi/PyClass.java @@ -110,7 +110,8 @@ public interface PyClass extends PsiNameIdentifierOwner, PyStatement, NameDefine */ boolean isNewStyleClass(); - Iterable iterateAncestorClasses(); + @NotNull + List getAncestorClasses(); /** * Get a list of all ancestor types. diff --git a/python/src/com/jetbrains/python/codeInsight/PyGotoSuperHandler.java b/python/src/com/jetbrains/python/codeInsight/PyGotoSuperHandler.java index 772dce16c403..b6eeb274a937 100644 --- a/python/src/com/jetbrains/python/codeInsight/PyGotoSuperHandler.java +++ b/python/src/com/jetbrains/python/codeInsight/PyGotoSuperHandler.java @@ -70,7 +70,7 @@ public class PyGotoSuperHandler implements CodeInsightActionHandler { return Collections.emptyList(); } final List result = new ArrayList(); - for (PyClass aClass: pyClass.iterateAncestorClasses()) { + for (PyClass aClass: pyClass.getAncestorClasses()) { final PyTargetExpression superAttr = aClass.findClassAttribute(name, false); if (superAttr != null) { result.add(superAttr); @@ -85,7 +85,7 @@ public class PyGotoSuperHandler implements CodeInsightActionHandler { return Collections.emptyList(); } final List result = new ArrayList(); - for (PyClass aClass: pyClass.iterateAncestorClasses()) { + for (PyClass aClass: pyClass.getAncestorClasses()) { final PyFunction byName = aClass.findMethodByName(name, false); if (byName != null) { result.add(byName); diff --git a/python/src/com/jetbrains/python/codeInsight/PyLineMarkerProvider.java b/python/src/com/jetbrains/python/codeInsight/PyLineMarkerProvider.java index fad0bb078e4e..f382f616403d 100644 --- a/python/src/com/jetbrains/python/codeInsight/PyLineMarkerProvider.java +++ b/python/src/com/jetbrains/python/codeInsight/PyLineMarkerProvider.java @@ -108,7 +108,7 @@ public class PyLineMarkerProvider implements LineMarkerProvider, PyLineSeparator List result = new ArrayList(); PyClass containingClass = PsiTreeUtil.getParentOfType(elt, PyClass.class); if (containingClass != null && elt instanceof PyTargetExpression) { - for (PyClass ancestor : containingClass.iterateAncestorClasses()) { + for (PyClass ancestor : containingClass.getAncestorClasses()) { final PyTargetExpression attribute = ancestor.findClassAttribute(((PyTargetExpression)elt).getReferencedName(), false); if (attribute != null) { result.add(attribute); @@ -185,7 +185,7 @@ public class PyLineMarkerProvider implements LineMarkerProvider, PyLineSeparator } PyClass containingClass = PsiTreeUtil.getParentOfType(element, PyClass.class); if (containingClass == null) return null; - for (PyClass ancestor : containingClass.iterateAncestorClasses()) { + for (PyClass ancestor : containingClass.getAncestorClasses()) { final PyTargetExpression ancestorAttr = ancestor.findClassAttribute(name, false); if (ancestorAttr != null) { return new LineMarkerInfo(element, element.getTextRange().getStartOffset(), diff --git a/python/src/com/jetbrains/python/codeInsight/completion/PySuperClassAttributesCompletionContributor.java b/python/src/com/jetbrains/python/codeInsight/completion/PySuperClassAttributesCompletionContributor.java index 95a61ccd2197..20624e6f6e11 100644 --- a/python/src/com/jetbrains/python/codeInsight/completion/PySuperClassAttributesCompletionContributor.java +++ b/python/src/com/jetbrains/python/codeInsight/completion/PySuperClassAttributesCompletionContributor.java @@ -45,7 +45,7 @@ public class PySuperClassAttributesCompletionContributor extends CompletionContr for (PyTargetExpression expr : cls.getClassAttributes()) { seenNames.add(expr.getName()); } - for (PyClass ancestor : cls.iterateAncestorClasses()) { + for (PyClass ancestor : cls.getAncestorClasses()) { for (PyTargetExpression expr : ancestor.getClassAttributes()) { if (!seenNames.contains(expr.getName())) { seenNames.add(expr.getName()); diff --git a/python/src/com/jetbrains/python/codeInsight/completion/PySuperMethodCompletionContributor.java b/python/src/com/jetbrains/python/codeInsight/completion/PySuperMethodCompletionContributor.java index 197220f10607..9808b146196e 100644 --- a/python/src/com/jetbrains/python/codeInsight/completion/PySuperMethodCompletionContributor.java +++ b/python/src/com/jetbrains/python/codeInsight/completion/PySuperMethodCompletionContributor.java @@ -47,7 +47,7 @@ public class PySuperMethodCompletionContributor extends CompletionContributor { } LanguageLevel languageLevel = LanguageLevel.forElement(parameters.getOriginalFile()); seenNames.addAll(PyNames.getBuiltinMethods(languageLevel).keySet()); - for (PyClass ancestor : containingClass.iterateAncestorClasses()) { + for (PyClass ancestor : containingClass.getAncestorClasses()) { for (PyFunction superMethod : ancestor.getMethods()) { if (!seenNames.contains(superMethod.getName())) { String text = superMethod.getName() + superMethod.getParameterList().getText(); diff --git a/python/src/com/jetbrains/python/codeInsight/override/PyOverrideImplementUtil.java b/python/src/com/jetbrains/python/codeInsight/override/PyOverrideImplementUtil.java index 6f5d5c9f0edf..29b20be5bab5 100644 --- a/python/src/com/jetbrains/python/codeInsight/override/PyOverrideImplementUtil.java +++ b/python/src/com/jetbrains/python/codeInsight/override/PyOverrideImplementUtil.java @@ -239,7 +239,7 @@ public class PyOverrideImplementUtil { @NotNull private static Collection getAllSuperFunctions(@NotNull final PyClass pyClass) { final Map superFunctions = new HashMap(); - for (PyClass aClass : pyClass.iterateAncestorClasses()) { + for (PyClass aClass : pyClass.getAncestorClasses()) { for (PyFunction function : aClass.getMethods()) { if (!superFunctions.containsKey(function.getName())) { superFunctions.put(function.getName(), function); diff --git a/python/src/com/jetbrains/python/documentation/PyDocumentationBuilder.java b/python/src/com/jetbrains/python/documentation/PyDocumentationBuilder.java index 5bbee185483f..e0c38c0fc73c 100644 --- a/python/src/com/jetbrains/python/documentation/PyDocumentationBuilder.java +++ b/python/src/com/jetbrains/python/documentation/PyDocumentationBuilder.java @@ -286,7 +286,7 @@ class PyDocumentationBuilder { if (cls != null && meth_name != null) { final boolean is_constructor = PyNames.INIT.equals(meth_name); // look for inherited and its doc - Iterable classes = cls.iterateAncestorClasses(); + Iterable classes = cls.getAncestorClasses(); if (is_constructor) { // look at our own class again and maybe inherit class's doc classes = new ChainIterable(cls).add(classes); diff --git a/python/src/com/jetbrains/python/documentation/PythonDocumentationProvider.java b/python/src/com/jetbrains/python/documentation/PythonDocumentationProvider.java index 6d27691521bc..33e328389e26 100644 --- a/python/src/com/jetbrains/python/documentation/PythonDocumentationProvider.java +++ b/python/src/com/jetbrains/python/documentation/PythonDocumentationProvider.java @@ -313,7 +313,7 @@ public class PythonDocumentationProvider extends AbstractDocumentationProvider i PyClass cls = inferContainingClassOf(context); if (cls != null) { String desired_name = link.substring(LINK_TYPE_PARENT.length()); - for (PyClass parent : cls.iterateAncestorClasses()) { + for (PyClass parent : cls.getAncestorClasses()) { final String parent_name = parent.getName(); if (parent_name != null && parent_name.equals(desired_name)) return parent; } diff --git a/python/src/com/jetbrains/python/inspections/PyAttributeOutsideInitInspection.java b/python/src/com/jetbrains/python/inspections/PyAttributeOutsideInitInspection.java index a615a13b15c5..02cdf65cc08e 100644 --- a/python/src/com/jetbrains/python/inspections/PyAttributeOutsideInitInspection.java +++ b/python/src/com/jetbrains/python/inspections/PyAttributeOutsideInitInspection.java @@ -65,7 +65,7 @@ public class PyAttributeOutsideInitInspection extends PyInspection { collectAttributesFromSuper(attributesInInit, initMethod); } else { - for (PyClass superClass : containingClass.iterateAncestorClasses()) { + for (PyClass superClass : containingClass.getAncestorClasses()) { final PyFunction superInit = superClass.findMethodByName(PyNames.INIT, false); if (superInit != null) PyClassImpl.collectInstanceAttributes(superInit, attributesInInit); diff --git a/python/src/com/jetbrains/python/inspections/PyClassHasNoInitInspection.java b/python/src/com/jetbrains/python/inspections/PyClassHasNoInitInspection.java index 04c623dcac4c..82df134a19b1 100644 --- a/python/src/com/jetbrains/python/inspections/PyClassHasNoInitInspection.java +++ b/python/src/com/jetbrains/python/inspections/PyClassHasNoInitInspection.java @@ -44,7 +44,7 @@ public class PyClassHasNoInitInspection extends PyInspection { registerProblem(node.getNameIdentifier(), PyBundle.message("INSP.class.has.no.init"), new AddMethodQuickFix("__init__", new PyClassTypeImpl(node, false), false)); } - for (PyClass ancestor : node.iterateAncestorClasses()) { + for (PyClass ancestor : node.getAncestorClasses()) { final PyFunction ancestorInit = ancestor.findInitOrNew(false); if (ancestorInit == null) { registerProblem(node.getNameIdentifier(), PyBundle.message("INSP.parent.$0.has.no.init", ancestor.getName()), diff --git a/python/src/com/jetbrains/python/inspections/PyMissingConstructorInspection.java b/python/src/com/jetbrains/python/inspections/PyMissingConstructorInspection.java index 6f3d6d119e30..6ce1ab531f45 100644 --- a/python/src/com/jetbrains/python/inspections/PyMissingConstructorInspection.java +++ b/python/src/com/jetbrains/python/inspections/PyMissingConstructorInspection.java @@ -62,7 +62,7 @@ public class PyMissingConstructorInspection extends PyInspection { } private static boolean superHasConstructor(@NotNull PyClass cls) { - for (PyClass c : cls.iterateAncestorClasses()) { + for (PyClass c : cls.getAncestorClasses()) { final String name = c.getName(); final String className = cls.getName(); if (!OBJECT.equals(name) && !FAKE_OLD_BASE.equals(name) && className != null && @@ -77,7 +77,7 @@ public class PyMissingConstructorInspection extends PyInspection { if (PyBroadExceptionInspection.equalsException(cls, context)) { return true; } - for (PyClass baseClass : cls.iterateAncestorClasses()) { + for (PyClass baseClass : cls.getAncestorClasses()) { if (PyBroadExceptionInspection.equalsException(baseClass, context)) { return true; } @@ -127,7 +127,7 @@ public class PyMissingConstructorInspection extends PyInspection { if (firstArg.equals(cl.getName()) || firstArg.equals(CANONICAL_SELF+"."+ CLASS) || (qualifiedName != null && qualifiedName.endsWith(firstArg))) return true; - for (PyClass s : cl.iterateAncestorClasses()) { + for (PyClass s : cl.getAncestorClasses()) { if (firstArg.equals(s.getName())) return true; } @@ -159,7 +159,7 @@ public class PyMissingConstructorInspection extends PyInspection { if (ref != null) callingClass = ref.resolve(); } - for (PyClass s : cl.iterateAncestorClasses()) { + for (PyClass s : cl.getAncestorClasses()) { if (s.equals(callingClass)) { return true; } diff --git a/python/src/com/jetbrains/python/inspections/PyUnresolvedReferencesInspection.java b/python/src/com/jetbrains/python/inspections/PyUnresolvedReferencesInspection.java index 3d694e7a1066..37e76f0108bd 100644 --- a/python/src/com/jetbrains/python/inspections/PyUnresolvedReferencesInspection.java +++ b/python/src/com/jetbrains/python/inspections/PyUnresolvedReferencesInspection.java @@ -134,7 +134,7 @@ public class PyUnresolvedReferencesInspection extends PyInspection { final List slots = pyClass.getSlots(); final String attrName = node.getReferencedName(); if (slots != null && !slots.contains(attrName) && !slots.contains(PyNames.DICT)) { - for (PyClass ancestor : pyClass.iterateAncestorClasses()) { + for (PyClass ancestor : pyClass.getAncestorClasses()) { if (ancestor == null) { return; } @@ -672,7 +672,7 @@ public class PyUnresolvedReferencesInspection extends PyInspection { if (isDecoratedAsDynamic(cls, false)) { return true; } - for (PyClass base : cls.iterateAncestorClasses()) { + for (PyClass base : cls.getAncestorClasses()) { if (base != null && isDecoratedAsDynamic(base, false)) { return true; } diff --git a/python/src/com/jetbrains/python/inspections/quickfix/AddFieldQuickFix.java b/python/src/com/jetbrains/python/inspections/quickfix/AddFieldQuickFix.java index de8185679e81..af6b517239c3 100644 --- a/python/src/com/jetbrains/python/inspections/quickfix/AddFieldQuickFix.java +++ b/python/src/com/jetbrains/python/inspections/quickfix/AddFieldQuickFix.java @@ -105,7 +105,7 @@ public class AddFieldQuickFix implements LocalQuickFix { return appendToMethod(init, callback); } else { // no init! boldly copy ancestor's. - for (PyClass ancestor : cls.iterateAncestorClasses()) { + for (PyClass ancestor : cls.getAncestorClasses()) { init = ancestor.findMethodByName(PyNames.INIT, false); if (init != null) break; } diff --git a/python/src/com/jetbrains/python/psi/PyUtil.java b/python/src/com/jetbrains/python/psi/PyUtil.java index 528ff6a5151a..15e7d456a6d7 100644 --- a/python/src/com/jetbrains/python/psi/PyUtil.java +++ b/python/src/com/jetbrains/python/psi/PyUtil.java @@ -375,7 +375,7 @@ public class PyUtil { @NotNull public static List getAllSuperClasses(@NotNull PyClass pyClass) { List superClasses = new ArrayList(); - for (PyClass ancestor : pyClass.iterateAncestorClasses()) { + for (PyClass ancestor : pyClass.getAncestorClasses()) { if (!PyNames.FAKE_OLD_BASE.equals(ancestor.getName())) { superClasses.add(ancestor); } @@ -1018,7 +1018,7 @@ public class PyUtil { PyFunction.Modifier modifier = node.getModifier(); boolean isMetaclassMethod = false; PyClass type_cls = PyBuiltinCache.getInstance(node).getClass("type"); - for (PyClass ancestor_cls : cls.iterateAncestorClasses()) { + for (PyClass ancestor_cls : cls.getAncestorClasses()) { if (ancestor_cls == type_cls) { isMetaclassMethod = true; break; @@ -1050,7 +1050,7 @@ public class PyUtil { if (firstArg.equals(klass.getName()) || firstArg.equals(PyNames.CANONICAL_SELF + "." + PyNames.CLASS)) { return true; } - for (PyClass s : klass.iterateAncestorClasses()) { + for (PyClass s : klass.getAncestorClasses()) { if (firstArg.equals(s.getName())) { return true; } diff --git a/python/src/com/jetbrains/python/psi/impl/PyCallExpressionHelper.java b/python/src/com/jetbrains/python/psi/impl/PyCallExpressionHelper.java index 844a41a1576a..9c78ef8a688c 100644 --- a/python/src/com/jetbrains/python/psi/impl/PyCallExpressionHelper.java +++ b/python/src/com/jetbrains/python/psi/impl/PyCallExpressionHelper.java @@ -505,7 +505,7 @@ public class PyCallExpressionHelper { return getSuperClassUnionType(firstClass); } if (secondClass.isSubclass(firstClass)) { - final Iterator iterator = firstClass.iterateAncestorClasses().iterator(); + final Iterator iterator = firstClass.getAncestorClasses().iterator(); if (iterator.hasNext()) { return new PyClassTypeImpl(iterator.next(), false); // super(Foo, self) has type of Foo, modulo __get__() } diff --git a/python/src/com/jetbrains/python/psi/impl/PyClassImpl.java b/python/src/com/jetbrains/python/psi/impl/PyClassImpl.java index 02ccb6b82831..a9881353f251 100644 --- a/python/src/com/jetbrains/python/psi/impl/PyClassImpl.java +++ b/python/src/com/jetbrains/python/psi/impl/PyClassImpl.java @@ -174,8 +174,9 @@ public class PyClassImpl extends PyPresentableElementImpl implement return expression; } + @NotNull @Override - public Iterable iterateAncestorClasses() { + public List getAncestorClasses() { final List results = new ArrayList(); for (PyClassLikeType type : getAncestorTypes(TypeEvalContext.fastStubOnly(null))) { if (type instanceof PyClassType) { @@ -189,7 +190,7 @@ public class PyClassImpl extends PyPresentableElementImpl implement if (this == parent) { return true; } - for (PyClass superclass : iterateAncestorClasses()) { + for (PyClass superclass : getAncestorClasses()) { if (parent == superclass) return true; } return false; @@ -243,7 +244,7 @@ public class PyClassImpl extends PyPresentableElementImpl implement if (slots != null) { return slots; } - for (PyClass cls : iterateAncestorClasses()) { + for (PyClass cls : getAncestorClasses()) { slots = ((PyClassImpl)cls).getOwnSlots(); if (slots != null) { return slots; @@ -549,7 +550,7 @@ public class PyClassImpl extends PyPresentableElementImpl implement if (findMethodByName(name, false) != null || findClassAttribute(name, false) != null) { return null; } - for (PyClass aClass : iterateAncestorClasses()) { + for (PyClass aClass : getAncestorClasses()) { final Property ancestorProperty = ((PyClassImpl)aClass).findLocalProperty(name); if (ancestorProperty != null) { return ancestorProperty; @@ -621,7 +622,7 @@ public class PyClassImpl extends PyPresentableElementImpl implement if (name != null && (findMethodByName(name, false) != null || findClassAttribute(name, false) != null)) { return null; } - for (PyClass cls : iterateAncestorClasses()) { + for (PyClass cls : getAncestorClasses()) { final Property property = ((PyClassImpl)cls).processPropertiesInClass(name, filter, useAdvancedSyntax); if (property != null) { return property; @@ -713,7 +714,7 @@ public class PyClassImpl extends PyPresentableElementImpl implement PyFunction[] methods = getMethods(); if (!ContainerUtil.process(methods, processor)) return false; if (inherited) { - for (PyClass ancestor : iterateAncestorClasses()) { + for (PyClass ancestor : getAncestorClasses()) { if (skipClassObj && PyNames.FAKE_OLD_BASE.equals(ancestor.getName())) { continue; } @@ -729,7 +730,7 @@ public class PyClassImpl extends PyPresentableElementImpl implement PyClass[] nestedClasses = getNestedClasses(); if (!ContainerUtil.process(nestedClasses, processor)) return false; if (inherited) { - for (PyClass ancestor : iterateAncestorClasses()) { + for (PyClass ancestor : getAncestorClasses()) { if (!((PyClassImpl)ancestor).visitNestedClasses(processor, false)) { return false; } @@ -742,7 +743,7 @@ public class PyClassImpl extends PyPresentableElementImpl implement List methods = getClassAttributes(); if (!ContainerUtil.process(methods, processor)) return false; if (inherited) { - for (PyClass ancestor : iterateAncestorClasses()) { + for (PyClass ancestor : getAncestorClasses()) { if (!ancestor.visitClassAttributes(processor, false)) { return false; } @@ -797,7 +798,7 @@ public class PyClassImpl extends PyPresentableElementImpl implement } } if (inherited) { - for (PyClass ancestor : iterateAncestorClasses()) { + for (PyClass ancestor : getAncestorClasses()) { final PyTargetExpression attribute = ancestor.findInstanceAttribute(name, false); if (attribute != null) { return attribute; diff --git a/python/src/com/jetbrains/python/psi/impl/references/PyReferenceImpl.java b/python/src/com/jetbrains/python/psi/impl/references/PyReferenceImpl.java index 1d5fd6ddc87a..14184a573b4f 100644 --- a/python/src/com/jetbrains/python/psi/impl/references/PyReferenceImpl.java +++ b/python/src/com/jetbrains/python/psi/impl/references/PyReferenceImpl.java @@ -125,7 +125,7 @@ public class PyReferenceImpl implements PsiReferenceEx, PsiPolyVariantReference it.set(rrr.replace(init)); } else { // init not found; maybe it's ancestor's - for (PyClass ancestor : cls.iterateAncestorClasses()) { + for (PyClass ancestor : cls.getAncestorClasses()) { init = ancestor.findMethodByName(PyNames.INIT, false); if (init != null) { // add to results as low priority diff --git a/python/src/com/jetbrains/python/psi/search/PySuperMethodsSearch.java b/python/src/com/jetbrains/python/psi/search/PySuperMethodsSearch.java index 1186ba2499ee..895e7f08c86a 100644 --- a/python/src/com/jetbrains/python/psi/search/PySuperMethodsSearch.java +++ b/python/src/com/jetbrains/python/psi/search/PySuperMethodsSearch.java @@ -18,7 +18,7 @@ public class PySuperMethodsSearch extends ExtensibleQueryFactory superMethods, PyClass containingClass) { - for (PyClass ancestor : containingClass.iterateAncestorClasses()) { + for (PyClass ancestor : containingClass.getAncestorClasses()) { for (PsiElement method : superMethods) { if (ancestor.equals(((PyFunction)method).getContainingClass())) return (PyFunction)method; diff --git a/python/src/com/jetbrains/python/psi/search/PySuperMethodsSearchExecutor.java b/python/src/com/jetbrains/python/psi/search/PySuperMethodsSearchExecutor.java index 81a6318a383d..1a1afe58d570 100644 --- a/python/src/com/jetbrains/python/psi/search/PySuperMethodsSearchExecutor.java +++ b/python/src/com/jetbrains/python/psi/search/PySuperMethodsSearchExecutor.java @@ -19,7 +19,7 @@ public class PySuperMethodsSearchExecutor implements QueryExecutor foundMethodContainingClasses = new HashSet(); if (name != null && containingClass != null) { - for (PyClass superClass : containingClass.iterateAncestorClasses()) { + for (PyClass superClass : containingClass.getAncestorClasses()) { if (!queryParameters.isDeepSearch()) { boolean isAlreadyFound = false; for (PyClass alreadyFound : foundMethodContainingClasses) { diff --git a/python/src/com/jetbrains/python/psi/types/PyClassTypeImpl.java b/python/src/com/jetbrains/python/psi/types/PyClassTypeImpl.java index 1974fe5e4ad7..0b24f8100746 100644 --- a/python/src/com/jetbrains/python/psi/types/PyClassTypeImpl.java +++ b/python/src/com/jetbrains/python/psi/types/PyClassTypeImpl.java @@ -155,7 +155,7 @@ public class PyClassTypeImpl extends UserDataHolderBase implements PyClassType { PyType first_arg_type = context.getType(first_arg); if (first_arg_type instanceof PyClassType) { PyClass derived_class = ((PyClassType)first_arg_type).getPyClass(); - final Iterator base_it = derived_class.iterateAncestorClasses().iterator(); + final Iterator base_it = derived_class.getAncestorClasses().iterator(); if (base_it.hasNext()) { return new PyClassTypeImpl(base_it.next(), true).resolveMember(name, location, direction, resolveContext); } diff --git a/python/src/com/jetbrains/python/structureView/PyStructureViewElement.java b/python/src/com/jetbrains/python/structureView/PyStructureViewElement.java index a976ada169d7..ca3dba6c5657 100644 --- a/python/src/com/jetbrains/python/structureView/PyStructureViewElement.java +++ b/python/src/com/jetbrains/python/structureView/PyStructureViewElement.java @@ -111,7 +111,7 @@ public class PyStructureViewElement implements StructureViewTreeElement { children.add(createChild(e, getElementVisibility(e), false, elementIsField(e))); } if (myElement instanceof PyClass && myElement.isValid()) { - for (PyClass c : ((PyClass)myElement).iterateAncestorClasses()) { + for (PyClass c : ((PyClass)myElement).getAncestorClasses()) { for (PyElement e: getElementChildren(c)) { final StructureViewTreeElement inherited = createChild(e, getElementVisibility(e), true, elementIsField(e)); if (!children.contains(inherited)) { diff --git a/python/testSrc/com/jetbrains/python/PyStubsTest.java b/python/testSrc/com/jetbrains/python/PyStubsTest.java index e7c46c75a1c8..11d6714025d7 100644 --- a/python/testSrc/com/jetbrains/python/PyStubsTest.java +++ b/python/testSrc/com/jetbrains/python/PyStubsTest.java @@ -347,7 +347,7 @@ public class PyStubsTest extends PyTestCase { public void testBuiltinAncestor() { final PyFileImpl file = (PyFileImpl) getTestFile(); final PyClass pyClass = file.getTopLevelClasses().get(0); - final PyClass cls = pyClass.iterateAncestorClasses().iterator().next(); + final PyClass cls = pyClass.getAncestorClasses().iterator().next(); assertNotNull(cls); assertNotParsed(file); }