Abstract NewInference & related from KotlinType
Cleanup TypeConstructors & KotlinTypes in VariableFixationFinder Cleanup TypeConstructors & KotlinTypes in TypeVariableDirectionCalculator Cleanup KotlinTypes in TypeCheckerContext for ConstraintSystem Cleanup KotlinTypes in NewCommonSuperTypeCalculator Cleanup KotlinTypes in TypeApproximator Cleanup type substitution Cleanup NewTypeVariable Cleanup StubType Cleanup TypeCheckerContext creation, extract common supertype context Provide TypeSystemInferenceExtensionContext via dependency injection
This commit is contained in:
@@ -45,7 +45,7 @@ class DeclarationStubGenerator(
|
||||
}
|
||||
|
||||
|
||||
private val typeTranslator = TypeTranslator(lazyTable, languageVersionSettings, LazyScopedTypeParametersResolver(lazyTable), true)
|
||||
private val typeTranslator = TypeTranslator(lazyTable, languageVersionSettings, moduleDescriptor.builtIns, LazyScopedTypeParametersResolver(lazyTable), true)
|
||||
private val constantValueGenerator = ConstantValueGenerator(moduleDescriptor, lazyTable)
|
||||
|
||||
init {
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.ir.util
|
||||
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||
import org.jetbrains.kotlin.config.LanguageFeature
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
@@ -25,11 +26,12 @@ import org.jetbrains.kotlin.types.typesApproximation.approximateCapturedTypes
|
||||
class TypeTranslator(
|
||||
private val symbolTable: ReferenceSymbolTable,
|
||||
val languageVersionSettings: LanguageVersionSettings,
|
||||
builtIns: KotlinBuiltIns,
|
||||
private val typeParametersResolver: TypeParametersResolver = ScopedTypeParametersResolver(),
|
||||
private val enterTableScope: Boolean = false
|
||||
) {
|
||||
|
||||
private val typeApproximatorForNI = TypeApproximator()
|
||||
private val typeApproximatorForNI = TypeApproximator(builtIns)
|
||||
lateinit var constantValueGenerator: ConstantValueGenerator
|
||||
|
||||
fun enterScope(irElement: IrTypeParametersContainer) {
|
||||
@@ -124,7 +126,11 @@ class TypeTranslator(
|
||||
if (ktType.constructor.isDenotable) return ktType
|
||||
|
||||
return if (languageVersionSettings.supportsFeature(LanguageFeature.NewInference))
|
||||
typeApproximatorForNI.approximateDeclarationType(ktType, local = false, languageVersionSettings = languageVersionSettings)
|
||||
typeApproximatorForNI.approximateDeclarationType(
|
||||
ktType,
|
||||
local = false,
|
||||
languageVersionSettings = languageVersionSettings
|
||||
)
|
||||
else
|
||||
approximateCapturedTypes(ktType).upper
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user