mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
PyClass.processDeclarations() is its own method, not inherited from PsiElement
This commit is contained in:
@@ -720,19 +720,14 @@ public class PyClassImpl extends PyPresentableElementImpl<PyClassStub> 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<StubElement> 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<PyClassStub> 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() {
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user