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