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.annotations.NotNull;
|
||||||
import org.jetbrains.kotlin.utils.StringsKt;
|
import org.jetbrains.kotlin.utils.StringsKt;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public final class FqName {
|
public final class FqName {
|
||||||
@@ -50,11 +49,6 @@ public final class FqName {
|
|||||||
this.parent = parent;
|
this.parent = parent;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*package*/ static boolean isValidAfterUnsafeCheck(@NotNull String qualifiedName) {
|
|
||||||
// TODO: There's a valid name with escape char ``
|
|
||||||
return qualifiedName.indexOf('<') < 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public String asString() {
|
public String asString() {
|
||||||
return fqName.asString();
|
return fqName.asString();
|
||||||
@@ -104,12 +98,6 @@ public final class FqName {
|
|||||||
return fqName.pathSegments();
|
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
|
@NotNull
|
||||||
public static FqName topLevel(@NotNull Name shortName) {
|
public static FqName topLevel(@NotNull Name shortName) {
|
||||||
return new FqName(FqNameUnsafe.topLevel(shortName));
|
return new FqName(FqNameUnsafe.topLevel(shortName));
|
||||||
|
|||||||
@@ -77,10 +77,7 @@ public final class FqNameUnsafe {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isSafe() {
|
public boolean isSafe() {
|
||||||
if (safe != null) {
|
return safe != null || asString().indexOf('<') < 0;
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return FqName.isValidAfterUnsafeCheck(asString());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
@@ -241,44 +241,48 @@ public class JetRunConfiguration extends ModuleBasedConfiguration<RunConfigurati
|
|||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public RefactoringElementListener getRefactoringElementListener(PsiElement element) {
|
public RefactoringElementListener getRefactoringElementListener(PsiElement element) {
|
||||||
FqName fqNameBeingRenamed = null;
|
FqName fqNameBeingRenamed;
|
||||||
if (element instanceof KtDeclarationContainer) {
|
if (element instanceof KtDeclarationContainer) {
|
||||||
fqNameBeingRenamed = KotlinRunConfigurationProducer.Companion.getStartClassFqName((KtDeclarationContainer) element);
|
fqNameBeingRenamed = KotlinRunConfigurationProducer.Companion.getStartClassFqName((KtDeclarationContainer) element);
|
||||||
}
|
}
|
||||||
else if (element instanceof PsiPackage) {
|
else if (element instanceof PsiPackage) {
|
||||||
fqNameBeingRenamed = new FqName(((PsiPackage) element).getQualifiedName());
|
fqNameBeingRenamed = new FqName(((PsiPackage) element).getQualifiedName());
|
||||||
}
|
}
|
||||||
FqName ourClassName = new FqName(MAIN_CLASS_NAME);
|
else {
|
||||||
if (fqNameBeingRenamed != null && fqNameBeingRenamed.isAncestorOf(ourClassName)) {
|
fqNameBeingRenamed = 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);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
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) {
|
private void updateMainClassName(PsiElement element) {
|
||||||
|
|||||||
Reference in New Issue
Block a user