FIR: support lateinit properties

This commit is contained in:
Mikhail Glukhikh
2018-03-26 18:49:54 +03:00
parent 7279d696d2
commit 124c11df08
6 changed files with 9 additions and 2 deletions
@@ -395,6 +395,7 @@ class RawFirBuilder(val session: FirSession) {
property.platformStatus,
property.hasModifier(KtTokens.OVERRIDE_KEYWORD),
property.hasModifier(KtTokens.CONST_KEYWORD),
property.hasModifier(KtTokens.LATEINIT_KEYWORD),
property.receiverTypeReference.convertSafe(),
propertyType,
property.isVar,
@@ -163,6 +163,9 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
if (memberDeclaration.isConst) {
print("const ")
}
if (memberDeclaration.isLateInit) {
print("lateinit ")
}
}
visitNamedDeclaration(memberDeclaration)
@@ -16,6 +16,8 @@ import org.jetbrains.kotlin.fir.visitors.FirVisitor
interface FirProperty : @VisitedSupertype FirDeclaration, FirCallableMember, FirVariable {
val isConst: Boolean
val isLateInit: Boolean
// Should it be nullable or have some default?
val getter: FirPropertyAccessor
@@ -28,6 +28,7 @@ class FirMemberPropertyImpl(
platformStatus: FirMemberPlatformStatus,
isOverride: Boolean,
override val isConst: Boolean,
override val isLateInit: Boolean,
receiverType: FirType?,
returnType: FirType,
override val isVar: Boolean,
@@ -15,5 +15,5 @@ class SomeClass : SomeInterface {
get() = true
set(value) {}
var fau: Double
lateinit var fau: Double
}
@@ -20,7 +20,7 @@ FILE: simpleClass.kt
public? set(value: Boolean): <implicit> {
}
public? final? property fau(var): Double
public? final? lateinit property fau(var): Double
public? get(): Double
public? set(value: Double): R|kotlin/Unit|