Minor, inline some other FQ name methods
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user