From a8798de8d0a57d93234acc57a814f8ebdcbe3784 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Mon, 22 Oct 2012 16:33:32 +0400 Subject: [PATCH] NamespaceCodegen.getNamespacePartInternalName() Should be used instead of getMultiFileNamespaceInternalName() --- .../org/jetbrains/jet/codegen/NamespaceCodegen.java | 10 +++++++++- .../org/jetbrains/jet/asJava/JavaElementFinder.java | 2 +- .../jet/plugin/debugger/JetPositionManager.java | 5 ++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/NamespaceCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/NamespaceCodegen.java index 2652fe0dd46..267cb2389e8 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/NamespaceCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/NamespaceCodegen.java @@ -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); + } } diff --git a/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/JavaElementFinder.java b/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/JavaElementFinder.java index b24d204f889..6553acae61a 100644 --- a/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/JavaElementFinder.java +++ b/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/JavaElementFinder.java @@ -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); diff --git a/idea/src/org/jetbrains/jet/plugin/debugger/JetPositionManager.java b/idea/src/org/jetbrains/jet/plugin/debugger/JetPositionManager.java index 5725a312e39..a2df5837c1b 100644 --- a/idea/src/org/jetbrains/jet/plugin/debugger/JetPositionManager.java +++ b/idea/src/org/jetbrains/jet/plugin/debugger/JetPositionManager.java @@ -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()); } } }