Minor, inline some other FQ name methods

This commit is contained in:
Alexander Udalov
2015-10-20 21:56:38 +03:00
parent 05f9f5a661
commit 0302b9504f
3 changed files with 36 additions and 47 deletions
@@ -19,7 +19,6 @@ package org.jetbrains.kotlin.name;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.utils.StringsKt;
import java.util.ArrayList;
import java.util.List;
public final class FqName {
@@ -50,11 +49,6 @@ public final class FqName {
this.parent = parent;
}
/*package*/ static boolean isValidAfterUnsafeCheck(@NotNull String qualifiedName) {
// TODO: There's a valid name with escape char ``
return qualifiedName.indexOf('<') < 0;
}
@NotNull
public String asString() {
return fqName.asString();
@@ -104,12 +98,6 @@ public final class FqName {
return fqName.pathSegments();
}
public boolean isAncestorOf(@NotNull FqName other) {
String thisString = this.asString();
String otherString = other.asString();
return otherString.equals(thisString) || otherString.startsWith(thisString + ".");
}
@NotNull
public static FqName topLevel(@NotNull Name shortName) {
return new FqName(FqNameUnsafe.topLevel(shortName));
@@ -77,10 +77,7 @@ public final class FqNameUnsafe {
}
public boolean isSafe() {
if (safe != null) {
return true;
}
return FqName.isValidAfterUnsafeCheck(asString());
return safe != null || asString().indexOf('<') < 0;
}
@NotNull
@@ -241,44 +241,48 @@ public class JetRunConfiguration extends ModuleBasedConfiguration<RunConfigurati
@Nullable
@Override
public RefactoringElementListener getRefactoringElementListener(PsiElement element) {
FqName fqNameBeingRenamed = null;
FqName fqNameBeingRenamed;
if (element instanceof KtDeclarationContainer) {
fqNameBeingRenamed = KotlinRunConfigurationProducer.Companion.getStartClassFqName((KtDeclarationContainer) element);
}
else if (element instanceof PsiPackage) {
fqNameBeingRenamed = new FqName(((PsiPackage) element).getQualifiedName());
}
FqName ourClassName = new FqName(MAIN_CLASS_NAME);
if (fqNameBeingRenamed != null && fqNameBeingRenamed.isAncestorOf(ourClassName)) {
if (element instanceof KtDeclarationContainer) {
return new RefactoringElementAdapter() {
@Override
public void undoElementMovedOrRenamed(@NotNull PsiElement newElement, @NotNull String oldQualifiedName) {
updateMainClassName(newElement);
}
@Override
protected void elementRenamedOrMoved(@NotNull PsiElement newElement) {
updateMainClassName(newElement);
}
};
}
else {
final String nameSuffix = MAIN_CLASS_NAME.substring(fqNameBeingRenamed.toString().length());
return new RefactoringElementAdapter() {
@Override
protected void elementRenamedOrMoved(@NotNull PsiElement newElement) {
updateMainClassNameWithSuffix(newElement, nameSuffix);
}
@Override
public void undoElementMovedOrRenamed(@NotNull PsiElement newElement, @NotNull String oldQualifiedName) {
updateMainClassNameWithSuffix(newElement, nameSuffix);
}
};
}
else {
fqNameBeingRenamed = null;
}
return null;
if (fqNameBeingRenamed == null ||
!MAIN_CLASS_NAME.equals(fqNameBeingRenamed.asString()) && !MAIN_CLASS_NAME.startsWith(fqNameBeingRenamed.asString() + ".")) {
return null;
}
if (element instanceof KtDeclarationContainer) {
return new RefactoringElementAdapter() {
@Override
public void undoElementMovedOrRenamed(@NotNull PsiElement newElement, @NotNull String oldQualifiedName) {
updateMainClassName(newElement);
}
@Override
protected void elementRenamedOrMoved(@NotNull PsiElement newElement) {
updateMainClassName(newElement);
}
};
}
final String nameSuffix = MAIN_CLASS_NAME.substring(fqNameBeingRenamed.toString().length());
return new RefactoringElementAdapter() {
@Override
protected void elementRenamedOrMoved(@NotNull PsiElement newElement) {
updateMainClassNameWithSuffix(newElement, nameSuffix);
}
@Override
public void undoElementMovedOrRenamed(@NotNull PsiElement newElement, @NotNull String oldQualifiedName) {
updateMainClassNameWithSuffix(newElement, nameSuffix);
}
};
}
private void updateMainClassName(PsiElement element) {