Add PackageClassUtils.getPackageClassInternalName()

This commit is contained in:
Alexander Udalov
2014-06-09 19:11:30 +04:00
parent 059538ce1b
commit ac8eb0f5e8
4 changed files with 9 additions and 5 deletions
@@ -33,6 +33,7 @@ import org.jetbrains.jet.lang.resolve.BindingContextUtils;
import org.jetbrains.jet.lang.resolve.BindingTrace; import org.jetbrains.jet.lang.resolve.BindingTrace;
import org.jetbrains.jet.lang.resolve.java.JvmAbi; import org.jetbrains.jet.lang.resolve.java.JvmAbi;
import org.jetbrains.jet.lang.resolve.java.JvmClassName; 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.kotlin.PackagePartClassUtils;
import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.resolve.name.Name;
@@ -42,7 +43,6 @@ import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import static org.jetbrains.jet.lang.resolve.BindingContextUtils.descriptorToDeclaration; import static org.jetbrains.jet.lang.resolve.BindingContextUtils.descriptorToDeclaration;
import static org.jetbrains.jet.lang.resolve.java.PackageClassUtils.getPackageClassFqName;
public final class PsiCodegenPredictor { public final class PsiCodegenPredictor {
private PsiCodegenPredictor() { private PsiCodegenPredictor() {
@@ -87,9 +87,8 @@ public final class PsiCodegenPredictor {
FqName packageFqName = declaration.getContainingJetFile().getPackageFqName(); FqName packageFqName = declaration.getContainingJetFile().getPackageFqName();
if (declaration instanceof JetNamedFunction) { if (declaration instanceof JetNamedFunction) {
FqName packageClass = getPackageClassFqName(packageFqName);
Name name = ((JetNamedFunction) declaration).getNameAsName(); 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); parentInternalName = AsmUtil.internalNameByFqNameWithoutInnerClasses(packageFqName);
@@ -143,7 +143,7 @@ public class JetTypeMapper {
} }
} }
return PackageClassUtils.getPackageClassFqName(packageFragment.getFqName()).asString().replace('.', '/'); return PackageClassUtils.getPackageClassInternalName(packageFragment.getFqName());
} }
@NotNull @NotNull
@@ -46,6 +46,11 @@ public final class PackageClassUtils {
return packageFQN.child(Name.identifier(getPackageClassName(packageFQN))); 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) { public static boolean isPackageClassFqName(@NotNull FqName fqName) {
return !fqName.isRoot() && getPackageClassFqName(fqName.parent()).equals(fqName); return !fqName.isRoot() && getPackageClassFqName(fqName.parent()).equals(fqName);
} }
@@ -270,7 +270,7 @@ package packageForDebugger
!FUNCTION! !FUNCTION!
""" """
private val packageInternalName = PackageClassUtils.getPackageClassFqName(FqName("packageForDebugger")).asString().replace(".", "/") private val packageInternalName = PackageClassUtils.getPackageClassInternalName(FqName("packageForDebugger"))
private fun createFileForDebugger(codeFragment: JetCodeFragment, private fun createFileForDebugger(codeFragment: JetCodeFragment,
extractedFunction: JetNamedFunction extractedFunction: JetNamedFunction