mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 23:31:05 +07:00
PY-61639 Introduced PyAstElementVisitor
GitOrigin-RevId: 6ee69922a4ade172dba5abb3ea3b13d01c2b0ebc
This commit is contained in:
committed by
intellij-monorepo-bot
parent
7668d7231b
commit
223013dad1
@@ -12,6 +12,7 @@ import com.intellij.psi.stubs.StubElement;
|
||||
import com.intellij.psi.templateLanguages.OuterLanguageElement;
|
||||
import com.jetbrains.python.PythonFileType;
|
||||
import com.jetbrains.python.PythonLanguage;
|
||||
import com.jetbrains.python.ast.PyAstElementVisitor;
|
||||
import com.jetbrains.python.codeInsight.typing.PyTypingTypeProvider;
|
||||
import com.jetbrains.python.psi.*;
|
||||
import com.jetbrains.python.psi.resolve.PyResolveContext;
|
||||
@@ -53,8 +54,11 @@ public class PyBaseElementImpl<T extends StubElement> extends StubBasedPsiElemen
|
||||
@Override
|
||||
public void accept(@NotNull PsiElementVisitor visitor) {
|
||||
PyUtil.verboseOnly(() -> PyPsiUtils.assertValid(this));
|
||||
if (visitor instanceof PyElementVisitor) {
|
||||
acceptPyVisitor(((PyElementVisitor)visitor));
|
||||
if (visitor instanceof PyElementVisitor pyVisitor) {
|
||||
acceptPyVisitor(pyVisitor);
|
||||
}
|
||||
else if (visitor instanceof PyAstElementVisitor pyVisitor) {
|
||||
acceptPyVisitor(pyVisitor);
|
||||
}
|
||||
else {
|
||||
super.accept(visitor);
|
||||
|
||||
@@ -27,6 +27,7 @@ import com.intellij.util.containers.ContainerUtil;
|
||||
import com.jetbrains.python.PyNames;
|
||||
import com.jetbrains.python.PythonFileType;
|
||||
import com.jetbrains.python.PythonLanguage;
|
||||
import com.jetbrains.python.ast.PyAstElementVisitor;
|
||||
import com.jetbrains.python.ast.PyAstFunction;
|
||||
import com.jetbrains.python.codeInsight.controlflow.ControlFlowCache;
|
||||
import com.jetbrains.python.codeInsight.imports.AddImportHelper;
|
||||
@@ -275,8 +276,11 @@ public class PyFileImpl extends PsiFileBase implements PyFile, PyExpression {
|
||||
@Override
|
||||
public void accept(@NotNull PsiElementVisitor visitor) {
|
||||
if (isAcceptedFor(visitor.getClass())) {
|
||||
if (visitor instanceof PyElementVisitor) {
|
||||
((PyElementVisitor)visitor).visitPyFile(this);
|
||||
if (visitor instanceof PyElementVisitor pyVisitor) {
|
||||
pyVisitor.visitPyFile(this);
|
||||
}
|
||||
else if (visitor instanceof PyAstElementVisitor pyVisitor) {
|
||||
pyVisitor.visitPyFile(this);
|
||||
}
|
||||
else {
|
||||
super.accept(visitor);
|
||||
|
||||
Reference in New Issue
Block a user