[FE] Add ability to configure PublicDeclaration type approximation configuration

This configuration allows to choose what to do with local and anonymous types
This commit is contained in:
Dmitriy Novozhilov
2022-11-09 10:33:18 +02:00
committed by Space Team
parent 82c39187f6
commit 32f6b71525
7 changed files with 14 additions and 11 deletions
@@ -32,7 +32,7 @@ class TypeApproximator(
fun approximateDeclarationType(baseType: KotlinType, local: Boolean): UnwrappedType {
if (!languageVersionSettings.supportsFeature(LanguageFeature.NewInference)) return baseType.unwrap()
val configuration = if (local) TypeApproximatorConfiguration.LocalDeclaration else TypeApproximatorConfiguration.PublicDeclaration
val configuration = if (local) TypeApproximatorConfiguration.LocalDeclaration else TypeApproximatorConfiguration.PublicDeclaration.SaveAnonymousTypes
val preparedType = if (local) baseType.unwrap() else substituteAlternativesInPublicType(baseType)
return approximateToSuperType(preparedType, configuration) ?: preparedType
}