Replaced short names with fully qualified in DescriptorRenderer.

This commit is contained in:
Evgeny Gerashchenko
2012-03-07 18:12:48 +04:00
parent 9658dd7c39
commit 8f5d469a0c
3 changed files with 11 additions and 5 deletions
@@ -21,6 +21,7 @@ import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
import org.jetbrains.jet.lang.descriptors.PropertyDescriptor;
import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
import org.jetbrains.jet.lang.resolve.java.JvmAbi;
import org.objectweb.asm.MethodVisitor;
import org.objectweb.asm.Type;
@@ -142,8 +143,8 @@ public class NamespaceCodegen {
}
String name = fqName.replace('.', '/');
if(name.startsWith("<java_root>")) {
name = name.substring("<java_root>".length() + 1, name.length());
if (name.startsWith(JavaDescriptorResolver.JAVA_ROOT)) {
name = name.substring(JavaDescriptorResolver.JAVA_ROOT.length() + 1, name.length());
}
if (namespace) {
name += "/" + JvmAbi.PACKAGE_CLASS;
@@ -180,7 +180,9 @@ public class DescriptorUtils {
public static String getFQName(DeclarationDescriptor descriptor) {
DeclarationDescriptor container = descriptor.getContainingDeclaration();
if (container != null && !(container instanceof ModuleDescriptor)) {
if (container != null && !(container instanceof ModuleDescriptor)
&& !("<java_root>".equals(container.getName()))) {
// TODO JavaNamespaceDescriptors should be refactored
String baseName = getFQName(container);
if (!baseName.isEmpty()) return baseName + "." + descriptor.getName();
}
@@ -20,11 +20,12 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.diagnostics.Renderer;
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor;
import org.jetbrains.jet.lang.types.lang.JetStandardClasses;
import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.lang.types.TypeProjection;
import org.jetbrains.jet.lang.types.Variance;
import org.jetbrains.jet.lang.types.lang.JetStandardClasses;
import org.jetbrains.jet.lexer.JetTokens;
import java.util.Collection;
@@ -109,7 +110,9 @@ public class DescriptorRenderer implements Renderer<DeclarationDescriptor> {
private String renderDefaultType(JetType type) {
StringBuilder sb = new StringBuilder();
sb.append(type.getConstructor());
ClassifierDescriptor cd = type.getConstructor().getDeclarationDescriptor();
sb.append(cd == null || cd instanceof TypeParameterDescriptor
? type.getConstructor() : DescriptorUtils.getFQName(cd));
if (!type.getArguments().isEmpty()) {
sb.append("<");
appendTypeProjections(sb, type.getArguments());