FIR: Introduce FirClassLikeDeclaration::supertypesComputationStatus
This commit is contained in:
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.FirClassLikeDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||
@@ -60,4 +61,6 @@ class FirJavaClass internal constructor(
|
||||
|
||||
override fun setCallbackOnSupertypesComputed(callback: () -> Unit) =
|
||||
error("Supertypes computation should happen just before the instance is published")
|
||||
|
||||
override var supertypesComputationStatus = FirClassLikeDeclaration.SupertypesComputationStatus.NOT_COMPUTED
|
||||
}
|
||||
|
||||
@@ -25,6 +25,12 @@ interface FirClassLikeDeclaration<F : FirClassLikeDeclaration<F>> :
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
super<FirMemberDeclaration>.acceptChildren(visitor, data)
|
||||
}
|
||||
|
||||
enum class SupertypesComputationStatus {
|
||||
NOT_COMPUTED, COMPUTING, COMPUTED
|
||||
}
|
||||
|
||||
var supertypesComputationStatus: SupertypesComputationStatus
|
||||
}
|
||||
|
||||
fun ConeClassifierSymbol.toFirClassLike(): FirClassLikeDeclaration<*>? =
|
||||
|
||||
@@ -27,4 +27,6 @@ abstract class FirEnumEntry(
|
||||
typeRef.accept(visitor, data)
|
||||
super<FirRegularClass>.acceptChildren(visitor, data)
|
||||
}
|
||||
}
|
||||
|
||||
override var supertypesComputationStatus = FirClassLikeDeclaration.SupertypesComputationStatus.NOT_COMPUTED
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.FirClassLikeDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
|
||||
@@ -84,4 +85,6 @@ open class FirClassImpl(
|
||||
override fun setCallbackOnSupertypesComputed(callback: () -> Unit) {
|
||||
callbackOnSupertypesComputed = callback
|
||||
}
|
||||
|
||||
override var supertypesComputationStatus = FirClassLikeDeclaration.SupertypesComputationStatus.NOT_COMPUTED
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.fir.FirElement
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.FirClassLikeDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirTypeAlias
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeAliasSymbol
|
||||
import org.jetbrains.kotlin.fir.transformSingle
|
||||
@@ -42,4 +43,6 @@ class FirTypeAliasImpl(
|
||||
|
||||
return super<FirAbstractMemberDeclaration>.transformChildren(transformer, data)
|
||||
}
|
||||
|
||||
override var supertypesComputationStatus = FirClassLikeDeclaration.SupertypesComputationStatus.NOT_COMPUTED
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user