diff --git a/compiler/serialization/src/org/jetbrains/kotlin/serialization/DescriptorSerializer.java b/compiler/serialization/src/org/jetbrains/kotlin/serialization/DescriptorSerializer.java index a72572586ed..032813640a8 100644 --- a/compiler/serialization/src/org/jetbrains/kotlin/serialization/DescriptorSerializer.java +++ b/compiler/serialization/src/org/jetbrains/kotlin/serialization/DescriptorSerializer.java @@ -17,6 +17,7 @@ package org.jetbrains.kotlin.serialization; import com.google.protobuf.MessageLite; +import kotlin.KotlinPackage; import kotlin.jvm.functions.Function1; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -34,10 +35,7 @@ import org.jetbrains.kotlin.utils.UtilsPackage; import java.io.ByteArrayOutputStream; import java.io.IOException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; +import java.util.*; import static org.jetbrains.kotlin.resolve.DescriptorUtils.isEnumEntry; import static org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilPackage.getSecondaryConstructors; @@ -320,7 +318,10 @@ public class DescriptorSerializer { builder.setVariance(variance); } - for (JetType upperBound : typeParameter.getUpperBounds()) { + Set upperBounds = typeParameter.getUpperBounds(); + if (upperBounds.size() == 1 && KotlinBuiltIns.isDefaultBound(KotlinPackage.single(upperBounds))) return builder; + + for (JetType upperBound : upperBounds) { builder.addUpperBound(type(upperBound)); }