Remove isMarkedNullable from FirResolvedTypeRef
This commit is contained in:
committed by
Mikhail Glukhikh
parent
458080ca8b
commit
9cef9e4056
@@ -218,8 +218,7 @@ class JavaSymbolProvider(
|
||||
this@JavaSymbolProvider.session, null,
|
||||
firSymbol.constructType(
|
||||
classTypeParameters.map { ConeTypeParameterTypeImpl(it.symbol, false) }.toTypedArray(), false
|
||||
),
|
||||
false, emptyList()
|
||||
)
|
||||
)
|
||||
).apply {
|
||||
this.typeParameters += typeParameters
|
||||
|
||||
@@ -90,7 +90,7 @@ internal fun JavaClassifierType.toFirResolvedTypeRef(
|
||||
): FirResolvedTypeRef {
|
||||
val coneType = this.toConeKotlinTypeWithNullability(session, javaTypeParameterStack, isNullable = false)
|
||||
return FirResolvedTypeRefImpl(
|
||||
session, psi = null, type = coneType, isMarkedNullable = false,
|
||||
session, psi = null, type = coneType,
|
||||
annotations = annotations.map { it.toFirAnnotationCall(session, javaTypeParameterStack) }
|
||||
)
|
||||
}
|
||||
@@ -173,7 +173,6 @@ internal fun JavaAnnotation.toFirAnnotationCall(
|
||||
session,
|
||||
psi = null,
|
||||
type = ConeClassTypeImpl(FirClassSymbol(classId!!).toLookupTag(), emptyArray(), isNullable = false),
|
||||
isMarkedNullable = true,
|
||||
annotations = emptyList()
|
||||
)
|
||||
).apply {
|
||||
@@ -312,7 +311,7 @@ private fun JavaType.toFirResolvedTypeRef(
|
||||
if (this is JavaClassifierType) return toFirResolvedTypeRef(session, javaTypeParameterStack)
|
||||
return FirResolvedTypeRefImpl(
|
||||
session, psi = null, type = ConeClassErrorType("Unexpected JavaType: $this"),
|
||||
isMarkedNullable = false, annotations = emptyList()
|
||||
annotations = emptyList()
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
+1
-2
@@ -147,7 +147,7 @@ class KotlinDeserializedJvmSymbolsProvider(
|
||||
return this?.let {
|
||||
FirResolvedTypeRefImpl(
|
||||
session, null, it.constructType(emptyList(), isNullable = false),
|
||||
isMarkedNullable = false, annotations = emptyList()
|
||||
annotations = emptyList()
|
||||
)
|
||||
} ?: FirErrorTypeRefImpl(session, null, "Symbol not found for $classId")
|
||||
|
||||
@@ -302,7 +302,6 @@ class KotlinDeserializedJvmSymbolsProvider(
|
||||
session,
|
||||
null,
|
||||
ConeClassTypeImpl(ConeClassLikeLookupTagImpl(outerClassId), emptyArray(), false),
|
||||
false,
|
||||
emptyList()
|
||||
)
|
||||
}
|
||||
|
||||
@@ -84,12 +84,12 @@ private fun JavaType?.enhancePossiblyFlexible(
|
||||
FirResolvedTypeRefImpl(
|
||||
session, psi = null,
|
||||
type = coneFlexibleOrSimpleType(session, lowerResult, upperResult),
|
||||
isMarkedNullable = false, annotations = annotations
|
||||
annotations = annotations
|
||||
)
|
||||
}
|
||||
else -> {
|
||||
val enhanced = type.toNotNullConeKotlinType(session, javaTypeParameterStack)
|
||||
FirResolvedTypeRefImpl(session, psi = null, type = enhanced, isMarkedNullable = false, annotations = annotations)
|
||||
FirResolvedTypeRefImpl(session, psi = null, type = enhanced, annotations = annotations)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@ fun FirTypeRef.resolvedTypeFromPrototype(
|
||||
type: ConeKotlinType
|
||||
): FirResolvedTypeRef {
|
||||
return FirResolvedTypeRefImpl(
|
||||
session, psi, type, false, annotations
|
||||
session, psi, type, annotations
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
+2
-4
@@ -94,8 +94,7 @@ abstract class AbstractAnnotationDeserializer(
|
||||
session, null, null,
|
||||
symbol?.let {
|
||||
FirResolvedTypeRefImpl(
|
||||
session, null, it.constructType(emptyList(), isNullable = false),
|
||||
isMarkedNullable = false, annotations = emptyList()
|
||||
session, null, it.constructType(emptyList(), isNullable = false)
|
||||
)
|
||||
} ?: FirErrorTypeRefImpl(session, null, "Symbol not found for $classId")
|
||||
).apply {
|
||||
@@ -127,8 +126,7 @@ abstract class AbstractAnnotationDeserializer(
|
||||
arguments += FirClassReferenceExpressionImpl(
|
||||
this@AbstractAnnotationDeserializer.session, null,
|
||||
FirResolvedTypeRefImpl(
|
||||
this@AbstractAnnotationDeserializer.session, null, referencedType,
|
||||
isMarkedNullable = false, annotations = emptyList()
|
||||
this@AbstractAnnotationDeserializer.session, null, referencedType
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
+1
-1
@@ -64,7 +64,7 @@ fun deserializeClassToSymbol(
|
||||
|
||||
superTypesDeserialized.mapNotNullTo(superTypeRefs) {
|
||||
if (it == null) return@mapNotNullTo null
|
||||
FirResolvedTypeRefImpl(session, null, it, false, emptyList())
|
||||
FirResolvedTypeRefImpl(session, null, it)
|
||||
}
|
||||
|
||||
addDeclarations(classProto.functionList.map(classDeserializer::loadFunction))
|
||||
|
||||
+2
-5
@@ -143,7 +143,6 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
|
||||
c.session,
|
||||
null,
|
||||
local.typeDeserializer.type(proto.underlyingType(c.typeTable)),
|
||||
false,
|
||||
emptyList() /* TODO */
|
||||
)
|
||||
).apply {
|
||||
@@ -247,9 +246,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
|
||||
klass.symbol.toLookupTag(),
|
||||
typeParameters.map { ConeTypeParameterTypeImpl(it.symbol, false) }.toTypedArray(),
|
||||
false
|
||||
),
|
||||
isMarkedNullable = false,
|
||||
annotations = emptyList()
|
||||
)
|
||||
)
|
||||
|
||||
return if (isPrimary) {
|
||||
@@ -310,7 +307,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
|
||||
private fun ProtoBuf.Type.toTypeRef(context: FirDeserializationContext): FirTypeRef {
|
||||
val coneType = context.typeDeserializer.type(this)
|
||||
return FirResolvedTypeRefImpl(
|
||||
c.session, null, coneType, coneType.nullability.isNullable,
|
||||
c.session, null, coneType,
|
||||
c.annotationDeserializer.loadTypeAnnotations(this)
|
||||
)
|
||||
}
|
||||
|
||||
+1
-1
@@ -98,7 +98,7 @@ class FirTypeDeserializer(
|
||||
val declaration = symbol.firUnsafe<FirTypeParameterImpl>()
|
||||
declaration.apply {
|
||||
proto.upperBoundList.mapTo(bounds) {
|
||||
FirResolvedTypeRefImpl(session, null, type(it), false, emptyList())
|
||||
FirResolvedTypeRefImpl(session, null, type(it), emptyList())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+5
-7
@@ -140,7 +140,6 @@ open class FirBodyResolveTransformer(val session: FirSession, val implicitTypeOn
|
||||
session,
|
||||
null,
|
||||
StandardClassIds.Boolean(symbolProvider).constructType(emptyArray(), isNullable = false),
|
||||
false,
|
||||
emptyList()
|
||||
)
|
||||
}
|
||||
@@ -205,7 +204,7 @@ open class FirBodyResolveTransformer(val session: FirSession, val implicitTypeOn
|
||||
} else
|
||||
FirResolvedTypeRefImpl(
|
||||
session, null, symbol.constructType(emptyArray(), isNullable = false),
|
||||
isMarkedNullable = false, annotations = emptyList()
|
||||
annotations = emptyList()
|
||||
)
|
||||
} else {
|
||||
error("WTF ! $symbol")
|
||||
@@ -273,7 +272,7 @@ open class FirBodyResolveTransformer(val session: FirSession, val implicitTypeOn
|
||||
val labelName = callee.labelName
|
||||
val types = if (labelName == null) labels.values() else labels[Name.identifier(labelName)]
|
||||
val type = types.lastOrNull() ?: ConeKotlinErrorType("Unresolved this@$labelName")
|
||||
qualifiedAccessExpression.resultType = FirResolvedTypeRefImpl(session, null, type, false, emptyList())
|
||||
qualifiedAccessExpression.resultType = FirResolvedTypeRefImpl(session, null, type, emptyList())
|
||||
}
|
||||
is FirSuperReference -> {
|
||||
qualifiedAccessExpression.resultType =
|
||||
@@ -435,7 +434,7 @@ open class FirBodyResolveTransformer(val session: FirSession, val implicitTypeOn
|
||||
session,
|
||||
null,
|
||||
Name.identifier("it"),
|
||||
FirResolvedTypeRefImpl(session, null, parameters.single(), false, emptyList()),
|
||||
FirResolvedTypeRefImpl(session, null, parameters.single(), emptyList()),
|
||||
null,
|
||||
false,
|
||||
false,
|
||||
@@ -565,7 +564,7 @@ open class FirBodyResolveTransformer(val session: FirSession, val implicitTypeOn
|
||||
commonSuperType(types.map { it.coneTypeUnsafe() })
|
||||
}
|
||||
} as ConeKotlinType
|
||||
return FirResolvedTypeRefImpl(session, null, commonSuperType, false, emptyList())
|
||||
return FirResolvedTypeRefImpl(session, null, commonSuperType, emptyList())
|
||||
}
|
||||
|
||||
override fun transformWhenExpression(whenExpression: FirWhenExpression, data: Any?): CompositeTransformResult<FirStatement> {
|
||||
@@ -618,7 +617,7 @@ open class FirBodyResolveTransformer(val session: FirSession, val implicitTypeOn
|
||||
|
||||
val type = ConeClassTypeImpl(symbol.toLookupTag(), emptyArray(), isNullable = kind == IrConstKind.Null)
|
||||
|
||||
constExpression.resultType = FirResolvedTypeRefImpl(session, null, type, false, emptyList())
|
||||
constExpression.resultType = FirResolvedTypeRefImpl(session, null, type, emptyList())
|
||||
} else {
|
||||
constExpression.resultType = expectedType
|
||||
}
|
||||
@@ -737,7 +736,6 @@ open class FirBodyResolveTransformer(val session: FirSession, val implicitTypeOn
|
||||
session,
|
||||
null,
|
||||
kClassSymbol.constructType(arrayOf(transformedGetClassCall.argument.resultType.coneTypeUnsafe()), false),
|
||||
false,
|
||||
emptyList()
|
||||
)
|
||||
return transformedGetClassCall.compose()
|
||||
|
||||
+1
-1
@@ -56,7 +56,7 @@ class FirCallCompleterTransformer(
|
||||
session,
|
||||
argument?.psi,
|
||||
Variance.INVARIANT,
|
||||
FirResolvedTypeRefImpl(session, null, type, false, emptyList())
|
||||
FirResolvedTypeRefImpl(session, null, type, emptyList())
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
-1
@@ -48,7 +48,6 @@ class FirSpecificTypeResolverTransformer(
|
||||
session,
|
||||
typeRef.psi,
|
||||
resolvedType,
|
||||
false,
|
||||
typeRef.annotations
|
||||
).compose()
|
||||
}
|
||||
|
||||
+7
@@ -59,6 +59,13 @@ open class FirTypeResolveTransformer : FirAbstractTreeTransformerWithSuperTypes(
|
||||
}
|
||||
}
|
||||
|
||||
override fun transformConstructor(constructor: FirConstructor, data: Nothing?): CompositeTransformResult<FirDeclaration> {
|
||||
return withScopeCleanup {
|
||||
constructor.addTypeParametersScope()
|
||||
super.transformConstructor(constructor, data)
|
||||
}
|
||||
}
|
||||
|
||||
override fun transformTypeAlias(typeAlias: FirTypeAlias, data: Nothing?): CompositeTransformResult<FirDeclaration> {
|
||||
return withScopeCleanup {
|
||||
typeAlias.addTypeParametersScope()
|
||||
|
||||
+1
-2
@@ -120,8 +120,7 @@ fun FirTypeRef.withReplacedConeType(session: FirSession, newType: ConeKotlinType
|
||||
|
||||
return FirResolvedTypeRefImpl(
|
||||
session, psi, newType,
|
||||
isMarkedNullable,
|
||||
annotations
|
||||
annotations = annotations
|
||||
)
|
||||
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.fir.types
|
||||
import org.jetbrains.kotlin.fir.VisitedSupertype
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
|
||||
interface FirResolvedTypeRef : FirTypeRefWithNullability {
|
||||
interface FirResolvedTypeRef : FirTypeRef {
|
||||
val type: ConeKotlinType
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||
|
||||
@@ -24,9 +24,6 @@ sealed class FirImplicitBuiltinTypeRef(
|
||||
override val annotations: List<FirAnnotationCall>
|
||||
get() = emptyList()
|
||||
|
||||
override val isMarkedNullable: Boolean
|
||||
get() = false
|
||||
|
||||
override val type: ConeKotlinType = ConeClassTypeImpl(ConeClassLikeLookupTagImpl(id), emptyArray(), false)
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||
|
||||
@@ -15,6 +15,5 @@ class FirResolvedTypeRefImpl(
|
||||
override val session: FirSession,
|
||||
override val psi: PsiElement?,
|
||||
override val type: ConeKotlinType,
|
||||
override val isMarkedNullable: Boolean,
|
||||
override val annotations: List<FirAnnotationCall>
|
||||
override val annotations: List<FirAnnotationCall> = emptyList()
|
||||
) : FirResolvedTypeRef
|
||||
+12
-12
@@ -360,6 +360,18 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
||||
return transformTypeRef(implicitTypeRef, data)
|
||||
}
|
||||
|
||||
open fun transformResolvedTypeRef(resolvedTypeRef: FirResolvedTypeRef, data: D): CompositeTransformResult<FirTypeRef> {
|
||||
return transformTypeRef(resolvedTypeRef, data)
|
||||
}
|
||||
|
||||
open fun transformErrorTypeRef(errorTypeRef: FirErrorTypeRef, data: D): CompositeTransformResult<FirTypeRef> {
|
||||
return transformResolvedTypeRef(errorTypeRef, data)
|
||||
}
|
||||
|
||||
open fun transformResolvedFunctionTypeRef(resolvedFunctionTypeRef: FirResolvedFunctionTypeRef, data: D): CompositeTransformResult<FirTypeRef> {
|
||||
return transformResolvedTypeRef(resolvedFunctionTypeRef, data)
|
||||
}
|
||||
|
||||
open fun transformTypeRefWithNullability(typeRefWithNullability: FirTypeRefWithNullability, data: D): CompositeTransformResult<FirTypeRef> {
|
||||
return transformTypeRef(typeRefWithNullability, data)
|
||||
}
|
||||
@@ -372,18 +384,6 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
||||
return transformTypeRefWithNullability(functionTypeRef, data)
|
||||
}
|
||||
|
||||
open fun transformResolvedTypeRef(resolvedTypeRef: FirResolvedTypeRef, data: D): CompositeTransformResult<FirTypeRef> {
|
||||
return transformTypeRefWithNullability(resolvedTypeRef, data)
|
||||
}
|
||||
|
||||
open fun transformErrorTypeRef(errorTypeRef: FirErrorTypeRef, data: D): CompositeTransformResult<FirTypeRef> {
|
||||
return transformResolvedTypeRef(errorTypeRef, data)
|
||||
}
|
||||
|
||||
open fun transformResolvedFunctionTypeRef(resolvedFunctionTypeRef: FirResolvedFunctionTypeRef, data: D): CompositeTransformResult<FirTypeRef> {
|
||||
return transformResolvedTypeRef(resolvedFunctionTypeRef, data)
|
||||
}
|
||||
|
||||
open fun transformUserTypeRef(userTypeRef: FirUserTypeRef, data: D): CompositeTransformResult<FirTypeRef> {
|
||||
return transformTypeRefWithNullability(userTypeRef, data)
|
||||
}
|
||||
|
||||
+12
-12
@@ -360,6 +360,18 @@ abstract class FirVisitor<out R, in D> {
|
||||
return visitTypeRef(implicitTypeRef, data)
|
||||
}
|
||||
|
||||
open fun visitResolvedTypeRef(resolvedTypeRef: FirResolvedTypeRef, data: D): R {
|
||||
return visitTypeRef(resolvedTypeRef, data)
|
||||
}
|
||||
|
||||
open fun visitErrorTypeRef(errorTypeRef: FirErrorTypeRef, data: D): R {
|
||||
return visitResolvedTypeRef(errorTypeRef, data)
|
||||
}
|
||||
|
||||
open fun visitResolvedFunctionTypeRef(resolvedFunctionTypeRef: FirResolvedFunctionTypeRef, data: D): R {
|
||||
return visitResolvedTypeRef(resolvedFunctionTypeRef, data)
|
||||
}
|
||||
|
||||
open fun visitTypeRefWithNullability(typeRefWithNullability: FirTypeRefWithNullability, data: D): R {
|
||||
return visitTypeRef(typeRefWithNullability, data)
|
||||
}
|
||||
@@ -372,18 +384,6 @@ abstract class FirVisitor<out R, in D> {
|
||||
return visitTypeRefWithNullability(functionTypeRef, data)
|
||||
}
|
||||
|
||||
open fun visitResolvedTypeRef(resolvedTypeRef: FirResolvedTypeRef, data: D): R {
|
||||
return visitTypeRefWithNullability(resolvedTypeRef, data)
|
||||
}
|
||||
|
||||
open fun visitErrorTypeRef(errorTypeRef: FirErrorTypeRef, data: D): R {
|
||||
return visitResolvedTypeRef(errorTypeRef, data)
|
||||
}
|
||||
|
||||
open fun visitResolvedFunctionTypeRef(resolvedFunctionTypeRef: FirResolvedFunctionTypeRef, data: D): R {
|
||||
return visitResolvedTypeRef(resolvedFunctionTypeRef, data)
|
||||
}
|
||||
|
||||
open fun visitUserTypeRef(userTypeRef: FirUserTypeRef, data: D): R {
|
||||
return visitTypeRefWithNullability(userTypeRef, data)
|
||||
}
|
||||
|
||||
+12
-12
@@ -360,6 +360,18 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
||||
visitTypeRef(implicitTypeRef, null)
|
||||
}
|
||||
|
||||
open fun visitResolvedTypeRef(resolvedTypeRef: FirResolvedTypeRef) {
|
||||
visitTypeRef(resolvedTypeRef, null)
|
||||
}
|
||||
|
||||
open fun visitErrorTypeRef(errorTypeRef: FirErrorTypeRef) {
|
||||
visitResolvedTypeRef(errorTypeRef, null)
|
||||
}
|
||||
|
||||
open fun visitResolvedFunctionTypeRef(resolvedFunctionTypeRef: FirResolvedFunctionTypeRef) {
|
||||
visitResolvedTypeRef(resolvedFunctionTypeRef, null)
|
||||
}
|
||||
|
||||
open fun visitTypeRefWithNullability(typeRefWithNullability: FirTypeRefWithNullability) {
|
||||
visitTypeRef(typeRefWithNullability, null)
|
||||
}
|
||||
@@ -372,18 +384,6 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
||||
visitTypeRefWithNullability(functionTypeRef, null)
|
||||
}
|
||||
|
||||
open fun visitResolvedTypeRef(resolvedTypeRef: FirResolvedTypeRef) {
|
||||
visitTypeRefWithNullability(resolvedTypeRef, null)
|
||||
}
|
||||
|
||||
open fun visitErrorTypeRef(errorTypeRef: FirErrorTypeRef) {
|
||||
visitResolvedTypeRef(errorTypeRef, null)
|
||||
}
|
||||
|
||||
open fun visitResolvedFunctionTypeRef(resolvedFunctionTypeRef: FirResolvedFunctionTypeRef) {
|
||||
visitResolvedTypeRef(resolvedFunctionTypeRef, null)
|
||||
}
|
||||
|
||||
open fun visitUserTypeRef(userTypeRef: FirUserTypeRef) {
|
||||
visitTypeRefWithNullability(userTypeRef, null)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user