New J2K: correctly convert compound Java assignment expression
#KT-35476 fixed
This commit is contained in:
+2
-2
@@ -6,8 +6,8 @@
|
|||||||
package org.jetbrains.kotlin.nj2k.conversions
|
package org.jetbrains.kotlin.nj2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext
|
import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext
|
||||||
|
import org.jetbrains.kotlin.nj2k.parenthesizeIfBinaryExpression
|
||||||
import org.jetbrains.kotlin.nj2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
|
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||||
|
|
||||||
class AssignmentExpressionUnfoldingConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) {
|
class AssignmentExpressionUnfoldingConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) {
|
||||||
@@ -141,7 +141,7 @@ class AssignmentExpressionUnfoldingConversion(context: NewJ2kConverterContext) :
|
|||||||
field,
|
field,
|
||||||
JKBinaryExpression(
|
JKBinaryExpression(
|
||||||
field.copyTreeAndDetach(),
|
field.copyTreeAndDetach(),
|
||||||
expression,
|
expression.parenthesizeIfBinaryExpression(),
|
||||||
JKKtOperatorImpl(
|
JKKtOperatorImpl(
|
||||||
onlyJavaAssignTokensToKotlinOnes[operator.token]!!,
|
onlyJavaAssignTokensToKotlinOnes[operator.token]!!,
|
||||||
operator.returnType
|
operator.returnType
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
public class J {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
boolean a = false, b = true, c = false;
|
||||||
|
c &= a || b;
|
||||||
|
System.out.print(c);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
object J {
|
||||||
|
@JvmStatic
|
||||||
|
fun main(args: Array<String>) {
|
||||||
|
val a = false
|
||||||
|
val b = true
|
||||||
|
var c = false
|
||||||
|
c = c and (a || b)
|
||||||
|
print(c)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
public class J {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
int a = 0, b = 1, c = 2;
|
||||||
|
c ^= a & b;
|
||||||
|
System.out.print(c);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
object J {
|
||||||
|
@JvmStatic
|
||||||
|
fun main(args: Array<String>) {
|
||||||
|
val a = 0
|
||||||
|
val b = 1
|
||||||
|
var c = 2
|
||||||
|
c = c xor (a and b)
|
||||||
|
print(c)
|
||||||
|
}
|
||||||
|
}
|
||||||
+10
@@ -441,6 +441,16 @@ public class NewJavaToKotlinConverterSingleFileTestGenerated extends AbstractNew
|
|||||||
runTest("nj2k/testData/newJ2k/assignmentExpression/bitOperationPriorityComments.java");
|
runTest("nj2k/testData/newJ2k/assignmentExpression/bitOperationPriorityComments.java");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("compoundAssignmentPriority.java")
|
||||||
|
public void testCompoundAssignmentPriority() throws Exception {
|
||||||
|
runTest("nj2k/testData/newJ2k/assignmentExpression/compoundAssignmentPriority.java");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("compoundAssignmentPriority2.java")
|
||||||
|
public void testCompoundAssignmentPriority2() throws Exception {
|
||||||
|
runTest("nj2k/testData/newJ2k/assignmentExpression/compoundAssignmentPriority2.java");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("declarationAssignmentsChain.java")
|
@TestMetadata("declarationAssignmentsChain.java")
|
||||||
public void testDeclarationAssignmentsChain() throws Exception {
|
public void testDeclarationAssignmentsChain() throws Exception {
|
||||||
runTest("nj2k/testData/newJ2k/assignmentExpression/declarationAssignmentsChain.java");
|
runTest("nj2k/testData/newJ2k/assignmentExpression/declarationAssignmentsChain.java");
|
||||||
|
|||||||
Reference in New Issue
Block a user