FIR: Rename ConeClassTypeImpl -> ConeClassLikeTypeImpl
This commit is contained in:
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.fir.types.impl
|
|||||||
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag
|
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
|
|
||||||
open class ConeClassTypeImpl(
|
open class ConeClassLikeTypeImpl(
|
||||||
override val lookupTag: ConeClassLikeLookupTag,
|
override val lookupTag: ConeClassLikeLookupTag,
|
||||||
override val typeArguments: Array<out ConeKotlinTypeProjection>,
|
override val typeArguments: Array<out ConeKotlinTypeProjection>,
|
||||||
isNullable: Boolean
|
isNullable: Boolean
|
||||||
@@ -18,7 +18,7 @@ open class ConeClassTypeImpl(
|
|||||||
if (this === other) return true
|
if (this === other) return true
|
||||||
if (javaClass != other?.javaClass) return false
|
if (javaClass != other?.javaClass) return false
|
||||||
|
|
||||||
other as ConeClassTypeImpl
|
other as ConeClassLikeTypeImpl
|
||||||
|
|
||||||
if (lookupTag != other.lookupTag) return false
|
if (lookupTag != other.lookupTag) return false
|
||||||
if (!typeArguments.contentEquals(other.typeArguments)) return false
|
if (!typeArguments.contentEquals(other.typeArguments)) return false
|
||||||
@@ -33,8 +33,6 @@ open class ConeClassTypeImpl(
|
|||||||
result = 31 * result + nullability.hashCode()
|
result = 31 * result + nullability.hashCode()
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class ConeAbbreviatedTypeImpl(
|
class ConeAbbreviatedTypeImpl(
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl
|
|||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
||||||
import org.jetbrains.kotlin.fir.toFirSourceElement
|
import org.jetbrains.kotlin.fir.toFirSourceElement
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl
|
||||||
import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl
|
import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrConstKind
|
import org.jetbrains.kotlin.ir.expressions.IrConstKind
|
||||||
@@ -63,7 +63,7 @@ internal fun ClassId.toConeKotlinType(
|
|||||||
isNullable: Boolean
|
isNullable: Boolean
|
||||||
): ConeLookupTagBasedType {
|
): ConeLookupTagBasedType {
|
||||||
val lookupTag = ConeClassLikeLookupTagImpl(this)
|
val lookupTag = ConeClassLikeLookupTagImpl(this)
|
||||||
return ConeClassTypeImpl(lookupTag, typeArguments, isNullable)
|
return ConeClassLikeTypeImpl(lookupTag, typeArguments, isNullable)
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun FirTypeRef.toNotNullConeKotlinType(
|
internal fun FirTypeRef.toNotNullConeKotlinType(
|
||||||
@@ -180,7 +180,7 @@ internal fun JavaAnnotation.toFirAnnotationCall(
|
|||||||
source = null, useSiteTarget = null,
|
source = null, useSiteTarget = null,
|
||||||
annotationTypeRef = FirResolvedTypeRefImpl(
|
annotationTypeRef = FirResolvedTypeRefImpl(
|
||||||
source = null,
|
source = null,
|
||||||
type = ConeClassTypeImpl(FirRegularClassSymbol(classId!!).toLookupTag(), emptyArray(), isNullable = false)
|
type = ConeClassLikeTypeImpl(FirRegularClassSymbol(classId!!).toLookupTag(), emptyArray(), isNullable = false)
|
||||||
)
|
)
|
||||||
).apply {
|
).apply {
|
||||||
for (argument in this@toFirAnnotationCall.arguments) {
|
for (argument in this@toFirAnnotationCall.arguments) {
|
||||||
|
|||||||
+1
-1
@@ -1459,7 +1459,7 @@ class DeclarationsConverter(
|
|||||||
null,
|
null,
|
||||||
FirResolvedTypeRefImpl(
|
FirResolvedTypeRefImpl(
|
||||||
null,
|
null,
|
||||||
ConeClassTypeImpl(
|
ConeClassLikeTypeImpl(
|
||||||
ConeClassLikeLookupTagImpl(ClassId.fromString(EXTENSION_FUNCTION_ANNOTATION)),
|
ConeClassLikeLookupTagImpl(ClassId.fromString(EXTENSION_FUNCTION_ANNOTATION)),
|
||||||
emptyArray(),
|
emptyArray(),
|
||||||
false
|
false
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
|||||||
import org.jetbrains.kotlin.fir.types.ConeTypeParameterType
|
import org.jetbrains.kotlin.fir.types.ConeTypeParameterType
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
import org.jetbrains.kotlin.fir.types.coneTypeSafe
|
import org.jetbrains.kotlin.fir.types.coneTypeSafe
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl
|
||||||
import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl
|
import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrConstKind
|
import org.jetbrains.kotlin.ir.expressions.IrConstKind
|
||||||
@@ -158,7 +158,7 @@ abstract class BaseFirBuilder<T>(val session: FirSession, val context: Context =
|
|||||||
}
|
}
|
||||||
return FirResolvedTypeRefImpl(
|
return FirResolvedTypeRefImpl(
|
||||||
this?.toFirSourceElement(),
|
this?.toFirSourceElement(),
|
||||||
ConeClassTypeImpl(
|
ConeClassLikeTypeImpl(
|
||||||
firClass.symbol.toLookupTag(),
|
firClass.symbol.toLookupTag(),
|
||||||
typeParameters.map { ConeTypeParameterTypeImpl(it.symbol.toLookupTag(), false) }.toTypedArray(),
|
typeParameters.map { ConeTypeParameterTypeImpl(it.symbol.toLookupTag(), false) }.toTypedArray(),
|
||||||
false
|
false
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ import org.jetbrains.kotlin.fir.symbols.StandardClassIds
|
|||||||
import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl
|
import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
||||||
import org.jetbrains.kotlin.fir.types.impl.FirImplicitStringTypeRef
|
import org.jetbrains.kotlin.fir.types.impl.FirImplicitStringTypeRef
|
||||||
import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl
|
import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
@@ -40,10 +40,10 @@ fun FirModifiableRegularClass.generateValuesFunction(
|
|||||||
FirSimpleFunctionImpl(
|
FirSimpleFunctionImpl(
|
||||||
source, session,
|
source, session,
|
||||||
FirResolvedTypeRefImpl(
|
FirResolvedTypeRefImpl(
|
||||||
source, ConeClassTypeImpl(
|
source, ConeClassLikeTypeImpl(
|
||||||
ConeClassLikeLookupTagImpl(StandardClassIds.Array),
|
ConeClassLikeLookupTagImpl(StandardClassIds.Array),
|
||||||
arrayOf(
|
arrayOf(
|
||||||
ConeClassTypeImpl(ConeClassLikeLookupTagImpl(this.symbol.classId), emptyArray(), isNullable = false)
|
ConeClassLikeTypeImpl(ConeClassLikeLookupTagImpl(this.symbol.classId), emptyArray(), isNullable = false)
|
||||||
),
|
),
|
||||||
isNullable = false
|
isNullable = false
|
||||||
)
|
)
|
||||||
@@ -66,7 +66,7 @@ fun FirModifiableRegularClass.generateValueOfFunction(
|
|||||||
FirSimpleFunctionImpl(
|
FirSimpleFunctionImpl(
|
||||||
source, session,
|
source, session,
|
||||||
FirResolvedTypeRefImpl(
|
FirResolvedTypeRefImpl(
|
||||||
source, ConeClassTypeImpl(
|
source, ConeClassLikeTypeImpl(
|
||||||
ConeClassLikeLookupTagImpl(this.symbol.classId),
|
ConeClassLikeLookupTagImpl(this.symbol.classId),
|
||||||
emptyArray(),
|
emptyArray(),
|
||||||
isNullable = false
|
isNullable = false
|
||||||
|
|||||||
@@ -1376,7 +1376,7 @@ class RawFirBuilder(session: FirSession, val stubMode: Boolean) : BaseFirBuilder
|
|||||||
null,
|
null,
|
||||||
FirResolvedTypeRefImpl(
|
FirResolvedTypeRefImpl(
|
||||||
null,
|
null,
|
||||||
ConeClassTypeImpl(
|
ConeClassLikeTypeImpl(
|
||||||
ConeClassLikeLookupTagImpl(ClassId.fromString(EXTENSION_FUNCTION_ANNOTATION)),
|
ConeClassLikeLookupTagImpl(ClassId.fromString(EXTENSION_FUNCTION_ANNOTATION)),
|
||||||
emptyArray(),
|
emptyArray(),
|
||||||
false
|
false
|
||||||
|
|||||||
+2
-3
@@ -14,9 +14,8 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl
|
|||||||
import org.jetbrains.kotlin.fir.declarations.impl.FirEnumEntryImpl
|
import org.jetbrains.kotlin.fir.declarations.impl.FirEnumEntryImpl
|
||||||
import org.jetbrains.kotlin.fir.declarations.impl.FirSealedClassImpl
|
import org.jetbrains.kotlin.fir.declarations.impl.FirSealedClassImpl
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl
|
import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
||||||
import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl
|
import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl
|
||||||
import org.jetbrains.kotlin.metadata.ProtoBuf
|
import org.jetbrains.kotlin.metadata.ProtoBuf
|
||||||
import org.jetbrains.kotlin.metadata.deserialization.Flags
|
import org.jetbrains.kotlin.metadata.deserialization.Flags
|
||||||
@@ -125,7 +124,7 @@ fun deserializeClassToSymbol(
|
|||||||
resolvePhase = FirResolvePhase.DECLARATIONS
|
resolvePhase = FirResolvePhase.DECLARATIONS
|
||||||
superTypeRefs += FirResolvedTypeRefImpl(
|
superTypeRefs += FirResolvedTypeRefImpl(
|
||||||
null,
|
null,
|
||||||
ConeClassTypeImpl(ConeClassLikeLookupTagImpl(classId), emptyArray(), false)
|
ConeClassLikeTypeImpl(ConeClassLikeLookupTagImpl(classId), emptyArray(), false)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-3
@@ -6,7 +6,6 @@
|
|||||||
package org.jetbrains.kotlin.fir.deserialization
|
package org.jetbrains.kotlin.fir.deserialization
|
||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.declarations.*
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
@@ -16,7 +15,7 @@ import org.jetbrains.kotlin.fir.expressions.impl.FirExpressionStub
|
|||||||
import org.jetbrains.kotlin.fir.symbols.CallableId
|
import org.jetbrains.kotlin.fir.symbols.CallableId
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl
|
||||||
import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl
|
import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl
|
||||||
import org.jetbrains.kotlin.metadata.ProtoBuf
|
import org.jetbrains.kotlin.metadata.ProtoBuf
|
||||||
@@ -258,7 +257,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
|
|||||||
|
|
||||||
val delegatedSelfType = FirResolvedTypeRefImpl(
|
val delegatedSelfType = FirResolvedTypeRefImpl(
|
||||||
null,
|
null,
|
||||||
ConeClassTypeImpl(
|
ConeClassLikeTypeImpl(
|
||||||
klass.symbol.toLookupTag(),
|
klass.symbol.toLookupTag(),
|
||||||
typeParameters.map { ConeTypeParameterTypeImpl(it.symbol.toLookupTag(), false) }.toTypedArray(),
|
typeParameters.map { ConeTypeParameterTypeImpl(it.symbol.toLookupTag(), false) }.toTypedArray(),
|
||||||
false
|
false
|
||||||
|
|||||||
+2
-2
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
|
|||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeAbbreviatedTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeAbbreviatedTypeImpl
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl
|
||||||
import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl
|
import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl
|
||||||
import org.jetbrains.kotlin.metadata.ProtoBuf
|
import org.jetbrains.kotlin.metadata.ProtoBuf
|
||||||
@@ -128,7 +128,7 @@ class FirTypeDeserializer(
|
|||||||
//createSuspendFunctionType(annotations, constructor, arguments, proto.nullable)
|
//createSuspendFunctionType(annotations, constructor, arguments, proto.nullable)
|
||||||
ConeClassErrorType("createSuspendFunctionType not supported")
|
ConeClassErrorType("createSuspendFunctionType not supported")
|
||||||
} else {
|
} else {
|
||||||
ConeClassTypeImpl(constructor, arguments, isNullable = proto.nullable)
|
ConeClassLikeTypeImpl(constructor, arguments, isNullable = proto.nullable)
|
||||||
}
|
}
|
||||||
|
|
||||||
val abbreviatedTypeProto = proto.abbreviatedType(typeTable) ?: return simpleType
|
val abbreviatedTypeProto = proto.abbreviatedType(typeTable) ?: return simpleType
|
||||||
|
|||||||
+2
-2
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.fir.references.FirNamedReference
|
|||||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||||
import org.jetbrains.kotlin.fir.types.ConeStarProjection
|
import org.jetbrains.kotlin.fir.types.ConeStarProjection
|
||||||
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
||||||
|
|
||||||
sealed class DoubleColonLHS(val type: ConeKotlinType) {
|
sealed class DoubleColonLHS(val type: ConeKotlinType) {
|
||||||
/**
|
/**
|
||||||
@@ -146,7 +146,7 @@ class FirDoubleColonExpressionResolver(
|
|||||||
?.fir as? FirRegularClass
|
?.fir as? FirRegularClass
|
||||||
?: return null
|
?: return null
|
||||||
|
|
||||||
val type = ConeClassTypeImpl(
|
val type = ConeClassLikeTypeImpl(
|
||||||
firClass.symbol.toLookupTag(),
|
firClass.symbol.toLookupTag(),
|
||||||
Array(firClass.typeParameters.size) { ConeStarProjection },
|
Array(firClass.typeParameters.size) { ConeStarProjection },
|
||||||
isNullable = false // TODO: Use org.jetbrains.kotlin.psi.KtDoubleColonExpression.getHasQuestionMarks
|
isNullable = false // TODO: Use org.jetbrains.kotlin.psi.KtDoubleColonExpression.getHasQuestionMarks
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ fun ConeClassifierLookupTag.toSymbol(useSiteSession: FirSession): FirClassifierS
|
|||||||
fun ConeTypeParameterLookupTag.toSymbol(): FirTypeParameterSymbol = this.symbol as FirTypeParameterSymbol
|
fun ConeTypeParameterLookupTag.toSymbol(): FirTypeParameterSymbol = this.symbol as FirTypeParameterSymbol
|
||||||
|
|
||||||
fun ConeClassLikeLookupTag.constructClassType(typeArguments: Array<out ConeKotlinTypeProjection>, isNullable: Boolean): ConeLookupTagBasedType {
|
fun ConeClassLikeLookupTag.constructClassType(typeArguments: Array<out ConeKotlinTypeProjection>, isNullable: Boolean): ConeLookupTagBasedType {
|
||||||
return ConeClassTypeImpl(this, typeArguments, isNullable)
|
return ConeClassLikeTypeImpl(this, typeArguments, isNullable)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun ConeClassifierLookupTag.constructType(typeArguments: Array<ConeKotlinTypeProjection>, isNullable: Boolean): ConeLookupTagBasedType {
|
fun ConeClassifierLookupTag.constructType(typeArguments: Array<ConeKotlinTypeProjection>, isNullable: Boolean): ConeLookupTagBasedType {
|
||||||
@@ -126,7 +126,7 @@ fun FirClassifierSymbol<*>.constructType(typeArguments: Array<ConeKotlinTypeProj
|
|||||||
ConeTypeParameterTypeImpl(this.toLookupTag(), isNullable)
|
ConeTypeParameterTypeImpl(this.toLookupTag(), isNullable)
|
||||||
}
|
}
|
||||||
is FirClassSymbol -> {
|
is FirClassSymbol -> {
|
||||||
ConeClassTypeImpl(this.toLookupTag(), typeArguments, isNullable)
|
ConeClassLikeTypeImpl(this.toLookupTag(), typeArguments, isNullable)
|
||||||
}
|
}
|
||||||
is FirTypeAliasSymbol -> {
|
is FirTypeAliasSymbol -> {
|
||||||
ConeAbbreviatedTypeImpl(
|
ConeAbbreviatedTypeImpl(
|
||||||
@@ -242,7 +242,7 @@ fun createFunctionalType(
|
|||||||
|
|
||||||
val postfix = "Function${receiverAndParameterTypes.size - 1}"
|
val postfix = "Function${receiverAndParameterTypes.size - 1}"
|
||||||
val functionalTypeId = if (isKFunctionType) StandardClassIds.reflectByName("K$postfix") else StandardClassIds.byName(postfix)
|
val functionalTypeId = if (isKFunctionType) StandardClassIds.reflectByName("K$postfix") else StandardClassIds.byName(postfix)
|
||||||
return ConeClassTypeImpl(ConeClassLikeLookupTagImpl(functionalTypeId), receiverAndParameterTypes.toTypedArray(), isNullable = false)
|
return ConeClassLikeTypeImpl(ConeClassLikeLookupTagImpl(functionalTypeId), receiverAndParameterTypes.toTypedArray(), isNullable = false)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun createKPropertyType(
|
fun createKPropertyType(
|
||||||
@@ -252,7 +252,7 @@ fun createKPropertyType(
|
|||||||
): ConeLookupTagBasedType {
|
): ConeLookupTagBasedType {
|
||||||
val arguments = if (receiverType != null) listOf(receiverType, rawReturnType) else listOf(rawReturnType)
|
val arguments = if (receiverType != null) listOf(receiverType, rawReturnType) else listOf(rawReturnType)
|
||||||
val classId = StandardClassIds.reflectByName("K${if (isMutable) "Mutable" else ""}Property${arguments.size - 1}")
|
val classId = StandardClassIds.reflectByName("K${if (isMutable) "Mutable" else ""}Property${arguments.size - 1}")
|
||||||
return ConeClassTypeImpl(ConeClassLikeLookupTagImpl(classId), arguments.toTypedArray(), isNullable = false)
|
return ConeClassLikeTypeImpl(ConeClassLikeLookupTagImpl(classId), arguments.toTypedArray(), isNullable = false)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun BodyResolveComponents.typeForQualifier(resolvedQualifier: FirResolvedQualifier): FirTypeRef {
|
fun BodyResolveComponents.typeForQualifier(resolvedQualifier: FirResolvedQualifier): FirTypeRef {
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
|||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl
|
||||||
import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl
|
import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
@@ -77,7 +77,7 @@ class FirSamResolverImpl(
|
|||||||
.map { it.symbol }
|
.map { it.symbol }
|
||||||
.zip(type.typeArguments.map {
|
.zip(type.typeArguments.map {
|
||||||
(it as? ConeTypedProjection)?.type
|
(it as? ConeTypedProjection)?.type
|
||||||
?: ConeClassTypeImpl(ConeClassLikeLookupTagImpl(StandardClassIds.Any), emptyArray(), isNullable = true)
|
?: ConeClassLikeTypeImpl(ConeClassLikeLookupTagImpl(StandardClassIds.Any), emptyArray(), isNullable = true)
|
||||||
})
|
})
|
||||||
.toMap()
|
.toMap()
|
||||||
)
|
)
|
||||||
@@ -146,7 +146,7 @@ class FirSamResolverImpl(
|
|||||||
|
|
||||||
val substitutedFunctionType = substitutor.substituteOrSelf(functionType)
|
val substitutedFunctionType = substitutor.substituteOrSelf(functionType)
|
||||||
val substitutedReturnType =
|
val substitutedReturnType =
|
||||||
ConeClassTypeImpl(
|
ConeClassLikeTypeImpl(
|
||||||
firRegularClass.symbol.toLookupTag(), newTypeParameterTypes.toTypedArray(), isNullable = false
|
firRegularClass.symbol.toLookupTag(), newTypeParameterTypes.toTypedArray(), isNullable = false
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
|||||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.FirCompositeScope
|
import org.jetbrains.kotlin.fir.scopes.impl.FirCompositeScope
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl
|
||||||
|
|
||||||
fun ConeKotlinType.scope(useSiteSession: FirSession, scopeSession: ScopeSession): FirScope? {
|
fun ConeKotlinType.scope(useSiteSession: FirSession, scopeSession: ScopeSession): FirScope? {
|
||||||
@@ -45,8 +45,8 @@ fun ConeKotlinType.scope(useSiteSession: FirSession, scopeSession: ScopeSession)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun FirRegularClass.defaultType(): ConeClassTypeImpl {
|
fun FirRegularClass.defaultType(): ConeClassLikeTypeImpl {
|
||||||
return ConeClassTypeImpl(
|
return ConeClassLikeTypeImpl(
|
||||||
symbol.toLookupTag(),
|
symbol.toLookupTag(),
|
||||||
typeParameters.map {
|
typeParameters.map {
|
||||||
ConeTypeParameterTypeImpl(
|
ConeTypeParameterTypeImpl(
|
||||||
@@ -58,8 +58,8 @@ fun FirRegularClass.defaultType(): ConeClassTypeImpl {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun FirAnonymousObject.defaultType(): ConeClassTypeImpl {
|
fun FirAnonymousObject.defaultType(): ConeClassLikeTypeImpl {
|
||||||
return ConeClassTypeImpl(
|
return ConeClassLikeTypeImpl(
|
||||||
symbol.toLookupTag(),
|
symbol.toLookupTag(),
|
||||||
emptyArray(),
|
emptyArray(),
|
||||||
isNullable = false
|
isNullable = false
|
||||||
|
|||||||
+2
-2
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirClassifierSymbol
|
|||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.invoke
|
import org.jetbrains.kotlin.fir.symbols.invoke
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl
|
||||||
import org.jetbrains.kotlin.types.AbstractTypeChecker
|
import org.jetbrains.kotlin.types.AbstractTypeChecker
|
||||||
import org.jetbrains.kotlin.types.AbstractTypeCheckerContext
|
import org.jetbrains.kotlin.types.AbstractTypeCheckerContext
|
||||||
@@ -58,7 +58,7 @@ interface ConeInferenceContext : TypeSystemInferenceExtensionContext,
|
|||||||
): SimpleTypeMarker {
|
): SimpleTypeMarker {
|
||||||
require(constructor is FirClassifierSymbol<*>)
|
require(constructor is FirClassifierSymbol<*>)
|
||||||
return when (constructor) {
|
return when (constructor) {
|
||||||
is FirClassLikeSymbol<*> -> ConeClassTypeImpl(
|
is FirClassLikeSymbol<*> -> ConeClassLikeTypeImpl(
|
||||||
constructor.toLookupTag(),
|
constructor.toLookupTag(),
|
||||||
(arguments as List<ConeKotlinTypeProjection>).toTypedArray(),
|
(arguments as List<ConeKotlinTypeProjection>).toTypedArray(),
|
||||||
nullable
|
nullable
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
|
|||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
||||||
import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl
|
import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl
|
||||||
|
|
||||||
interface ReceiverValue {
|
interface ReceiverValue {
|
||||||
@@ -36,7 +36,7 @@ private fun receiverExpression(symbol: AbstractFirBasedSymbol<*>, type: ConeKotl
|
|||||||
}
|
}
|
||||||
|
|
||||||
class ClassDispatchReceiverValue(val klassSymbol: FirClassSymbol<*>) : ReceiverValue {
|
class ClassDispatchReceiverValue(val klassSymbol: FirClassSymbol<*>) : ReceiverValue {
|
||||||
override val type: ConeKotlinType = ConeClassTypeImpl(
|
override val type: ConeKotlinType = ConeClassLikeTypeImpl(
|
||||||
klassSymbol.toLookupTag(),
|
klassSymbol.toLookupTag(),
|
||||||
(klassSymbol.fir as? FirTypeParametersOwner)?.typeParameters?.map { ConeStarProjection }?.toTypedArray().orEmpty(),
|
(klassSymbol.fir as? FirTypeParametersOwner)?.typeParameters?.map { ConeStarProjection }?.toTypedArray().orEmpty(),
|
||||||
isNullable = false
|
isNullable = false
|
||||||
|
|||||||
+2
-2
@@ -271,14 +271,14 @@ private fun extractInputOutputTypesFromCallableReferenceExpectedType(expectedTyp
|
|||||||
private fun extractInputOutputTypesFromFunctionType(functionType: ConeKotlinType): InputOutputTypes {
|
private fun extractInputOutputTypesFromFunctionType(functionType: ConeKotlinType): InputOutputTypes {
|
||||||
val receiver = null// TODO: functionType.receiverType()
|
val receiver = null// TODO: functionType.receiverType()
|
||||||
val parameters = functionType.valueParameterTypes.map {
|
val parameters = functionType.valueParameterTypes.map {
|
||||||
it ?: ConeClassTypeImpl(
|
it ?: ConeClassLikeTypeImpl(
|
||||||
ConeClassLikeLookupTagImpl(StandardClassIds.Nothing), emptyArray(),
|
ConeClassLikeLookupTagImpl(StandardClassIds.Nothing), emptyArray(),
|
||||||
isNullable = false
|
isNullable = false
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
val inputTypes = /*listOfNotNull(receiver) +*/ parameters
|
val inputTypes = /*listOfNotNull(receiver) +*/ parameters
|
||||||
val outputType = functionType.returnType ?: ConeClassTypeImpl(
|
val outputType = functionType.returnType ?: ConeClassLikeTypeImpl(
|
||||||
ConeClassLikeLookupTagImpl(StandardClassIds.Any), emptyArray(),
|
ConeClassLikeLookupTagImpl(StandardClassIds.Any), emptyArray(),
|
||||||
isNullable = true
|
isNullable = true
|
||||||
)
|
)
|
||||||
|
|||||||
+2
-2
@@ -18,7 +18,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
|
|||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassifierSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirClassifierSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
||||||
import org.jetbrains.kotlin.fir.types.impl.FirImplicitBuiltinTypeRef
|
import org.jetbrains.kotlin.fir.types.impl.FirImplicitBuiltinTypeRef
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
|
|
||||||
@@ -92,7 +92,7 @@ class FirTypeResolverImpl(private val session: FirSession) : FirTypeResolver {
|
|||||||
listOfNotNull((typeRef.receiverTypeRef as FirResolvedTypeRef?)?.type) +
|
listOfNotNull((typeRef.receiverTypeRef as FirResolvedTypeRef?)?.type) +
|
||||||
typeRef.valueParameters.map { it.returnTypeRef.coneTypeUnsafe<ConeKotlinType>() } +
|
typeRef.valueParameters.map { it.returnTypeRef.coneTypeUnsafe<ConeKotlinType>() } +
|
||||||
listOf(typeRef.returnTypeRef.coneTypeUnsafe())
|
listOf(typeRef.returnTypeRef.coneTypeUnsafe())
|
||||||
return ConeClassTypeImpl(
|
return ConeClassLikeTypeImpl(
|
||||||
resolveBuiltInQualified(KotlinBuiltIns.getFunctionClassId(typeRef.parametersCount), session).toLookupTag(),
|
resolveBuiltInQualified(KotlinBuiltIns.getFunctionClassId(typeRef.parametersCount), session).toLookupTag(),
|
||||||
parameters.toTypedArray(),
|
parameters.toTypedArray(),
|
||||||
typeRef.isMarkedNullable
|
typeRef.isMarkedNullable
|
||||||
|
|||||||
+2
-2
@@ -9,7 +9,7 @@ import org.jetbrains.kotlin.fir.resolve.withNullability
|
|||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeAbbreviatedTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeAbbreviatedTypeImpl
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
||||||
import org.jetbrains.kotlin.types.model.TypeSubstitutorMarker
|
import org.jetbrains.kotlin.types.model.TypeSubstitutorMarker
|
||||||
|
|
||||||
|
|
||||||
@@ -125,7 +125,7 @@ abstract class AbstractConeSubstitutor : ConeSubstitutor() {
|
|||||||
}
|
}
|
||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST")
|
||||||
return when (this) {
|
return when (this) {
|
||||||
is ConeClassTypeImpl -> ConeClassTypeImpl(
|
is ConeClassLikeTypeImpl -> ConeClassLikeTypeImpl(
|
||||||
lookupTag,
|
lookupTag,
|
||||||
newArguments as Array<ConeKotlinTypeProjection>,
|
newArguments as Array<ConeKotlinTypeProjection>,
|
||||||
nullability.isNullable
|
nullability.isNullable
|
||||||
|
|||||||
+2
-2
@@ -33,7 +33,7 @@ import org.jetbrains.kotlin.fir.symbols.StandardClassIds
|
|||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.invoke
|
import org.jetbrains.kotlin.fir.symbols.invoke
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
||||||
import org.jetbrains.kotlin.fir.types.impl.FirErrorTypeRefImpl
|
import org.jetbrains.kotlin.fir.types.impl.FirErrorTypeRefImpl
|
||||||
import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl
|
import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl
|
||||||
import org.jetbrains.kotlin.fir.visitors.CompositeTransformResult
|
import org.jetbrains.kotlin.fir.visitors.CompositeTransformResult
|
||||||
@@ -398,7 +398,7 @@ class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransformer) :
|
|||||||
IrConstKind.Double -> StandardClassIds.Double(symbolProvider)
|
IrConstKind.Double -> StandardClassIds.Double(symbolProvider)
|
||||||
}
|
}
|
||||||
|
|
||||||
val type = ConeClassTypeImpl(symbol.toLookupTag(), emptyArray(), isNullable = kind == IrConstKind.Null)
|
val type = ConeClassLikeTypeImpl(symbol.toLookupTag(), emptyArray(), isNullable = kind == IrConstKind.Null)
|
||||||
|
|
||||||
constExpression.resultType = FirResolvedTypeRefImpl(null, type)
|
constExpression.resultType = FirResolvedTypeRefImpl(null, type)
|
||||||
dataFlowAnalyzer.exitConstExpresion(constExpression as FirConstExpression<*>)
|
dataFlowAnalyzer.exitConstExpresion(constExpression as FirConstExpression<*>)
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
|
|||||||
import org.jetbrains.kotlin.fir.symbols.StandardClassIds
|
import org.jetbrains.kotlin.fir.symbols.StandardClassIds
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||||
import org.jetbrains.kotlin.fir.symbols.invoke
|
import org.jetbrains.kotlin.fir.symbols.invoke
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.FqNameUnsafe
|
import org.jetbrains.kotlin.name.FqNameUnsafe
|
||||||
@@ -482,7 +482,7 @@ interface ConeTypeContext : TypeSystemContext, TypeSystemOptimizationContext, Ty
|
|||||||
override fun TypeParameterMarker.getRepresentativeUpperBound(): KotlinTypeMarker {
|
override fun TypeParameterMarker.getRepresentativeUpperBound(): KotlinTypeMarker {
|
||||||
require(this is FirTypeParameterSymbol)
|
require(this is FirTypeParameterSymbol)
|
||||||
return this.fir.bounds.getOrNull(0)?.let { (it as? FirResolvedTypeRef)?.type }
|
return this.fir.bounds.getOrNull(0)?.let { (it as? FirResolvedTypeRef)?.type }
|
||||||
?: ConeClassTypeImpl(
|
?: ConeClassLikeTypeImpl(
|
||||||
ConeClassLikeLookupTagImpl(ClassId.topLevel(KotlinBuiltIns.FQ_NAMES.any.toSafe())), emptyArray(), true
|
ConeClassLikeLookupTagImpl(ClassId.topLevel(KotlinBuiltIns.FQ_NAMES.any.toSafe())), emptyArray(), true
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user