From fc19442b480d7c338f6d334cc7a03004e8cfcc7e Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Tue, 6 Jul 2010 16:09:14 +0400 Subject: [PATCH] PyClass.processDeclarations() is its own method, not inherited from PsiElement --- .../jetbrains/python/psi/impl/PyClassImpl.java | 16 +++++----------- .../jetbrains/python/psi/types/PyClassType.java | 5 +++-- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/python/src/com/jetbrains/python/psi/impl/PyClassImpl.java b/python/src/com/jetbrains/python/psi/impl/PyClassImpl.java index 4a73524fe87f..b3b4f3bde784 100644 --- a/python/src/com/jetbrains/python/psi/impl/PyClassImpl.java +++ b/python/src/com/jetbrains/python/psi/impl/PyClassImpl.java @@ -720,19 +720,14 @@ public class PyClassImpl extends PyPresentableElementImpl implement return false; } - @Override - public boolean processDeclarations(@NotNull PsiScopeProcessor processor, - @NotNull ResolveState substitutor, - PsiElement lastParent, - @NotNull PsiElement place) - { + public void processDeclarations(@NotNull PsiScopeProcessor processor) { // class level final PyClassStub stub = getStub(); if (stub != null) { final List children = stub.getChildrenStubs(); for (StubElement child : children) { if (!processor.execute(child.getPsi(), ResolveState.initial())) { - return false; + return; } } } @@ -743,14 +738,13 @@ public class PyClassImpl extends PyPresentableElementImpl implement // instance level for(PyTargetExpression expr: getInstanceAttributes()) { - if (expr == lastParent) continue; - if (!processor.execute(expr, substitutor)) return false; + if (!processor.execute(expr, ResolveState.initial())) return; } // if (processor instanceof VariantsProcessor) { - return true; + return; } - return processor.execute(this, substitutor); + processor.execute(this, ResolveState.initial()); } public int getTextOffset() { diff --git a/python/src/com/jetbrains/python/psi/types/PyClassType.java b/python/src/com/jetbrains/python/psi/types/PyClassType.java index 78fbb4a3e029..311e97cd216f 100644 --- a/python/src/com/jetbrains/python/psi/types/PyClassType.java +++ b/python/src/com/jetbrains/python/psi/types/PyClassType.java @@ -12,6 +12,7 @@ import com.intellij.util.SmartList; import com.jetbrains.python.codeInsight.PyDynamicMember; import com.jetbrains.python.psi.*; import com.jetbrains.python.psi.impl.PyBuiltinCache; +import com.jetbrains.python.psi.impl.PyClassImpl; import com.jetbrains.python.psi.patterns.ParentMatcher; import com.jetbrains.python.psi.resolve.PyResolveUtil; import com.jetbrains.python.psi.resolve.ResolveProcessor; @@ -134,7 +135,7 @@ public class PyClassType implements PyType { @Nullable private static PsiElement resolveInner(PyClass aClass, String name) { ResolveProcessor processor = new ResolveProcessor(name); - aClass.processDeclarations(processor, ResolveState.initial(), null, aClass); // our members are strictly within us. + ((PyClassImpl) aClass).processDeclarations(processor); // our members are strictly within us. final PsiElement resolveResult = processor.getResult(); //final PsiElement resolveResult = PyResolveUtil.treeWalkUp(new PyResolveUtil.ResolveProcessor(name), myClass, null, null); if (resolveResult != null && resolveResult != aClass) { @@ -162,7 +163,7 @@ public class PyClassType implements PyType { final VariantsProcessor processor = new VariantsProcessor( referenceExpression, new PyResolveUtil.FilterNotInstance(myClass), underscoreFilter ); - myClass.processDeclarations(processor, ResolveState.initial(), null, referenceExpression); + ((PyClassImpl) myClass).processDeclarations(processor); if (namesAlready != null) { for (LookupElement le : processor.getResultList()) { String name = le.getLookupString();