Remove constraints containing stub types after completion of the common system of a builder inference call

^KT-49285 Fixed
This commit is contained in:
Victor Petukhov
2021-10-19 14:07:54 +03:00
parent 012f1f6013
commit 64c682f465
14 changed files with 89 additions and 0 deletions
@@ -226,6 +226,8 @@ interface TypeSystemInferenceExtensionContext : TypeSystemContext, TypeSystemBui
fun KotlinTypeMarker.getFunctionalTypeFromSupertypes(): KotlinTypeMarker
fun StubTypeMarker.getOriginalTypeVariable(): TypeVariableTypeConstructorMarker
fun getFunctionTypeConstructor(parametersNumber: Int, isSuspend: Boolean): TypeConstructorMarker
fun getKFunctionTypeConstructor(parametersNumber: Int, isSuspend: Boolean): TypeConstructorMarker
@@ -94,6 +94,11 @@ interface ClassicTypeSystemContext : TypeSystemInferenceExtensionContext, TypeSy
return this is StubTypeForBuilderInference || isDefNotNullStubType<StubTypeForBuilderInference>()
}
override fun StubTypeMarker.getOriginalTypeVariable(): TypeVariableTypeConstructorMarker {
require(this is AbstractStubType, this::errorMessage)
return this.originalTypeVariable as TypeVariableTypeConstructorMarker
}
override fun CapturedTypeMarker.lowerType(): KotlinTypeMarker? {
require(this is NewCapturedType, this::errorMessage)
return this.lowerType