From 18df0de2d53c64fce30c5acaa5c3264b08dff2a4 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Mon, 30 Sep 2013 15:58:34 +0400 Subject: [PATCH] Extract JvmClassName.byFqName().getAsmType() logic --- .../backend/src/org/jetbrains/jet/codegen/AsmUtil.java | 7 ++++++- .../src/org/jetbrains/jet/codegen/ClassFileFactory.java | 4 ++-- .../src/org/jetbrains/jet/codegen/NamespaceCodegen.java | 3 ++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/AsmUtil.java b/compiler/backend/src/org/jetbrains/jet/codegen/AsmUtil.java index a94dfa87a87..58260e976ef 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/AsmUtil.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/AsmUtil.java @@ -667,7 +667,7 @@ public class AsmUtil { @NotNull public static String asmDescByFqNameWithoutInnerClasses(@NotNull FqName fqName) { - return "L" + JvmClassName.byFqNameWithoutInnerClasses(fqName).getInternalName() + ';'; + return asmTypeByFqNameWithoutInnerClasses(fqName).getDescriptor(); } @NotNull @@ -682,4 +682,9 @@ public class AsmUtil { public static FqName fqNameByAsmTypeUnsafe(@NotNull Type asmType) { return JvmClassName.byInternalName(asmType.getInternalName()).getFqName(); } + + @NotNull + public static Type asmTypeByFqNameWithoutInnerClasses(@NotNull FqName fqName) { + return Type.getObjectType(JvmClassName.byFqNameWithoutInnerClasses(fqName).getInternalName()); + } } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ClassFileFactory.java b/compiler/backend/src/org/jetbrains/jet/codegen/ClassFileFactory.java index ff69c148a12..084c6ac4250 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ClassFileFactory.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ClassFileFactory.java @@ -26,13 +26,13 @@ import org.jetbrains.jet.codegen.state.GenerationStateAware; import org.jetbrains.jet.codegen.state.JetTypeMapperMode; import org.jetbrains.jet.lang.descriptors.ClassDescriptor; import org.jetbrains.jet.lang.psi.JetFile; -import org.jetbrains.jet.lang.resolve.java.JvmClassName; import org.jetbrains.jet.lang.resolve.name.FqName; import javax.inject.Inject; import java.io.File; import java.util.*; +import static org.jetbrains.jet.codegen.AsmUtil.asmTypeByFqNameWithoutInnerClasses; import static org.jetbrains.jet.codegen.AsmUtil.isPrimitive; import static org.jetbrains.jet.lang.resolve.java.PackageClassUtils.getPackageClassFqName; @@ -113,7 +113,7 @@ public final class ClassFileFactory extends GenerationStateAware { @NotNull @Override protected ClassBuilder createClassBuilder() { - return newVisitor(JvmClassName.byFqNameWithoutInnerClasses(getPackageClassFqName(fqName)).getAsmType(), files); + return newVisitor(asmTypeByFqNameWithoutInnerClasses(getPackageClassFqName(fqName)), files); } }; codegen = new NamespaceCodegen(onDemand, fqName, state, files); diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/NamespaceCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/NamespaceCodegen.java index 2d96c66009e..f9857d45ec6 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/NamespaceCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/NamespaceCodegen.java @@ -54,6 +54,7 @@ import java.util.List; import static org.jetbrains.asm4.Opcodes.*; import static org.jetbrains.jet.codegen.AsmUtil.asmDescByFqNameWithoutInnerClasses; +import static org.jetbrains.jet.codegen.AsmUtil.asmTypeByFqNameWithoutInnerClasses; import static org.jetbrains.jet.descriptors.serialization.NameSerializationUtil.createNameResolver; import static org.jetbrains.jet.lang.resolve.java.PackageClassUtils.getPackageClassFqName; @@ -318,7 +319,7 @@ public class NamespaceCodegen extends MemberCodegen { FqName srcFqName = facadeFqName.parent().child(Name.identifier(srcName)); - return JvmClassName.byFqNameWithoutInnerClasses(srcFqName).getAsmType(); + return asmTypeByFqNameWithoutInnerClasses(srcFqName); } @NotNull