Fix KT-8091: J2K string with octal escaped chars
This commit is contained in:
@@ -314,6 +314,9 @@ class DefaultExpressionConverter : JavaElementVisitor(), ExpressionConverter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (typeStr == "java.lang.String") {
|
if (typeStr == "java.lang.String") {
|
||||||
|
text = text.replace("\\\\([0-3]?[0-7]{1,2})".toRegex(), {
|
||||||
|
String.format("\\u%04x", Integer.parseInt(it.groupValues[1], 8))
|
||||||
|
})
|
||||||
text = text.replace("\\$([A-Za-z]+|\\{)".toRegex(), "\\\\$0")
|
text = text.replace("\\$([A-Za-z]+|\\{)".toRegex(), "\\\\$0")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
public class A {
|
||||||
|
public String a = "\770123";
|
||||||
|
public String b = "\1110123";
|
||||||
|
public String c = "\3770123";
|
||||||
|
public String d = "\000Text";
|
||||||
|
public String f = "\09";
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
class A {
|
||||||
|
var a = "\u003f0123"
|
||||||
|
var b = "\u00490123"
|
||||||
|
var c = "\u00ff0123"
|
||||||
|
var d = "\u0000Text"
|
||||||
|
var f = "\u00009"
|
||||||
|
}
|
||||||
@@ -3232,6 +3232,12 @@ public class JavaToKotlinConverterForWebDemoTestGenerated extends AbstractJavaTo
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("stringOctalChars.java")
|
||||||
|
public void testStringOctalChars() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("j2k/testData/fileOrElement/literalExpression/stringOctalChars.java");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("trueOrFalse.java")
|
@TestMetadata("trueOrFalse.java")
|
||||||
public void testTrueOrFalse() throws Exception {
|
public void testTrueOrFalse() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("j2k/testData/fileOrElement/literalExpression/trueOrFalse.java");
|
String fileName = KotlinTestUtils.navigationMetadata("j2k/testData/fileOrElement/literalExpression/trueOrFalse.java");
|
||||||
|
|||||||
@@ -3232,6 +3232,12 @@ public class JavaToKotlinConverterSingleFileTestGenerated extends AbstractJavaTo
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("stringOctalChars.java")
|
||||||
|
public void testStringOctalChars() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("j2k/testData/fileOrElement/literalExpression/stringOctalChars.java");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("trueOrFalse.java")
|
@TestMetadata("trueOrFalse.java")
|
||||||
public void testTrueOrFalse() throws Exception {
|
public void testTrueOrFalse() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("j2k/testData/fileOrElement/literalExpression/trueOrFalse.java");
|
String fileName = KotlinTestUtils.navigationMetadata("j2k/testData/fileOrElement/literalExpression/trueOrFalse.java");
|
||||||
|
|||||||
Reference in New Issue
Block a user