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;
}
}
}
}
@@ -4,7 +4,7 @@ trait Trait {
class TraitImpl : Trait {
override fun <A, B, E: Map.Entry<A, B>> foo() where B: Runnable, B: Cloneable, B: Comparable<B> {
override fun <A, B: Runnable, E: Map.Entry<A, B>> foo() where B: Cloneable, B: Comparable<B> {
throw UnsupportedOperationException()
}
}
@@ -9,7 +9,7 @@ T</b>
<td align="right" colspan="2" style="white-space:nowrap;font-weight:bold;">
<b>
fun</b>
&lt;T, E>
&lt;T, E : java.lang.Cloneable>
writeToMyList</td>
<td style="white-space:nowrap;font-weight:bold;">
(</td>
@@ -22,7 +22,7 @@ t: T</td>
<td style="white-space:nowrap;font-weight:bold;">
: jet.Unit <b>
where</b>
E : java.lang.Cloneable, E : java.io.Closeable</td>
E : java.io.Closeable</td>
</tr>
<tr>
<td colspan="8" style="white-space:nowrap;">
@@ -5,4 +5,4 @@ package testData.libraries
[[public final class ClassWithConstructor(a: jet.String, b: jet.Any) {
[internal final val a: jet.String] /* compiled code */
}]]
}]]