diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/binding/PsiCodegenPredictor.java b/compiler/backend/src/org/jetbrains/jet/codegen/binding/PsiCodegenPredictor.java index 2657308862a..09947049a9f 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/binding/PsiCodegenPredictor.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/binding/PsiCodegenPredictor.java @@ -33,6 +33,7 @@ import org.jetbrains.jet.lang.resolve.BindingContextUtils; import org.jetbrains.jet.lang.resolve.BindingTrace; import org.jetbrains.jet.lang.resolve.java.JvmAbi; import org.jetbrains.jet.lang.resolve.java.JvmClassName; +import org.jetbrains.jet.lang.resolve.java.PackageClassUtils; import org.jetbrains.jet.lang.resolve.kotlin.PackagePartClassUtils; import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.name.Name; @@ -42,7 +43,6 @@ import java.util.ArrayList; import java.util.Collection; import static org.jetbrains.jet.lang.resolve.BindingContextUtils.descriptorToDeclaration; -import static org.jetbrains.jet.lang.resolve.java.PackageClassUtils.getPackageClassFqName; public final class PsiCodegenPredictor { private PsiCodegenPredictor() { @@ -87,9 +87,8 @@ public final class PsiCodegenPredictor { FqName packageFqName = declaration.getContainingJetFile().getPackageFqName(); if (declaration instanceof JetNamedFunction) { - FqName packageClass = getPackageClassFqName(packageFqName); Name name = ((JetNamedFunction) declaration).getNameAsName(); - return name == null ? null : AsmUtil.internalNameByFqNameWithoutInnerClasses(packageClass) + "$" + name.asString(); + return name == null ? null : PackageClassUtils.getPackageClassInternalName(packageFqName) + "$" + name.asString(); } parentInternalName = AsmUtil.internalNameByFqNameWithoutInnerClasses(packageFqName); diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/state/JetTypeMapper.java b/compiler/backend/src/org/jetbrains/jet/codegen/state/JetTypeMapper.java index 6dee5371442..9531769d875 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/state/JetTypeMapper.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/state/JetTypeMapper.java @@ -143,7 +143,7 @@ public class JetTypeMapper { } } - return PackageClassUtils.getPackageClassFqName(packageFragment.getFqName()).asString().replace('.', '/'); + return PackageClassUtils.getPackageClassInternalName(packageFragment.getFqName()); } @NotNull diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/PackageClassUtils.java b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/PackageClassUtils.java index 72b5c45e4f5..bfa1a3b6ed2 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/PackageClassUtils.java +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/PackageClassUtils.java @@ -46,6 +46,11 @@ public final class PackageClassUtils { return packageFQN.child(Name.identifier(getPackageClassName(packageFQN))); } + @NotNull + public static String getPackageClassInternalName(@NotNull FqName packageFQN) { + return JvmClassName.byFqNameWithoutInnerClasses(getPackageClassFqName(packageFQN)).getInternalName(); + } + public static boolean isPackageClassFqName(@NotNull FqName fqName) { return !fqName.isRoot() && getPackageClassFqName(fqName.parent()).equals(fqName); } diff --git a/idea/src/org/jetbrains/jet/plugin/debugger/evaluate/KotlinEvaluationBuilder.kt b/idea/src/org/jetbrains/jet/plugin/debugger/evaluate/KotlinEvaluationBuilder.kt index 4ef6861a05d..b13a3920367 100644 --- a/idea/src/org/jetbrains/jet/plugin/debugger/evaluate/KotlinEvaluationBuilder.kt +++ b/idea/src/org/jetbrains/jet/plugin/debugger/evaluate/KotlinEvaluationBuilder.kt @@ -270,7 +270,7 @@ package packageForDebugger !FUNCTION! """ -private val packageInternalName = PackageClassUtils.getPackageClassFqName(FqName("packageForDebugger")).asString().replace(".", "/") +private val packageInternalName = PackageClassUtils.getPackageClassInternalName(FqName("packageForDebugger")) private fun createFileForDebugger(codeFragment: JetCodeFragment, extractedFunction: JetNamedFunction