Fix isValidJavaFqName

This commit is contained in:
Pavel Mikhailovskii
2023-01-04 11:28:08 +00:00
committed by Space Team
parent 4f3add8f7a
commit fed86a57e3
2 changed files with 10 additions and 2 deletions
@@ -54,12 +54,19 @@ public class FqNameTest {
public void isValidJavaFqName() {
Assert.assertTrue(FqNamesUtilKt.isValidJavaFqName(""));
Assert.assertTrue(FqNamesUtilKt.isValidJavaFqName("a"));
Assert.assertTrue(FqNamesUtilKt.isValidJavaFqName("1"));
Assert.assertTrue(FqNamesUtilKt.isValidJavaFqName("a1"));
Assert.assertTrue(FqNamesUtilKt.isValidJavaFqName("a.a"));
Assert.assertTrue(FqNamesUtilKt.isValidJavaFqName("org.jetbrains"));
Assert.assertTrue(FqNamesUtilKt.isValidJavaFqName("$"));
Assert.assertTrue(FqNamesUtilKt.isValidJavaFqName("_"));
Assert.assertTrue(FqNamesUtilKt.isValidJavaFqName("org.A$B"));
Assert.assertTrue(FqNamesUtilKt.isValidJavaFqName("晴れの日"));
Assert.assertFalse(FqNamesUtilKt.isValidJavaFqName(" "));
Assert.assertFalse(FqNamesUtilKt.isValidJavaFqName(" a"));
Assert.assertFalse(FqNamesUtilKt.isValidJavaFqName("a "));
Assert.assertFalse(FqNamesUtilKt.isValidJavaFqName("1"));
Assert.assertFalse(FqNamesUtilKt.isValidJavaFqName("1a"));
Assert.assertFalse(FqNamesUtilKt.isValidJavaFqName("."));
Assert.assertFalse(FqNamesUtilKt.isValidJavaFqName(".."));
Assert.assertFalse(FqNamesUtilKt.isValidJavaFqName("a."));
@@ -69,5 +76,6 @@ public class FqNameTest {
Assert.assertFalse(FqNamesUtilKt.isValidJavaFqName("a.b."));
Assert.assertFalse(FqNamesUtilKt.isValidJavaFqName("a.b...)"));
Assert.assertFalse(FqNamesUtilKt.isValidJavaFqName("a.b.<special>"));
Assert.assertFalse(FqNamesUtilKt.isValidJavaFqName("😀"));
}
}
@@ -55,7 +55,7 @@ fun isValidJavaFqName(qualifiedName: String?): Boolean {
for (c in qualifiedName) {
when (state) {
State.BEGINNING, State.AFTER_DOT -> {
if (!Character.isJavaIdentifierPart(c)) return false
if (!Character.isJavaIdentifierStart(c)) return false
state = State.MIDDLE
}
State.MIDDLE -> {