Change default upper bound of Java type parameters to Any!

#KT-7672 Fixed
This commit is contained in:
Denis Zharkov
2015-07-17 12:11:56 +03:00
parent 0e69ebb288
commit 97af85da9c
119 changed files with 326 additions and 205 deletions
@@ -22,10 +22,13 @@ import org.jetbrains.kotlin.types.Variance
import org.jetbrains.kotlin.types.JetType
import org.jetbrains.kotlin.load.java.structure.JavaTypeParameter
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
import org.jetbrains.kotlin.load.java.components.TypeUsage
import org.jetbrains.kotlin.load.java.lazy.LazyJavaResolverContext
import org.jetbrains.kotlin.load.java.lazy.types.toAttributes
import org.jetbrains.kotlin.descriptors.SourceElement
import org.jetbrains.kotlin.load.java.lazy.types.LazyJavaTypeResolver
import org.jetbrains.kotlin.load.java.lazy.types.toFlexible
class LazyJavaTypeParameterDescriptor(
private val c: LazyJavaResolverContext,
@@ -45,7 +48,10 @@ class LazyJavaTypeParameterDescriptor(
override fun resolveUpperBounds(): Set<JetType> {
val bounds = javaTypeParameter.getUpperBounds()
if (bounds.isEmpty()) {
return setOf(c.module.builtIns.getDefaultBound())
return setOf(LazyJavaTypeResolver.FlexibleJavaClassifierTypeCapabilities.create(
c.module.builtIns.getAnyType(),
c.module.builtIns.getNullableAnyType()
))
}
else {
return bounds.map {