[FIR] Get rid of FirResolvedTypeRef.isSuspend
This commit is contained in:
+2
-1
@@ -55,6 +55,7 @@ import org.jetbrains.kotlin.name.FqName
|
|||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
|
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
|
||||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||||
|
import org.jetbrains.kotlin.fir.resolve.inference.isSuspendFunctionType
|
||||||
|
|
||||||
@OptIn(ObsoleteDescriptorBasedAPI::class)
|
@OptIn(ObsoleteDescriptorBasedAPI::class)
|
||||||
class Fir2IrDeclarationStorage(
|
class Fir2IrDeclarationStorage(
|
||||||
@@ -408,7 +409,7 @@ class Fir2IrDeclarationStorage(
|
|||||||
?: if (isLambda) Name.special("<anonymous>") else Name.special("<no name provided>")
|
?: if (isLambda) Name.special("<anonymous>") else Name.special("<no name provided>")
|
||||||
val visibility = simpleFunction?.visibility ?: Visibilities.Local
|
val visibility = simpleFunction?.visibility ?: Visibilities.Local
|
||||||
val isSuspend =
|
val isSuspend =
|
||||||
if (isLambda) ((function as FirAnonymousFunction).typeRef as? FirResolvedTypeRef)?.isSuspend == true
|
if (isLambda) ((function as FirAnonymousFunction).typeRef as? FirResolvedTypeRef)?.type?.isSuspendFunctionType(session) == true
|
||||||
else simpleFunction?.isSuspend == true
|
else simpleFunction?.isSuspend == true
|
||||||
val signature = if (isLocal) null else signatureComposer.composeSignature(function)
|
val signature = if (isLocal) null else signatureComposer.composeSignature(function)
|
||||||
val created = function.convertWithOffsets { startOffset, endOffset ->
|
val created = function.convertWithOffsets { startOffset, endOffset ->
|
||||||
|
|||||||
@@ -58,7 +58,6 @@ fun FirFunction<*>.constructFunctionalTypeRef(isSuspend: Boolean = false): FirRe
|
|||||||
return buildResolvedTypeRef {
|
return buildResolvedTypeRef {
|
||||||
source = this@constructFunctionalTypeRef.source?.fakeElement(FirFakeSourceElementKind.ImplicitTypeRef)
|
source = this@constructFunctionalTypeRef.source?.fakeElement(FirFakeSourceElementKind.ImplicitTypeRef)
|
||||||
type = functionalType
|
type = functionalType
|
||||||
this.isSuspend = isSuspend
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-4
@@ -174,10 +174,7 @@ class FirIntegerOperator @FirImplementationDetail constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class FirILTTypeRefPlaceHolder(
|
class FirILTTypeRefPlaceHolder(isUnsigned: Boolean) : FirResolvedTypeRef() {
|
||||||
isUnsigned: Boolean,
|
|
||||||
override val isSuspend: Boolean = false
|
|
||||||
) : FirResolvedTypeRef() {
|
|
||||||
override val source: FirSourceElement? get() = null
|
override val source: FirSourceElement? get() = null
|
||||||
override val annotations: List<FirAnnotationCall> get() = emptyList()
|
override val annotations: List<FirAnnotationCall> get() = emptyList()
|
||||||
override var type: ConeIntegerLiteralType = ConeIntegerLiteralTypeImpl(0, isUnsigned)
|
override var type: ConeIntegerLiteralType = ConeIntegerLiteralTypeImpl(0, isUnsigned)
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ abstract class FirErrorTypeRef : FirResolvedTypeRef(), FirDiagnosticHolder {
|
|||||||
abstract override val annotations: List<FirAnnotationCall>
|
abstract override val annotations: List<FirAnnotationCall>
|
||||||
abstract override val type: ConeKotlinType
|
abstract override val type: ConeKotlinType
|
||||||
abstract override val delegatedTypeRef: FirTypeRef?
|
abstract override val delegatedTypeRef: FirTypeRef?
|
||||||
abstract override val isSuspend: Boolean
|
|
||||||
abstract override val diagnostic: ConeDiagnostic
|
abstract override val diagnostic: ConeDiagnostic
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitErrorTypeRef(this, data)
|
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitErrorTypeRef(this, data)
|
||||||
|
|||||||
@@ -20,11 +20,11 @@ abstract class FirResolvedFunctionTypeRef : FirResolvedTypeRef(), FirFunctionTyp
|
|||||||
abstract override val annotations: List<FirAnnotationCall>
|
abstract override val annotations: List<FirAnnotationCall>
|
||||||
abstract override val type: ConeKotlinType
|
abstract override val type: ConeKotlinType
|
||||||
abstract override val delegatedTypeRef: FirTypeRef?
|
abstract override val delegatedTypeRef: FirTypeRef?
|
||||||
abstract override val isSuspend: Boolean
|
|
||||||
abstract override val isMarkedNullable: Boolean
|
abstract override val isMarkedNullable: Boolean
|
||||||
abstract override val receiverTypeRef: FirTypeRef?
|
abstract override val receiverTypeRef: FirTypeRef?
|
||||||
abstract override val valueParameters: List<FirValueParameter>
|
abstract override val valueParameters: List<FirValueParameter>
|
||||||
abstract override val returnTypeRef: FirTypeRef
|
abstract override val returnTypeRef: FirTypeRef
|
||||||
|
abstract override val isSuspend: Boolean
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitResolvedFunctionTypeRef(this, data)
|
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitResolvedFunctionTypeRef(this, data)
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ abstract class FirResolvedTypeRef : FirPureAbstractElement(), FirTypeRef {
|
|||||||
abstract override val annotations: List<FirAnnotationCall>
|
abstract override val annotations: List<FirAnnotationCall>
|
||||||
abstract val type: ConeKotlinType
|
abstract val type: ConeKotlinType
|
||||||
abstract val delegatedTypeRef: FirTypeRef?
|
abstract val delegatedTypeRef: FirTypeRef?
|
||||||
abstract val isSuspend: Boolean
|
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitResolvedTypeRef(this, data)
|
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitResolvedTypeRef(this, data)
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -27,22 +27,22 @@ class FirResolvedFunctionTypeRefBuilder : FirAnnotationContainerBuilder {
|
|||||||
override var source: FirSourceElement? = null
|
override var source: FirSourceElement? = null
|
||||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||||
lateinit var type: ConeKotlinType
|
lateinit var type: ConeKotlinType
|
||||||
var isSuspend: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
|
|
||||||
var isMarkedNullable: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
|
var isMarkedNullable: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
|
||||||
var receiverTypeRef: FirTypeRef? = null
|
var receiverTypeRef: FirTypeRef? = null
|
||||||
val valueParameters: MutableList<FirValueParameter> = mutableListOf()
|
val valueParameters: MutableList<FirValueParameter> = mutableListOf()
|
||||||
lateinit var returnTypeRef: FirTypeRef
|
lateinit var returnTypeRef: FirTypeRef
|
||||||
|
var isSuspend: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
|
||||||
|
|
||||||
override fun build(): FirResolvedFunctionTypeRef {
|
override fun build(): FirResolvedFunctionTypeRef {
|
||||||
return FirResolvedFunctionTypeRefImpl(
|
return FirResolvedFunctionTypeRefImpl(
|
||||||
source,
|
source,
|
||||||
annotations,
|
annotations,
|
||||||
type,
|
type,
|
||||||
isSuspend,
|
|
||||||
isMarkedNullable,
|
isMarkedNullable,
|
||||||
receiverTypeRef,
|
receiverTypeRef,
|
||||||
valueParameters,
|
valueParameters,
|
||||||
returnTypeRef,
|
returnTypeRef,
|
||||||
|
isSuspend,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -65,10 +65,10 @@ inline fun buildResolvedFunctionTypeRefCopy(original: FirResolvedFunctionTypeRef
|
|||||||
copyBuilder.source = original.source
|
copyBuilder.source = original.source
|
||||||
copyBuilder.annotations.addAll(original.annotations)
|
copyBuilder.annotations.addAll(original.annotations)
|
||||||
copyBuilder.type = original.type
|
copyBuilder.type = original.type
|
||||||
copyBuilder.isSuspend = original.isSuspend
|
|
||||||
copyBuilder.isMarkedNullable = original.isMarkedNullable
|
copyBuilder.isMarkedNullable = original.isMarkedNullable
|
||||||
copyBuilder.receiverTypeRef = original.receiverTypeRef
|
copyBuilder.receiverTypeRef = original.receiverTypeRef
|
||||||
copyBuilder.valueParameters.addAll(original.valueParameters)
|
copyBuilder.valueParameters.addAll(original.valueParameters)
|
||||||
copyBuilder.returnTypeRef = original.returnTypeRef
|
copyBuilder.returnTypeRef = original.returnTypeRef
|
||||||
|
copyBuilder.isSuspend = original.isSuspend
|
||||||
return copyBuilder.apply(init).build()
|
return copyBuilder.apply(init).build()
|
||||||
}
|
}
|
||||||
|
|||||||
-3
@@ -28,7 +28,6 @@ class FirResolvedTypeRefBuilder : FirAnnotationContainerBuilder {
|
|||||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||||
lateinit var type: ConeKotlinType
|
lateinit var type: ConeKotlinType
|
||||||
var delegatedTypeRef: FirTypeRef? = null
|
var delegatedTypeRef: FirTypeRef? = null
|
||||||
var isSuspend: Boolean = false
|
|
||||||
|
|
||||||
@OptIn(FirImplementationDetail::class)
|
@OptIn(FirImplementationDetail::class)
|
||||||
override fun build(): FirResolvedTypeRef {
|
override fun build(): FirResolvedTypeRef {
|
||||||
@@ -37,7 +36,6 @@ class FirResolvedTypeRefBuilder : FirAnnotationContainerBuilder {
|
|||||||
annotations,
|
annotations,
|
||||||
type,
|
type,
|
||||||
delegatedTypeRef,
|
delegatedTypeRef,
|
||||||
isSuspend,
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -61,6 +59,5 @@ inline fun buildResolvedTypeRefCopy(original: FirResolvedTypeRef, init: FirResol
|
|||||||
copyBuilder.annotations.addAll(original.annotations)
|
copyBuilder.annotations.addAll(original.annotations)
|
||||||
copyBuilder.type = original.type
|
copyBuilder.type = original.type
|
||||||
copyBuilder.delegatedTypeRef = original.delegatedTypeRef
|
copyBuilder.delegatedTypeRef = original.delegatedTypeRef
|
||||||
copyBuilder.isSuspend = original.isSuspend
|
|
||||||
return copyBuilder.apply(init).build()
|
return copyBuilder.apply(init).build()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ internal class FirErrorTypeRefImpl(
|
|||||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||||
override val type: ConeKotlinType = ConeClassErrorType(diagnostic)
|
override val type: ConeKotlinType = ConeClassErrorType(diagnostic)
|
||||||
override val delegatedTypeRef: FirTypeRef? get() = null
|
override val delegatedTypeRef: FirTypeRef? get() = null
|
||||||
override val isSuspend: Boolean = false
|
|
||||||
|
|
||||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||||
annotations.forEach { it.accept(visitor, data) }
|
annotations.forEach { it.accept(visitor, data) }
|
||||||
|
|||||||
+1
-1
@@ -22,11 +22,11 @@ internal class FirResolvedFunctionTypeRefImpl(
|
|||||||
override val source: FirSourceElement?,
|
override val source: FirSourceElement?,
|
||||||
override val annotations: MutableList<FirAnnotationCall>,
|
override val annotations: MutableList<FirAnnotationCall>,
|
||||||
override val type: ConeKotlinType,
|
override val type: ConeKotlinType,
|
||||||
override val isSuspend: Boolean,
|
|
||||||
override val isMarkedNullable: Boolean,
|
override val isMarkedNullable: Boolean,
|
||||||
override var receiverTypeRef: FirTypeRef?,
|
override var receiverTypeRef: FirTypeRef?,
|
||||||
override val valueParameters: MutableList<FirValueParameter>,
|
override val valueParameters: MutableList<FirValueParameter>,
|
||||||
override var returnTypeRef: FirTypeRef,
|
override var returnTypeRef: FirTypeRef,
|
||||||
|
override val isSuspend: Boolean,
|
||||||
) : FirResolvedFunctionTypeRef() {
|
) : FirResolvedFunctionTypeRef() {
|
||||||
override val delegatedTypeRef: FirTypeRef? get() = null
|
override val delegatedTypeRef: FirTypeRef? get() = null
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ class FirResolvedTypeRefImpl @FirImplementationDetail constructor(
|
|||||||
override val annotations: MutableList<FirAnnotationCall>,
|
override val annotations: MutableList<FirAnnotationCall>,
|
||||||
override val type: ConeKotlinType,
|
override val type: ConeKotlinType,
|
||||||
override var delegatedTypeRef: FirTypeRef?,
|
override var delegatedTypeRef: FirTypeRef?,
|
||||||
override val isSuspend: Boolean,
|
|
||||||
) : FirResolvedTypeRef() {
|
) : FirResolvedTypeRef() {
|
||||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||||
annotations.forEach { it.accept(visitor, data) }
|
annotations.forEach { it.accept(visitor, data) }
|
||||||
|
|||||||
@@ -34,9 +34,6 @@ sealed class FirImplicitBuiltinTypeRef(
|
|||||||
override val delegatedTypeRef: FirTypeRef?
|
override val delegatedTypeRef: FirTypeRef?
|
||||||
get() = null
|
get() = null
|
||||||
|
|
||||||
override val isSuspend: Boolean
|
|
||||||
get() = false
|
|
||||||
|
|
||||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {}
|
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {}
|
||||||
|
|
||||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
|
||||||
|
|||||||
-1
@@ -216,7 +216,6 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
|
|||||||
}
|
}
|
||||||
|
|
||||||
builder(resolvedTypeRef) {
|
builder(resolvedTypeRef) {
|
||||||
defaultFalse("isSuspend")
|
|
||||||
defaultNull("delegatedTypeRef")
|
defaultNull("delegatedTypeRef")
|
||||||
withCopy()
|
withCopy()
|
||||||
}
|
}
|
||||||
|
|||||||
-1
@@ -145,7 +145,6 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
|
|||||||
withGetter = true
|
withGetter = true
|
||||||
}
|
}
|
||||||
default("annotations", "mutableListOf()")
|
default("annotations", "mutableListOf()")
|
||||||
defaultFalse("isSuspend")
|
|
||||||
useTypes(coneClassErrorTypeType)
|
useTypes(coneClassErrorTypeType)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
-1
@@ -561,7 +561,6 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
|||||||
resolvedTypeRef.configure {
|
resolvedTypeRef.configure {
|
||||||
+field("type", coneKotlinTypeType)
|
+field("type", coneKotlinTypeType)
|
||||||
+field("delegatedTypeRef", typeRef, nullable = true)
|
+field("delegatedTypeRef", typeRef, nullable = true)
|
||||||
+booleanField("isSuspend")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
typeRefWithNullability.configure {
|
typeRefWithNullability.configure {
|
||||||
|
|||||||
Reference in New Issue
Block a user