[FIR] Add flexible default upper bound for java type parameters
This commit is contained in:
@@ -12,11 +12,21 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirAnonymousObjectSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
||||
import org.jetbrains.kotlin.fir.types.ConeClassLikeType
|
||||
import org.jetbrains.kotlin.fir.types.ConeFlexibleType
|
||||
import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef
|
||||
import org.jetbrains.kotlin.fir.types.coneTypeSafe
|
||||
|
||||
fun FirTypeParameterBuilder.addDefaultBoundIfNecessary() {
|
||||
fun FirTypeParameterBuilder.addDefaultBoundIfNecessary(isFlexible: Boolean = false) {
|
||||
if (bounds.isEmpty()) {
|
||||
bounds += session.builtinTypes.nullableAnyType
|
||||
val type = if (isFlexible) {
|
||||
val session = this.session
|
||||
buildResolvedTypeRef {
|
||||
type = ConeFlexibleType(session.builtinTypes.anyType.type, session.builtinTypes.nullableAnyType.type)
|
||||
}
|
||||
} else {
|
||||
session.builtinTypes.nullableAnyType
|
||||
}
|
||||
bounds += type
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user