NamespaceCodegen.getNamespacePartInternalName()
Should be used instead of getMultiFileNamespaceInternalName()
This commit is contained in:
@@ -286,7 +286,7 @@ public class NamespaceCodegen extends MemberCodegen {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static String getMultiFileNamespaceInternalName(String namespaceInternalName, PsiFile file) {
|
||||
private static String getMultiFileNamespaceInternalName(@NotNull String namespaceInternalName, @NotNull PsiFile file) {
|
||||
String name = FileUtil.toSystemDependentName(file.getName());
|
||||
|
||||
int substringFrom = name.lastIndexOf(File.separator) + 1;
|
||||
@@ -302,4 +302,12 @@ public class NamespaceCodegen extends MemberCodegen {
|
||||
// path hashCode to prevent same name / different path collision
|
||||
return namespaceInternalName + "$src$" + name.substring(substringFrom, substringTo) + "$" + pathHashCode;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static String getNamespacePartInternalName(@NotNull JetFile file) {
|
||||
FqName fqName = JetPsiUtil.getFQName(file);
|
||||
JvmClassName namespaceJvmClassName = NamespaceCodegen.getJVMClassNameForKotlinNs(fqName);
|
||||
String namespaceInternalName = namespaceJvmClassName.getInternalName();
|
||||
return NamespaceCodegen.getMultiFileNamespaceInternalName(namespaceInternalName, file);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -123,7 +123,7 @@ public class JavaElementFinder extends PsiElementFinder implements JavaPsiFacade
|
||||
final FqName packageName = JetPsiUtil.getFQName(file);
|
||||
if (packageName != null && qualifiedName.getFqName().startsWith(packageName.getFqName())) {
|
||||
String packageInternalName = NamespaceCodegen.getJVMClassNameForKotlinNs(packageName).getInternalName();
|
||||
String multiFileNamespaceInternalName = NamespaceCodegen.getMultiFileNamespaceInternalName(packageInternalName, file);
|
||||
String multiFileNamespaceInternalName = NamespaceCodegen.getNamespacePartInternalName(file);
|
||||
if (multiFileNamespaceInternalName.equals(internalNameUnsafe) ||
|
||||
(packageInternalName.equals(internalNameUnsafe) && NamespaceCodegen.shouldGenerateNSClass(Arrays.asList(file)))) {
|
||||
JetLightClass lightClass = JetLightClass.create(psiManager, file, qualifiedName);
|
||||
|
||||
@@ -163,12 +163,11 @@ public class JetPositionManager implements PositionManager {
|
||||
if (result.isNull()) {
|
||||
FqName fqName = JetPsiUtil.getFQName(namespace);
|
||||
boolean multiFileNamespace = isMultiFileNamespace(typeMapper.getBindingContext(), fqName);
|
||||
String namespaceInternalName = NamespaceCodegen.getJVMClassNameForKotlinNs(fqName).getInternalName();
|
||||
if (multiFileNamespace) {
|
||||
result.set(NamespaceCodegen.getMultiFileNamespaceInternalName(namespaceInternalName, namespace));
|
||||
result.set(NamespaceCodegen.getNamespacePartInternalName(namespace));
|
||||
}
|
||||
else {
|
||||
result.set(namespaceInternalName);
|
||||
result.set(NamespaceCodegen.getJVMClassNameForKotlinNs(fqName).getInternalName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user