From a861ac0c105530049c86d3500c56b597694b31f2 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Thu, 13 Jun 2013 15:50:39 +0400 Subject: [PATCH] Debug names for type deserializaers --- .../serialization/DescriptorDeserializer.java | 7 ++++--- .../serialization/TypeDeserializer.java | 17 +++++++++++++---- .../DeserializedClassDescriptor.java | 5 +++-- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/compiler/frontend/serialization/src/org/jetbrains/jet/descriptors/serialization/DescriptorDeserializer.java b/compiler/frontend/serialization/src/org/jetbrains/jet/descriptors/serialization/DescriptorDeserializer.java index d67b1ddadc1..707d8aed558 100644 --- a/compiler/frontend/serialization/src/org/jetbrains/jet/descriptors/serialization/DescriptorDeserializer.java +++ b/compiler/frontend/serialization/src/org/jetbrains/jet/descriptors/serialization/DescriptorDeserializer.java @@ -41,8 +41,8 @@ public class DescriptorDeserializer { @NotNull ClassResolver classResolver, @NotNull AnnotationDeserializer annotationDeserializer ) { - return new DescriptorDeserializer(new TypeDeserializer(null, nameResolver, classResolver), containingDeclaration, nameResolver, - annotationDeserializer); + return new DescriptorDeserializer(new TypeDeserializer(null, nameResolver, classResolver, "Deserializer for " + containingDeclaration), + containingDeclaration, nameResolver, annotationDeserializer); } @NotNull @@ -79,7 +79,8 @@ public class DescriptorDeserializer { @NotNull private DescriptorDeserializer createChildDeserializer(@NotNull DeclarationDescriptor descriptor) { - return create(new TypeDeserializer(typeDeserializer), descriptor, nameResolver, annotationDeserializer); + return create(new TypeDeserializer(typeDeserializer, "Child deserializer for " + descriptor), + descriptor, nameResolver, annotationDeserializer); } @NotNull diff --git a/compiler/frontend/serialization/src/org/jetbrains/jet/descriptors/serialization/TypeDeserializer.java b/compiler/frontend/serialization/src/org/jetbrains/jet/descriptors/serialization/TypeDeserializer.java index 2ded0c5263b..71fe5d1d0a5 100644 --- a/compiler/frontend/serialization/src/org/jetbrains/jet/descriptors/serialization/TypeDeserializer.java +++ b/compiler/frontend/serialization/src/org/jetbrains/jet/descriptors/serialization/TypeDeserializer.java @@ -37,19 +37,23 @@ public class TypeDeserializer { private final IndexedSymbolTable typeParameterDescriptors; private final TIntObjectHashMap classDescriptors = new TIntObjectHashMap(); - public TypeDeserializer(@NotNull TypeDeserializer parent) { - this(parent, parent.nameResolver, parent.classResolver); + private final String debugName; + + public TypeDeserializer(@NotNull TypeDeserializer parent, @NotNull String debugName) { + this(parent, parent.nameResolver, parent.classResolver, debugName); } public TypeDeserializer( @Nullable TypeDeserializer parent, @NotNull NameResolver nameResolver, - @NotNull ClassResolver classResolver - ) { + @NotNull ClassResolver classResolver, + @NotNull String debugName + ) { IndexedSymbolTable parentTypeParameters = parent == null ? null : parent.typeParameterDescriptors; this.typeParameterDescriptors = new IndexedSymbolTable(parentTypeParameters); this.nameResolver = nameResolver; this.classResolver = classResolver; + this.debugName = debugName + (parent == null ? "" : ". Child of " + parent.debugName); } @NotNull @@ -221,4 +225,9 @@ public class TypeDeserializer { } return ((ClassDescriptor) descriptor).getMemberScope(typeArguments); } + + @Override + public String toString() { + return debugName; + } } diff --git a/compiler/frontend/serialization/src/org/jetbrains/jet/descriptors/serialization/descriptors/DeserializedClassDescriptor.java b/compiler/frontend/serialization/src/org/jetbrains/jet/descriptors/serialization/descriptors/DeserializedClassDescriptor.java index 04ea153342b..53a103f6fd8 100644 --- a/compiler/frontend/serialization/src/org/jetbrains/jet/descriptors/serialization/descriptors/DeserializedClassDescriptor.java +++ b/compiler/frontend/serialization/src/org/jetbrains/jet/descriptors/serialization/descriptors/DeserializedClassDescriptor.java @@ -74,7 +74,9 @@ public class DeserializedClassDescriptor extends ClassDescriptorBase implements @Nullable TypeDeserializer outerTypeDeserializer ) { this.classProto = classProto; - this.typeDeserializer = new TypeDeserializer(outerTypeDeserializer, nameResolver, classResolver); + this.name = nameResolver.getName(classProto.getName()); + + this.typeDeserializer = new TypeDeserializer(outerTypeDeserializer, nameResolver, classResolver, "Deserializer for class " + name); this.deserializer = DescriptorDeserializer.create(typeDeserializer, this, nameResolver, annotationResolver); this.containingDeclaration = containingDeclaration; @@ -83,7 +85,6 @@ public class DeserializedClassDescriptor extends ClassDescriptorBase implements this.innerClassesScope = new InnerClassesScopeWrapper(memberScope); this.thisAsReceiverParameter = new LazyClassReceiverParameterDescriptor(); - this.name = nameResolver.getName(classProto.getName()); int flags = classProto.getFlags(); this.modality = DescriptorDeserializer.modality(Flags.MODALITY.get(flags)); this.visibility = DescriptorDeserializer.visibility(Flags.VISIBILITY.get(flags));