K2: introduce JavaTypeParameterDefaultRepresentationWithDNN exp. feature

#KT-66447 Fixed
This commit is contained in:
Mikhail Glukhikh
2024-03-11 18:09:43 +01:00
committed by Space Team
parent 4464385fa9
commit cd20f31810
35 changed files with 627 additions and 6 deletions
@@ -6,10 +6,13 @@
package org.jetbrains.kotlin.fir.types
import org.jetbrains.kotlin.builtins.functions.FunctionTypeKind
import org.jetbrains.kotlin.config.LanguageFeature
import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.fir.declarations.utils.modality
import org.jetbrains.kotlin.fir.diagnostics.ConeIntermediateDiagnostic
import org.jetbrains.kotlin.fir.isPrimitiveNumberOrUnsignedNumberType
import org.jetbrains.kotlin.fir.languageVersionSettings
import org.jetbrains.kotlin.fir.resolve.createSubstitutionForSupertype
import org.jetbrains.kotlin.fir.resolve.fullyExpandedType
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
@@ -587,7 +590,9 @@ interface ConeInferenceContext : TypeSystemInferenceExtensionContext, ConeTypeCo
return intersectionType.withAlternative(secondCandidate)
}
override fun useRefinedBoundsForTypeVariableInFlexiblePosition(): Boolean = false
override fun useRefinedBoundsForTypeVariableInFlexiblePosition(): Boolean = session.languageVersionSettings.supportsFeature(
LanguageFeature.JavaTypeParameterDefaultRepresentationWithDNN
)
override fun KotlinTypeMarker.convertToNonRaw(): KotlinTypeMarker {
require(this is ConeKotlinType)