[FIR] Introduce ConeStubType to have subtyping for non-fixed variables
Currently, it's needed after changes in d7b47108f70a107818a04c8b8db33bfbf7c7e590 Later it'll be also used for builder-inference
This commit is contained in:
@@ -222,7 +222,8 @@ private const val ERROR_TYPE_STUB = CommonClassNames.JAVA_LANG_OBJECT
|
||||
private fun ConeKotlinType.mapToCanonicalString(session: FirSession): String {
|
||||
return when (this) {
|
||||
is ConeClassLikeType -> mapToCanonicalString(session)
|
||||
is ConeTypeVariableType, is ConeFlexibleType, is ConeCapturedType, is ConeDefinitelyNotNullType, is ConeIntersectionType ->
|
||||
is ConeTypeVariableType, is ConeFlexibleType, is ConeCapturedType,
|
||||
is ConeDefinitelyNotNullType, is ConeIntersectionType, is ConeStubType ->
|
||||
error("Unexpected type: $this [${this::class}]")
|
||||
is ConeLookupTagBasedType -> lookupTag.name.asString()
|
||||
}
|
||||
@@ -250,7 +251,7 @@ private fun ConeClassType.mapToCanonicalString(session: FirSession): String {
|
||||
} + "[]"
|
||||
}
|
||||
|
||||
val context = ConeTypeCheckerContext(false, session)
|
||||
val context = ConeTypeCheckerContext(isErrorTypeEqualsToAnything = false, isStubTypeEqualsToAnything = true, session = session)
|
||||
|
||||
with(context) {
|
||||
val typeConstructor = typeConstructor()
|
||||
|
||||
@@ -223,7 +223,8 @@ private const val ERROR_TYPE_STUB = CommonClassNames.JAVA_LANG_OBJECT
|
||||
private fun ConeKotlinType.mapToCanonicalString(session: FirSession): String {
|
||||
return when (this) {
|
||||
is ConeClassLikeType -> mapToCanonicalString(session)
|
||||
is ConeTypeVariableType, is ConeFlexibleType, is ConeCapturedType, is ConeDefinitelyNotNullType, is ConeIntersectionType ->
|
||||
is ConeTypeVariableType, is ConeFlexibleType, is ConeCapturedType,
|
||||
is ConeDefinitelyNotNullType, is ConeIntersectionType, is ConeStubType ->
|
||||
error("Unexpected type: $this [${this::class}]")
|
||||
is ConeLookupTagBasedType -> lookupTag.name.asString()
|
||||
}
|
||||
@@ -251,7 +252,7 @@ private fun ConeClassType.mapToCanonicalString(session: FirSession): String {
|
||||
} + "[]"
|
||||
}
|
||||
|
||||
val context = ConeTypeCheckerContext(false, session)
|
||||
val context = ConeTypeCheckerContext(isErrorTypeEqualsToAnything = false, isStubTypeEqualsToAnything = true, session = session)
|
||||
|
||||
with(context) {
|
||||
val typeConstructor = typeConstructor()
|
||||
|
||||
Reference in New Issue
Block a user