Don't add space if it has been already added or it's not yet needed

This commit is contained in:
Nikolay Krasko
2014-05-29 19:59:49 +04:00
parent a5505a6f39
commit 1bc8812613
@@ -191,6 +191,12 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
throw new IllegalStateException("Unexpected textFormat: " + textFormat); throw new IllegalStateException("Unexpected textFormat: " + textFormat);
} }
private static void renderSpaceIfNeeded(@NotNull StringBuilder builder) {
int length = builder.length();
if (length == 0 || builder.charAt(length - 1) != ' ') {
builder.append(' ');
}
}
/* NAMES RENDERING */ /* NAMES RENDERING */
@NotNull @NotNull
@@ -205,9 +211,11 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
private void renderClassObjectName(@NotNull DeclarationDescriptor descriptor, @NotNull StringBuilder builder) { private void renderClassObjectName(@NotNull DeclarationDescriptor descriptor, @NotNull StringBuilder builder) {
if (renderClassObjectName) { if (renderClassObjectName) {
if (!startFromName) renderSpaceIfNeeded(builder);
builder.append("<class object>"); builder.append("<class object>");
} }
if (verbose) { if (verbose) {
if (!startFromName) renderSpaceIfNeeded(builder);
builder.append(renderName(descriptor.getName())); builder.append(renderName(descriptor.getName()));
} }
} }
@@ -791,10 +799,10 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
} }
renderInner(klass.isInner(), builder); renderInner(klass.isInner(), builder);
renderClassKindPrefix(klass, builder); renderClassKindPrefix(klass, builder);
builder.append(" ");
} }
if (klass.getKind() != ClassKind.CLASS_OBJECT) { if (klass.getKind() != ClassKind.CLASS_OBJECT) {
if (!startFromName) renderSpaceIfNeeded(builder);
renderName(klass, builder); renderName(klass, builder);
} }
else { else {
@@ -825,7 +833,8 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
supertypes.size() == 1 && KotlinBuiltIns.getInstance().isAnyOrNullableAny(supertypes.iterator().next())) { supertypes.size() == 1 && KotlinBuiltIns.getInstance().isAnyOrNullableAny(supertypes.iterator().next())) {
} }
else { else {
builder.append(" : "); renderSpaceIfNeeded(builder);
builder.append(": ");
for (Iterator<JetType> iterator = supertypes.iterator(); iterator.hasNext(); ) { for (Iterator<JetType> iterator = supertypes.iterator(); iterator.hasNext(); ) {
JetType supertype = iterator.next(); JetType supertype = iterator.next();
builder.append(renderType(supertype)); builder.append(renderType(supertype));