diff --git a/python/python-psi-api/src/com/jetbrains/python/psi/impl/PyVersionCheck.kt b/python/python-psi-api/src/com/jetbrains/python/psi/impl/PyVersionCheck.kt index 4abbcbc73a49..f232f560fdd8 100644 --- a/python/python-psi-api/src/com/jetbrains/python/psi/impl/PyVersionCheck.kt +++ b/python/python-psi-api/src/com/jetbrains/python/psi/impl/PyVersionCheck.kt @@ -6,8 +6,11 @@ import com.google.common.collect.Range import com.intellij.openapi.util.Version import com.intellij.psi.util.QualifiedName import com.jetbrains.python.PyTokenTypes -import com.jetbrains.python.ast.* -import com.jetbrains.python.ast.impl.PyPsiUtilsCore +import com.jetbrains.python.psi.PyBinaryExpression +import com.jetbrains.python.psi.PyExpression +import com.jetbrains.python.psi.PyNumericLiteralExpression +import com.jetbrains.python.psi.PyReferenceExpression +import com.jetbrains.python.psi.PyTupleExpression import org.jetbrains.annotations.ApiStatus import java.math.BigInteger @@ -19,8 +22,8 @@ object PyVersionCheck { * @see Version and Platform Checks */ @JvmStatic - fun convertToVersionRanges(expression: PyAstExpression): ImmutableRangeSet? { - val binaryExpr = PyPsiUtilsCore.flattenParens(expression) as? PyAstBinaryExpression ?: return null + fun convertToVersionRanges(expression: PyExpression): ImmutableRangeSet? { + val binaryExpr = PyPsiUtils.flattenParens(expression) as? PyBinaryExpression ?: return null when (val operator = binaryExpr.operator) { PyTokenTypes.AND_KEYWORD, PyTokenTypes.OR_KEYWORD -> { val rhs = binaryExpr.rightExpression ?: return null @@ -33,10 +36,10 @@ object PyVersionCheck { } PyTokenTypes.LT, PyTokenTypes.GT, PyTokenTypes.LE, PyTokenTypes.GE -> { - val refExpr = PyPsiUtilsCore.flattenParens(binaryExpr.leftExpression) as? PyAstReferenceExpression ?: return null + val refExpr = PyPsiUtils.flattenParens(binaryExpr.leftExpression) as? PyReferenceExpression ?: return null if (SYS_VERSION_INFO_QUALIFIED_NAME != refExpr.asQualifiedName()) return null - val tuple = PyPsiUtilsCore.flattenParens(binaryExpr.rightExpression) as? PyAstTupleExpression<*> ?: return null + val tuple = PyPsiUtils.flattenParens(binaryExpr.rightExpression) as? PyTupleExpression ?: return null val version = evaluateVersion(tuple) ?: return null val range = when (operator) { @@ -55,7 +58,7 @@ object PyVersionCheck { private val SYS_VERSION_INFO_QUALIFIED_NAME = QualifiedName.fromDottedString("sys.version_info") - private fun evaluateVersion(versionTuple: PyAstTupleExpression<*>): Version? { + private fun evaluateVersion(versionTuple: PyTupleExpression): Version? { val elements = versionTuple.elements if (elements.size != 1 && elements.size != 2) { return null @@ -78,8 +81,8 @@ object PyVersionCheck { return Version(major, minor, 0) } - private fun evaluateNumber(expression: PyAstExpression?): Int? { - if (expression !is PyAstNumericLiteralExpression) return null + private fun evaluateNumber(expression: PyExpression?): Int? { + if (expression !is PyNumericLiteralExpression) return null if (!expression.isIntegerLiteral) return null val value = expression.bigIntegerValue val intValue = value.toInt()