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