Remove an effect from DeclarationDescriptorImpl.toString()

This commit is contained in:
Andrey Breslav
2012-05-10 15:54:41 +04:00
parent 9f13d3b263
commit 909e02898d
2 changed files with 14 additions and 2 deletions
@@ -68,7 +68,7 @@ public abstract class DeclarationDescriptorImpl extends AnnotatedImpl implements
@Override
public String toString() {
try {
return DescriptorRenderer.TEXT.render(this) + "[" + getClass().getSimpleName() + "@" + Integer.toHexString(System.identityHashCode(this)) + "]";
return DescriptorRenderer.DEBUG_TEXT.render(this) + "[" + getClass().getSimpleName() + "@" + Integer.toHexString(System.identityHashCode(this)) + "]";
} catch (Throwable e) {
// DescriptionRenderer may throw if this is not yet completely initialized
// It is very inconvenient while debugging
@@ -46,6 +46,14 @@ public class DescriptorRenderer implements Renderer<DeclarationDescriptor> {
public static final DescriptorRenderer TEXT = new DescriptorRenderer();
public static final DescriptorRenderer DEBUG_TEXT = new DescriptorRenderer() {
@Override
protected boolean hasDefaultValue(ValueParameterDescriptor descriptor) {
// hasDefaultValue() has effects
return descriptor.declaresDefaultValue();
}
};
public static final DescriptorRenderer HTML = new DescriptorRenderer() {
@Override
@@ -79,7 +87,7 @@ public class DescriptorRenderer implements Renderer<DeclarationDescriptor> {
@Override
public Void visitValueParameterDescriptor(ValueParameterDescriptor descriptor, StringBuilder builder) {
super.visitVariableDescriptor(descriptor, builder, true);
if (descriptor.hasDefaultValue()) {
if (hasDefaultValue(descriptor)) {
builder.append(" = ...");
}
return null;
@@ -89,6 +97,10 @@ public class DescriptorRenderer implements Renderer<DeclarationDescriptor> {
private DescriptorRenderer() {
}
protected boolean hasDefaultValue(ValueParameterDescriptor descriptor) {
return descriptor.hasDefaultValue();
}
protected String renderKeyword(String keyword) {
return keyword;
}