Added common ancestor PyClassLikeType of PyClassType and PyJavaClassType

This commit is contained in:
Andrey Vlasovskikh
2013-04-17 16:55:02 +04:00
parent 4cab00fe4a
commit 55e1379cb0
5 changed files with 68 additions and 47 deletions
@@ -9,7 +9,7 @@ import com.intellij.util.ArrayFactory;
import com.intellij.util.Processor;
import com.jetbrains.python.codeInsight.controlflow.ScopeOwner;
import com.jetbrains.python.psi.stubs.PyClassStub;
import com.jetbrains.python.psi.types.PyClassType;
import com.jetbrains.python.psi.types.PyClassLikeType;
import com.jetbrains.python.psi.types.TypeEvalContext;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
@@ -45,7 +45,7 @@ public interface PyClass extends PsiNameIdentifierOwner, PyStatement, NameDefine
PsiElement[] getSuperClassElements();
@NotNull
List<PyClassType> getSuperClassTypes(@NotNull TypeEvalContext context);
List<PyClassLikeType> getSuperClassTypes(@NotNull TypeEvalContext context);
@NotNull
PyClass[] getSuperClasses();
@@ -122,7 +122,7 @@ public interface PyClass extends PsiNameIdentifierOwner, PyStatement, NameDefine
* Get a list of all ancestor types.
*/
@NotNull
List<PyClassType> getAncestorTypes(@NotNull TypeEvalContext context);
List<PyClassLikeType> getAncestorTypes(@NotNull TypeEvalContext context);
/**
* Return the method resolution order list for this class.
@@ -0,0 +1,17 @@
package com.jetbrains.python.psi.types;
import org.jetbrains.annotations.Nullable;
/**
* @author vlan
*/
public interface PyClassLikeType extends PyCallableType {
boolean isDefinition();
PyClassLikeType toInstance();
@Nullable
String getClassQName();
boolean isValid();
}
@@ -3,21 +3,11 @@ package com.jetbrains.python.psi.types;
import com.intellij.openapi.util.UserDataHolder;
import com.jetbrains.python.psi.PyClass;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* @author yole
*/
public interface PyClassType extends PyCallableType, UserDataHolder {
public interface PyClassType extends PyClassLikeType, UserDataHolder {
@NotNull
PyClass getPyClass();
boolean isDefinition();
PyClassType toInstance();
@Nullable
String getClassQName();
boolean isValid();
}