mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
PyDynamicMember -> python-psi-api
This commit is contained in:
+6
-7
@@ -1,14 +1,13 @@
|
||||
package com.jetbrains.python.codeInsight;
|
||||
|
||||
import com.intellij.extapi.psi.ASTWrapperPsiElement;
|
||||
import com.intellij.icons.AllIcons;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.util.Function;
|
||||
import com.jetbrains.python.psi.PyClass;
|
||||
import com.jetbrains.python.psi.PyExpression;
|
||||
import com.jetbrains.python.psi.PyFunction;
|
||||
import com.jetbrains.python.psi.impl.PyElementImpl;
|
||||
import com.jetbrains.python.psi.stubs.PyClassNameIndex;
|
||||
import com.jetbrains.python.psi.types.PyClassTypeImpl;
|
||||
import com.jetbrains.python.psi.PyPsiFacade;
|
||||
import com.jetbrains.python.psi.PyTypedElement;
|
||||
import com.jetbrains.python.psi.types.PyType;
|
||||
import com.jetbrains.python.psi.types.TypeEvalContext;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -131,7 +130,7 @@ public class PyDynamicMember {
|
||||
return myTarget;
|
||||
}
|
||||
PyClass targetClass =
|
||||
myTypeName != null && myTypeName.indexOf('.') > 0 ? PyClassNameIndex.findClass(myTypeName, context.getProject()) : null;
|
||||
myTypeName != null && myTypeName.indexOf('.') > 0 ? PyPsiFacade.getInstance(context.getProject()).findClass(myTypeName) : null;
|
||||
final PsiElement resolveTarget = findResolveTarget(context);
|
||||
if (resolveTarget instanceof PyFunction) {
|
||||
return resolveTarget;
|
||||
@@ -168,7 +167,7 @@ public class PyDynamicMember {
|
||||
return myFunction;
|
||||
}
|
||||
|
||||
private class MyInstanceElement extends PyElementImpl implements PyExpression {
|
||||
private class MyInstanceElement extends ASTWrapperPsiElement implements PyTypedElement {
|
||||
private final PyClass myClass;
|
||||
private final PsiElement myContext;
|
||||
|
||||
@@ -182,7 +181,7 @@ public class PyDynamicMember {
|
||||
if (myTypeCallback != null) {
|
||||
return myTypeCallback.fun(myContext);
|
||||
}
|
||||
return new PyClassTypeImpl(myClass, !myResolveToInstance);
|
||||
return PyPsiFacade.getInstance(getProject()).createClassType(myClass, !myResolveToInstance);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import com.intellij.openapi.components.ServiceManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.jetbrains.python.psi.impl.PyQualifiedName;
|
||||
import com.jetbrains.python.psi.resolve.QualifiedNameResolver;
|
||||
import com.jetbrains.python.psi.types.PyClassType;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
@@ -20,4 +21,5 @@ public abstract class PyPsiFacade {
|
||||
@Nullable
|
||||
public abstract PyClass findClass(String qName);
|
||||
|
||||
public abstract PyClassType createClassType(PyClass pyClass, boolean isDefinition);
|
||||
}
|
||||
|
||||
@@ -6,6 +6,8 @@ import com.jetbrains.python.psi.PyPsiFacade;
|
||||
import com.jetbrains.python.psi.resolve.QualifiedNameResolver;
|
||||
import com.jetbrains.python.psi.resolve.QualifiedNameResolverImpl;
|
||||
import com.jetbrains.python.psi.stubs.PyClassNameIndex;
|
||||
import com.jetbrains.python.psi.types.PyClassType;
|
||||
import com.jetbrains.python.psi.types.PyClassTypeImpl;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
@@ -33,4 +35,9 @@ public class PyPsiFacadeImpl extends PyPsiFacade {
|
||||
public PyClass findClass(String qName) {
|
||||
return PyClassNameIndex.findClass(qName, myProject);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PyClassType createClassType(PyClass pyClass, boolean isDefinition) {
|
||||
return new PyClassTypeImpl(pyClass, isDefinition);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user