[FIR] Check visibility correctly for sealed class in file
This commit is contained in:
@@ -35,6 +35,8 @@ interface FirDeclarationStatus : FirElement {
|
||||
val isData: Boolean
|
||||
val isSuspend: Boolean
|
||||
val isStatic: Boolean
|
||||
val isFromSealedClass: Boolean
|
||||
val isFromEnumClass: Boolean
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitDeclarationStatus(this, data)
|
||||
}
|
||||
|
||||
+2
@@ -34,6 +34,8 @@ interface FirResolvedDeclarationStatus : FirDeclarationStatus {
|
||||
override val isData: Boolean
|
||||
override val isSuspend: Boolean
|
||||
override val isStatic: Boolean
|
||||
override val isFromSealedClass: Boolean
|
||||
override val isFromEnumClass: Boolean
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitResolvedDeclarationStatus(this, data)
|
||||
}
|
||||
|
||||
+15
-1
@@ -121,6 +121,18 @@ open class FirDeclarationStatusImpl(
|
||||
this[STATIC] = value
|
||||
}
|
||||
|
||||
override var isFromSealedClass: Boolean
|
||||
get() = this[FROM_SEALED]
|
||||
set(value) {
|
||||
this[FROM_SEALED] = value
|
||||
}
|
||||
|
||||
override var isFromEnumClass: Boolean
|
||||
get() = this[FROM_ENUM]
|
||||
set(value) {
|
||||
this[FROM_ENUM] = value
|
||||
}
|
||||
|
||||
private enum class Modifier(val mask: Int) {
|
||||
EXPECT(0x1),
|
||||
ACTUAL(0x2),
|
||||
@@ -136,7 +148,9 @@ open class FirDeclarationStatusImpl(
|
||||
COMPANION(0x800),
|
||||
DATA(0x1000),
|
||||
SUSPEND(0x2000),
|
||||
STATIC(0x4000)
|
||||
STATIC(0x4000),
|
||||
FROM_SEALED(0x8000),
|
||||
FROM_ENUM(0x10000)
|
||||
}
|
||||
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {}
|
||||
|
||||
+2
-1
@@ -296,7 +296,8 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
||||
+modality
|
||||
generateBooleanFields(
|
||||
"expect", "actual", "override", "operator", "infix", "inline", "tailRec",
|
||||
"external", "const", "lateInit", "inner", "companion", "data", "suspend", "static"
|
||||
"external", "const", "lateInit", "inner", "companion", "data", "suspend", "static",
|
||||
"fromSealedClass", "fromEnumClass"
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user