JetPositionManager: fix finding psi file by source name
This commit is contained in:
@@ -78,7 +78,7 @@ public class DebuggerUtils {
|
|||||||
return filesWithExactName.iterator().next();
|
return filesWithExactName.iterator().next();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isPackagePartClassName(className)) {
|
if (isPackageClassName(className)) {
|
||||||
for (JetFile file : filesWithExactName) {
|
for (JetFile file : filesWithExactName) {
|
||||||
boolean hasTopLevelMembers = KotlinPackage.any(file.getDeclarations(), new Function1<JetDeclaration, Boolean>() {
|
boolean hasTopLevelMembers = KotlinPackage.any(file.getDeclarations(), new Function1<JetDeclaration, Boolean>() {
|
||||||
@Override
|
@Override
|
||||||
@@ -90,6 +90,7 @@ public class DebuggerUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isPackagePartClassName(className)) {
|
||||||
JetFile file = getFileForPackagePartPrefixedName(filesWithExactName, className.getInternalName());
|
JetFile file = getFileForPackagePartPrefixedName(filesWithExactName, className.getInternalName());
|
||||||
if (file != null) {
|
if (file != null) {
|
||||||
return file;
|
return file;
|
||||||
@@ -118,14 +119,22 @@ public class DebuggerUtils {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return filesWithExactName.iterator().next();
|
||||||
|
}
|
||||||
|
|
||||||
private static boolean isPackagePartClassName(JvmClassName className) {
|
private static boolean isPackagePartClassName(JvmClassName className) {
|
||||||
FqName packageFqName = PackageClassUtils.getPackageClassFqName(className.getPackageFqName());
|
String packageName = PackageClassUtils.getPackageClassInternalName(className.getPackageFqName());
|
||||||
String packageName = packageFqName.asString().replaceAll("\\.", "/");
|
|
||||||
|
|
||||||
String internalName = className.getInternalName();
|
String internalName = className.getInternalName();
|
||||||
return !internalName.equals(packageName) && internalName.startsWith(packageName);
|
return !internalName.equals(packageName) && internalName.startsWith(packageName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static boolean isPackageClassName(JvmClassName className) {
|
||||||
|
String packageName = PackageClassUtils.getPackageClassInternalName(className.getPackageFqName());
|
||||||
|
|
||||||
|
return packageName.equals(className.getInternalName());
|
||||||
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
private static JetFile getFileForPackagePartPrefixedName(
|
private static JetFile getFileForPackagePartPrefixedName(
|
||||||
@NotNull Collection<JetFile> allPackageFiles,
|
@NotNull Collection<JetFile> allPackageFiles,
|
||||||
|
|||||||
Reference in New Issue
Block a user