FIR Java model: support static members & enum entries
Related to KT-29218
This commit is contained in:
@@ -148,8 +148,13 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
|
||||
if (memberDeclaration.isActual) {
|
||||
print("actual ")
|
||||
}
|
||||
if (memberDeclaration is FirCallableMember && memberDeclaration.isOverride) {
|
||||
print("override ")
|
||||
if (memberDeclaration is FirCallableMember) {
|
||||
if (memberDeclaration.isOverride) {
|
||||
print("override ")
|
||||
}
|
||||
if (memberDeclaration.isStatic) {
|
||||
print("static ")
|
||||
}
|
||||
}
|
||||
if (memberDeclaration is FirRegularClass) {
|
||||
if (memberDeclaration.isInner) {
|
||||
|
||||
@@ -16,6 +16,8 @@ interface FirCallableMember :
|
||||
FirTypedDeclaration, FirSymbolOwner<FirCallableMember> {
|
||||
val isOverride: Boolean get() = status.isOverride
|
||||
|
||||
val isStatic: Boolean get() = status.isStatic
|
||||
|
||||
val receiverTypeRef: FirTypeRef?
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||
|
||||
@@ -46,6 +46,8 @@ interface FirDeclarationStatus : FirElement {
|
||||
|
||||
val isSuspend: Boolean
|
||||
|
||||
val isStatic: Boolean
|
||||
|
||||
override val psi: PsiElement?
|
||||
get() = null
|
||||
|
||||
|
||||
+8
-1
@@ -112,6 +112,12 @@ open class FirDeclarationStatusImpl(
|
||||
this[SUSPEND] = value
|
||||
}
|
||||
|
||||
override var isStatic: Boolean
|
||||
get() = this[STATIC]
|
||||
set(value) {
|
||||
this[STATIC] = value
|
||||
}
|
||||
|
||||
private enum class Modifier(val mask: Int) {
|
||||
EXPECT(0x1),
|
||||
ACTUAL(0x2),
|
||||
@@ -126,7 +132,8 @@ open class FirDeclarationStatusImpl(
|
||||
INNER(0x400),
|
||||
COMPANION(0x800),
|
||||
DATA(0x1000),
|
||||
SUSPEND(0x2000)
|
||||
SUSPEND(0x2000),
|
||||
STATIC(0x4000)
|
||||
}
|
||||
|
||||
fun resolved(visibility: Visibility, modality: Modality): FirDeclarationStatus {
|
||||
|
||||
Reference in New Issue
Block a user