[FIR] Get rid of FirResolvedTypeRef.isSuspend

This commit is contained in:
Dmitriy Novozhilov
2020-09-14 14:34:31 +03:00
parent 6c5cf8eda3
commit edab50ac61
15 changed files with 8 additions and 24 deletions
@@ -21,7 +21,6 @@ abstract class FirErrorTypeRef : FirResolvedTypeRef(), FirDiagnosticHolder {
abstract override val annotations: List<FirAnnotationCall>
abstract override val type: ConeKotlinType
abstract override val delegatedTypeRef: FirTypeRef?
abstract override val isSuspend: Boolean
abstract override val diagnostic: ConeDiagnostic
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 type: ConeKotlinType
abstract override val delegatedTypeRef: FirTypeRef?
abstract override val isSuspend: Boolean
abstract override val isMarkedNullable: Boolean
abstract override val receiverTypeRef: FirTypeRef?
abstract override val valueParameters: List<FirValueParameter>
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)
@@ -20,7 +20,6 @@ abstract class FirResolvedTypeRef : FirPureAbstractElement(), FirTypeRef {
abstract override val annotations: List<FirAnnotationCall>
abstract val type: ConeKotlinType
abstract val delegatedTypeRef: FirTypeRef?
abstract val isSuspend: Boolean
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitResolvedTypeRef(this, data)
@@ -27,22 +27,22 @@ class FirResolvedFunctionTypeRefBuilder : FirAnnotationContainerBuilder {
override var source: FirSourceElement? = null
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
lateinit var type: ConeKotlinType
var isSuspend: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
var isMarkedNullable: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
var receiverTypeRef: FirTypeRef? = null
val valueParameters: MutableList<FirValueParameter> = mutableListOf()
lateinit var returnTypeRef: FirTypeRef
var isSuspend: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
override fun build(): FirResolvedFunctionTypeRef {
return FirResolvedFunctionTypeRefImpl(
source,
annotations,
type,
isSuspend,
isMarkedNullable,
receiverTypeRef,
valueParameters,
returnTypeRef,
isSuspend,
)
}
@@ -65,10 +65,10 @@ inline fun buildResolvedFunctionTypeRefCopy(original: FirResolvedFunctionTypeRef
copyBuilder.source = original.source
copyBuilder.annotations.addAll(original.annotations)
copyBuilder.type = original.type
copyBuilder.isSuspend = original.isSuspend
copyBuilder.isMarkedNullable = original.isMarkedNullable
copyBuilder.receiverTypeRef = original.receiverTypeRef
copyBuilder.valueParameters.addAll(original.valueParameters)
copyBuilder.returnTypeRef = original.returnTypeRef
copyBuilder.isSuspend = original.isSuspend
return copyBuilder.apply(init).build()
}
@@ -28,7 +28,6 @@ class FirResolvedTypeRefBuilder : FirAnnotationContainerBuilder {
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
lateinit var type: ConeKotlinType
var delegatedTypeRef: FirTypeRef? = null
var isSuspend: Boolean = false
@OptIn(FirImplementationDetail::class)
override fun build(): FirResolvedTypeRef {
@@ -37,7 +36,6 @@ class FirResolvedTypeRefBuilder : FirAnnotationContainerBuilder {
annotations,
type,
delegatedTypeRef,
isSuspend,
)
}
@@ -61,6 +59,5 @@ inline fun buildResolvedTypeRefCopy(original: FirResolvedTypeRef, init: FirResol
copyBuilder.annotations.addAll(original.annotations)
copyBuilder.type = original.type
copyBuilder.delegatedTypeRef = original.delegatedTypeRef
copyBuilder.isSuspend = original.isSuspend
return copyBuilder.apply(init).build()
}
@@ -26,7 +26,6 @@ internal class FirErrorTypeRefImpl(
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
override val type: ConeKotlinType = ConeClassErrorType(diagnostic)
override val delegatedTypeRef: FirTypeRef? get() = null
override val isSuspend: Boolean = false
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
annotations.forEach { it.accept(visitor, data) }
@@ -22,11 +22,11 @@ internal class FirResolvedFunctionTypeRefImpl(
override val source: FirSourceElement?,
override val annotations: MutableList<FirAnnotationCall>,
override val type: ConeKotlinType,
override val isSuspend: Boolean,
override val isMarkedNullable: Boolean,
override var receiverTypeRef: FirTypeRef?,
override val valueParameters: MutableList<FirValueParameter>,
override var returnTypeRef: FirTypeRef,
override val isSuspend: Boolean,
) : FirResolvedFunctionTypeRef() {
override val delegatedTypeRef: FirTypeRef? get() = null
@@ -23,7 +23,6 @@ class FirResolvedTypeRefImpl @FirImplementationDetail constructor(
override val annotations: MutableList<FirAnnotationCall>,
override val type: ConeKotlinType,
override var delegatedTypeRef: FirTypeRef?,
override val isSuspend: Boolean,
) : FirResolvedTypeRef() {
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
annotations.forEach { it.accept(visitor, data) }
@@ -34,9 +34,6 @@ sealed class FirImplicitBuiltinTypeRef(
override val delegatedTypeRef: FirTypeRef?
get() = null
override val isSuspend: Boolean
get() = false
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
@@ -216,7 +216,6 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
}
builder(resolvedTypeRef) {
defaultFalse("isSuspend")
defaultNull("delegatedTypeRef")
withCopy()
}
@@ -145,7 +145,6 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
withGetter = true
}
default("annotations", "mutableListOf()")
defaultFalse("isSuspend")
useTypes(coneClassErrorTypeType)
}
@@ -561,7 +561,6 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
resolvedTypeRef.configure {
+field("type", coneKotlinTypeType)
+field("delegatedTypeRef", typeRef, nullable = true)
+booleanField("isSuspend")
}
typeRefWithNullability.configure {