Extract JvmClassName.byFqName().getAsmType() logic

This commit is contained in:
Alexander Udalov
2013-09-30 15:58:34 +04:00
parent bee32b8138
commit 18df0de2d5
3 changed files with 10 additions and 4 deletions
@@ -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());
}
}
@@ -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);
@@ -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