Fixed regression in rendering generic types upper bounds.
This commit is contained in:
committed by
Andrey Breslav
parent
a8f43d1e47
commit
d875bf80cb
@@ -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>
|
||||
<T, E>
|
||||
<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 */
|
||||
}]]
|
||||
}]]
|
||||
Reference in New Issue
Block a user