Proper checking for a qualified name

When i18n plugin is enabled, it looks for classes like "java.lang.Object...)" while highlighting annotations.xml

EA-43709 - IAE: NameUtils.requireIdentifier
This commit is contained in:
Andrey Breslav
2013-03-30 17:20:42 +04:00
parent 4c3f8ff633
commit d42a9f37a3
5 changed files with 59 additions and 11 deletions
@@ -20,6 +20,7 @@ import com.google.common.collect.Lists;
import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.util.QualifiedNamesUtil;
import org.junit.Assert;
import org.junit.Test;
@@ -100,4 +101,25 @@ public class FqNameTest {
FqNameUnsafe fqName = new FqNameUnsafe("ru.yandex");
Assert.assertSame(fqName, fqName.toSafe().toUnsafe());
}
@Test
public void isValidJavaFqName() {
Assert.assertTrue(QualifiedNamesUtil.isValidJavaFqName(""));
Assert.assertTrue(QualifiedNamesUtil.isValidJavaFqName("a"));
Assert.assertTrue(QualifiedNamesUtil.isValidJavaFqName("1"));
Assert.assertTrue(QualifiedNamesUtil.isValidJavaFqName("a.a"));
Assert.assertTrue(QualifiedNamesUtil.isValidJavaFqName("org.jetbrains"));
Assert.assertTrue(QualifiedNamesUtil.isValidJavaFqName("$"));
Assert.assertTrue(QualifiedNamesUtil.isValidJavaFqName("org.A$B"));
Assert.assertFalse(QualifiedNamesUtil.isValidJavaFqName("."));
Assert.assertFalse(QualifiedNamesUtil.isValidJavaFqName(".."));
Assert.assertFalse(QualifiedNamesUtil.isValidJavaFqName("a."));
Assert.assertFalse(QualifiedNamesUtil.isValidJavaFqName(".a"));
Assert.assertFalse(QualifiedNamesUtil.isValidJavaFqName("a..b"));
Assert.assertFalse(QualifiedNamesUtil.isValidJavaFqName("a.b.."));
Assert.assertFalse(QualifiedNamesUtil.isValidJavaFqName("a.b."));
Assert.assertFalse(QualifiedNamesUtil.isValidJavaFqName("a.b...)"));
Assert.assertFalse(QualifiedNamesUtil.isValidJavaFqName("a.b.<special>"));
}
}