Fixed regression in rendering generic types upper bounds.

This commit is contained in:
Michał Sapalski
2013-04-09 15:19:09 +02:00
committed by Andrey Breslav
parent a8f43d1e47
commit d875bf80cb
5 changed files with 12 additions and 8 deletions
@@ -113,5 +113,4 @@ public class DescriptorRendererBuilder {
verbose, unitReturnType, normalizedVisibilities, showInternalKeyword, valueParametersHandler,
textFormat, excludedAnnotationClasses);
}
}
@@ -390,7 +390,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
builder.append(renderKeyword(variance)).append(" ");
}
renderName(typeParameter, builder);
if (typeParameter.getUpperBounds().size() == 1) {
if (typeParameter.getUpperBounds().size() >= 1) {
JetType upperBound = typeParameter.getUpperBounds().iterator().next();
if (!KotlinBuiltIns.getInstance().getDefaultBound().equals(upperBound)) {
builder.append(" : ").append(renderType(upperBound));
@@ -486,8 +486,13 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
for (TypeParameterDescriptor typeParameter : typeParameters) {
if (typeParameter.getUpperBounds().size() > 1) {
boolean first = true;
for (JetType upperBound : typeParameter.getUpperBounds()) {
upperBoundStrings.add(renderName(typeParameter.getName()) + " : " + escape(renderType(upperBound)));
// first parameter is rendered by renderTypeParameter:
if (!first) {
upperBoundStrings.add(renderName(typeParameter.getName()) + " : " + escape(renderType(upperBound)));
}
first = false;
}
}
}
@@ -730,4 +735,4 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
return null;
}
}
}
}