mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Use constants for names of the 'numbers' classes
This commit is contained in:
@@ -106,10 +106,11 @@ public class PyNames {
|
||||
public static final String SEQUENCE = "Sequence";
|
||||
public static final String MAPPING = "Mapping";
|
||||
|
||||
public static final String COMPLEX = "Complex";
|
||||
public static final String REAL = "Real";
|
||||
public static final String RATIONAL = "Rational";
|
||||
public static final String INTEGRAL = "Integral";
|
||||
public static final String ABC_NUMBER = "Number";
|
||||
public static final String ABC_COMPLEX = "Complex";
|
||||
public static final String ABC_REAL = "Real";
|
||||
public static final String ABC_RATIONAL = "Rational";
|
||||
public static final String ABC_INTEGRAL = "Integral";
|
||||
|
||||
public static final String CONTAINS = "__contains__";
|
||||
public static final String HASH = "__hash__";
|
||||
@@ -386,7 +387,8 @@ public class PyNames {
|
||||
);
|
||||
|
||||
public static Set<String> BuiltinInterfaces = ImmutableSet.of(
|
||||
CALLABLE, HASHABLE, ITERABLE, ITERATOR, SIZED, CONTAINER, SEQUENCE, MAPPING, COMPLEX, REAL, RATIONAL, INTEGRAL
|
||||
CALLABLE, HASHABLE, ITERABLE, ITERATOR, SIZED, CONTAINER, SEQUENCE, MAPPING, ABC_COMPLEX, ABC_REAL, ABC_RATIONAL, ABC_INTEGRAL,
|
||||
ABC_NUMBER
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
@@ -68,13 +68,13 @@ public class PyABCUtil {
|
||||
if (PyNames.MAPPING.equals(superClassName)) {
|
||||
return isSized && hasIter && isContainer && hasGetItem && hasMethod(subClass, PyNames.KEYS, inherited);
|
||||
}
|
||||
if (PyNames.COMPLEX.equals(superClassName)) {
|
||||
if (PyNames.ABC_COMPLEX.equals(superClassName)) {
|
||||
return hasMethod(subClass, "__complex__", inherited);
|
||||
}
|
||||
if (PyNames.REAL.equals(superClassName)) {
|
||||
if (PyNames.ABC_REAL.equals(superClassName)) {
|
||||
return hasMethod(subClass, "__float__", inherited);
|
||||
}
|
||||
if (PyNames.INTEGRAL.equals(superClassName)) {
|
||||
if (PyNames.ABC_INTEGRAL.equals(superClassName)) {
|
||||
return hasMethod(subClass, "__int__", inherited);
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -193,10 +193,10 @@ public class PyTypeChecker {
|
||||
if (superName == null || subName == null ||
|
||||
superName.equals(subName) ||
|
||||
("int".equals(superName) && subIsBool) ||
|
||||
(("long".equals(superName) || "Integral".equals(superName)) && (subIsBool || subIsInt)) ||
|
||||
(("float".equals(superName) || "Real".equals(superName)) && (subIsBool || subIsInt || subIsLong)) ||
|
||||
(("complex".equals(superName) || "Complex".equals(superName)) && (subIsBool || subIsInt || subIsLong || subIsFloat)) ||
|
||||
("Number".equals(superName) && (subIsBool || subIsInt || subIsLong || subIsFloat || subIsComplex))) {
|
||||
(("long".equals(superName) || PyNames.ABC_INTEGRAL.equals(superName)) && (subIsBool || subIsInt)) ||
|
||||
(("float".equals(superName) || PyNames.ABC_REAL.equals(superName)) && (subIsBool || subIsInt || subIsLong)) ||
|
||||
(("complex".equals(superName) || PyNames.ABC_COMPLEX.equals(superName)) && (subIsBool || subIsInt || subIsLong || subIsFloat)) ||
|
||||
(PyNames.ABC_NUMBER.equals(superName) && (subIsBool || subIsInt || subIsLong || subIsFloat || subIsComplex))) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user