From a632bbd48501bf839714d0e980c7e02a81f96013 Mon Sep 17 00:00:00 2001 From: Andrey Vlasovskikh Date: Mon, 28 Oct 2013 16:28:52 +0400 Subject: [PATCH] Use constants for names of the 'numbers' classes --- python/psi-api/src/com/jetbrains/python/PyNames.java | 12 +++++++----- .../com/jetbrains/python/psi/types/PyABCUtil.java | 6 +++--- .../jetbrains/python/psi/types/PyTypeChecker.java | 8 ++++---- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/python/psi-api/src/com/jetbrains/python/PyNames.java b/python/psi-api/src/com/jetbrains/python/PyNames.java index 61e17e1ead28..e93a12099cdb 100644 --- a/python/psi-api/src/com/jetbrains/python/PyNames.java +++ b/python/psi-api/src/com/jetbrains/python/PyNames.java @@ -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 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 ); /** diff --git a/python/src/com/jetbrains/python/psi/types/PyABCUtil.java b/python/src/com/jetbrains/python/psi/types/PyABCUtil.java index 5ab41d9f25f4..3dc72a765646 100644 --- a/python/src/com/jetbrains/python/psi/types/PyABCUtil.java +++ b/python/src/com/jetbrains/python/psi/types/PyABCUtil.java @@ -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; diff --git a/python/src/com/jetbrains/python/psi/types/PyTypeChecker.java b/python/src/com/jetbrains/python/psi/types/PyTypeChecker.java index 4b73781a00fc..5ba88b8ecbb0 100644 --- a/python/src/com/jetbrains/python/psi/types/PyTypeChecker.java +++ b/python/src/com/jetbrains/python/psi/types/PyTypeChecker.java @@ -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;