Add operator 'rem' as extension to BigInteger
#KT-14650 Fixed Note that after this change behaviour of '%' on BigInteger is changed, now it works like a proper remainder
This commit is contained in:
+11
@@ -0,0 +1,11 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
|
||||
// LANGUAGE_VERSION: 1.0
|
||||
// FULL_JDK
|
||||
|
||||
import java.math.BigInteger
|
||||
|
||||
fun box(): String {
|
||||
val m = BigInteger.valueOf(-2) % BigInteger.valueOf(3)
|
||||
return if (m != BigInteger.valueOf(1)) "Fail: BigInteger(-2) mod BigInteger(3) == $m" else "OK"
|
||||
}
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
public final class PercentAsModOnBigIntegerWithoutRemKt {
|
||||
public final static @org.jetbrains.annotations.NotNull method box(): java.lang.String
|
||||
}
|
||||
+6
@@ -10547,6 +10547,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("percentAsModOnBigIntegerWithoutRem.kt")
|
||||
public void testPercentAsModOnBigIntegerWithoutRem() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/operatorConventions/percentAsModOnBigIntegerWithoutRem.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("remAssignmentOperation.kt")
|
||||
public void testRemAssignmentOperation() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/operatorConventions/remAssignmentOperation.kt");
|
||||
|
||||
@@ -10547,6 +10547,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("percentAsModOnBigIntegerWithoutRem.kt")
|
||||
public void testPercentAsModOnBigIntegerWithoutRem() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/operatorConventions/percentAsModOnBigIntegerWithoutRem.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("remAssignmentOperation.kt")
|
||||
public void testRemAssignmentOperation() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/operatorConventions/remAssignmentOperation.kt");
|
||||
|
||||
@@ -10547,6 +10547,12 @@ public class LightAnalysisModeCodegenTestGenerated extends AbstractLightAnalysis
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("percentAsModOnBigIntegerWithoutRem.kt")
|
||||
public void testPercentAsModOnBigIntegerWithoutRem() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/operatorConventions/percentAsModOnBigIntegerWithoutRem.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("remAssignmentOperation.kt")
|
||||
public void testRemAssignmentOperation() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/operatorConventions/remAssignmentOperation.kt");
|
||||
|
||||
Reference in New Issue
Block a user