Uast Java, Kotlin: Support all binary operators in Uast
This commit is contained in:
@@ -119,6 +119,6 @@ class UastBinaryOperator(override val text: String): UastOperator {
|
||||
val SHIFT_RIGHT_ASSIGN = UastBinaryOperator(">>=")
|
||||
|
||||
@JvmField
|
||||
val BITWISE_SHIFT_RIGHT_ASSIGN = UastBinaryOperator(">>>=")
|
||||
val UNSIGNED_SHIFT_RIGHT_ASSIGN = UastBinaryOperator(">>>=")
|
||||
}
|
||||
}
|
||||
@@ -44,6 +44,7 @@ internal fun PsiModifierListOwner.getVisibility(): UastVisibility {
|
||||
}
|
||||
|
||||
internal fun IElementType.getOperatorType() = when (this) {
|
||||
JavaTokenType.EQ -> UastBinaryOperator.ASSIGN
|
||||
JavaTokenType.PLUS -> UastBinaryOperator.PLUS
|
||||
JavaTokenType.MINUS -> UastBinaryOperator.MINUS
|
||||
JavaTokenType.ASTERISK -> UastBinaryOperator.MULT
|
||||
@@ -61,6 +62,16 @@ internal fun IElementType.getOperatorType() = when (this) {
|
||||
JavaTokenType.LTLT -> UastBinaryOperator.SHIFT_LEFT
|
||||
JavaTokenType.GTGT -> UastBinaryOperator.SHIFT_RIGHT
|
||||
JavaTokenType.GTGTGT -> UastBinaryOperator.BITWISE_SHIFT_RIGHT
|
||||
JavaTokenType.PLUSEQ -> UastBinaryOperator.PLUS_ASSIGN
|
||||
JavaTokenType.MINUSEQ -> UastBinaryOperator.MINUS_ASSIGN
|
||||
JavaTokenType.ASTERISKEQ -> UastBinaryOperator.MULTIPLY_ASSIGN
|
||||
JavaTokenType.DIVEQ -> UastBinaryOperator.DIVIDE_ASSIGN
|
||||
JavaTokenType.ANDEQ -> UastBinaryOperator.AND_ASSIGN
|
||||
JavaTokenType.XOREQ -> UastBinaryOperator.XOR_ASSIGN
|
||||
JavaTokenType.OREQ -> UastBinaryOperator.OR_ASSIGN
|
||||
JavaTokenType.LTLTEQ -> UastBinaryOperator.SHIFT_LEFT_ASSIGN
|
||||
JavaTokenType.GTGTEQ -> UastBinaryOperator.SHIFT_RIGHT_ASSIGN
|
||||
JavaTokenType.GTGTGTEQ -> UastBinaryOperator.UNSIGNED_SHIFT_RIGHT_ASSIGN
|
||||
else -> UastBinaryOperator.UNKNOWN
|
||||
}
|
||||
|
||||
|
||||
+11
@@ -30,11 +30,17 @@ class KotlinUBinaryExpression(
|
||||
override val rightOperand by lz { KotlinConverter.convertOrEmpty(psi.right, this) }
|
||||
|
||||
override val operator = when (psi.operationToken) {
|
||||
KtTokens.EQ -> UastBinaryOperator.ASSIGN
|
||||
KtTokens.PLUS -> UastBinaryOperator.PLUS
|
||||
KtTokens.MINUS -> UastBinaryOperator.MINUS
|
||||
KtTokens.MUL -> UastBinaryOperator.MULT
|
||||
KtTokens.DIV -> UastBinaryOperator.DIV
|
||||
KtTokens.PERC -> UastBinaryOperator.MOD
|
||||
KtTokens.OROR -> UastBinaryOperator.LOGICAL_OR
|
||||
KtTokens.ANDAND -> UastBinaryOperator.LOGICAL_AND
|
||||
//KtTokens.OR -> UastBinaryOperator.BITWISE_OR
|
||||
//KtTokens.AND -> UastBinaryOperator.BITWISE_AND
|
||||
//KtTokens.XOR -> UastBinaryOperator.BITWISE_XOR
|
||||
KtTokens.EQEQ -> UastBinaryOperator.EQUALS
|
||||
KtTokens.EXCLEQ -> UastBinaryOperator.NOT_EQUALS
|
||||
KtTokens.EQEQEQ -> UastBinaryOperator.IDENTITY_EQUALS
|
||||
@@ -43,6 +49,11 @@ class KotlinUBinaryExpression(
|
||||
KtTokens.GTEQ -> UastBinaryOperator.GREATER_OR_EQUAL
|
||||
KtTokens.LT -> UastBinaryOperator.LESS
|
||||
KtTokens.LTEQ -> UastBinaryOperator.LESS_OR_EQUAL
|
||||
KtTokens.PLUSEQ -> UastBinaryOperator.PLUS_ASSIGN
|
||||
KtTokens.MINUSEQ -> UastBinaryOperator.MINUS_ASSIGN
|
||||
KtTokens.MULTEQ -> UastBinaryOperator.MULTIPLY_ASSIGN
|
||||
KtTokens.DIVEQ -> UastBinaryOperator.DIVIDE_ASSIGN
|
||||
KtTokens.PERCEQ -> UastBinaryOperator.REMAINDER_ASSIGN
|
||||
KtTokens.IN_KEYWORD -> KotlinBinaryOperators.IN
|
||||
KtTokens.NOT_IN -> KotlinBinaryOperators.NOT_IN
|
||||
else -> UastBinaryOperator.UNKNOWN
|
||||
|
||||
Reference in New Issue
Block a user