[FIR] Make FirResolvedDeclarationStatus.modality non nullable
^KT-58764 Fixed
This commit is contained in:
committed by
Space Team
parent
8299fffae2
commit
6169834bb3
+1
-1
@@ -20,7 +20,6 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
interface FirResolvedDeclarationStatus : FirDeclarationStatus {
|
||||
override val source: KtSourceElement?
|
||||
override val visibility: Visibility
|
||||
override val modality: Modality?
|
||||
override val isExpect: Boolean
|
||||
override val isActual: Boolean
|
||||
override val isOverride: Boolean
|
||||
@@ -40,6 +39,7 @@ interface FirResolvedDeclarationStatus : FirDeclarationStatus {
|
||||
override val isFromEnumClass: Boolean
|
||||
override val isFun: Boolean
|
||||
override val hasStableParameterNames: Boolean
|
||||
override val modality: Modality
|
||||
val effectiveVisibility: EffectiveVisibility
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitResolvedDeclarationStatus(this, data)
|
||||
|
||||
+4
-15
@@ -10,16 +10,10 @@ import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||
|
||||
// ---------------------- callables with status ----------------------
|
||||
|
||||
inline val FirCallableSymbol<*>.modality: Modality? get() = resolvedStatus.modality
|
||||
inline val FirCallableSymbol<*>.modalityOrFinal: Modality get() = modality ?: Modality.FINAL
|
||||
inline val FirCallableSymbol<*>.modality: Modality get() = resolvedStatus.modality
|
||||
inline val FirCallableSymbol<*>.isAbstract: Boolean get() = resolvedStatus.modality == Modality.ABSTRACT
|
||||
inline val FirCallableSymbol<*>.isOpen: Boolean get() = resolvedStatus.modality == Modality.OPEN
|
||||
inline val FirCallableSymbol<*>.isFinal: Boolean
|
||||
get() {
|
||||
// member with unspecified modality is final
|
||||
val modality = resolvedStatus.modality ?: return true
|
||||
return modality == Modality.FINAL
|
||||
}
|
||||
inline val FirCallableSymbol<*>.isFinal: Boolean get() = resolvedStatus.modality == Modality.FINAL
|
||||
|
||||
inline val FirCallableSymbol<*>.visibility: Visibility get() = resolvedStatus.visibility
|
||||
inline val FirCallableSymbol<*>.effectiveVisibility: EffectiveVisibility get() = resolvedStatus.effectiveVisibility
|
||||
@@ -43,14 +37,9 @@ inline val FirCallableSymbol<*>.isFun: Boolean get() = rawStatus.isFun
|
||||
|
||||
// ---------------------- class like with status ----------------------
|
||||
|
||||
inline val FirClassLikeSymbol<*>.modality: Modality? get() = resolvedStatus.modality
|
||||
inline val FirClassLikeSymbol<*>.modality: Modality get() = resolvedStatus.modality
|
||||
inline val FirClassLikeSymbol<*>.isAbstract: Boolean get() = resolvedStatus.modality == Modality.ABSTRACT
|
||||
inline val FirClassLikeSymbol<*>.isFinal: Boolean
|
||||
get() {
|
||||
// member with unspecified modality is final
|
||||
val modality = resolvedStatus.modality ?: return true
|
||||
return modality == Modality.FINAL
|
||||
}
|
||||
inline val FirClassLikeSymbol<*>.isFinal: Boolean get() = resolvedStatus.modality == Modality.FINAL
|
||||
|
||||
inline val FirClassLikeSymbol<*>.visibility: Visibility get() = resolvedStatus.visibility
|
||||
inline val FirClassLikeSymbol<*>.effectiveVisibility: EffectiveVisibility get() = resolvedStatus.effectiveVisibility
|
||||
|
||||
+3
-1
@@ -80,7 +80,9 @@ object FieldSets {
|
||||
|
||||
val effectiveVisibility by lazy { field("effectiveVisibility", effectiveVisibilityType) }
|
||||
|
||||
val modality by lazy { field(modalityType, nullable = true) }
|
||||
fun modality(nullable: Boolean): Field {
|
||||
return field(modalityType, nullable = nullable)
|
||||
}
|
||||
|
||||
val scopeProvider by lazy { field("scopeProvider", firScopeProviderType) }
|
||||
|
||||
|
||||
+2
-1
@@ -390,7 +390,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
||||
|
||||
declarationStatus.configure {
|
||||
+visibility
|
||||
+modality
|
||||
+modality(nullable = true)
|
||||
generateBooleanFields(
|
||||
"expect", "actual", "override", "operator", "infix", "inline", "tailRec",
|
||||
"external", "const", "lateInit", "inner", "companion", "data", "suspend", "static",
|
||||
@@ -399,6 +399,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
||||
}
|
||||
|
||||
resolvedDeclarationStatus.configure {
|
||||
+modality(nullable = false)
|
||||
+effectiveVisibility
|
||||
shouldBeAnInterface()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user