FIR: support lateinit properties
This commit is contained in:
@@ -395,6 +395,7 @@ class RawFirBuilder(val session: FirSession) {
|
|||||||
property.platformStatus,
|
property.platformStatus,
|
||||||
property.hasModifier(KtTokens.OVERRIDE_KEYWORD),
|
property.hasModifier(KtTokens.OVERRIDE_KEYWORD),
|
||||||
property.hasModifier(KtTokens.CONST_KEYWORD),
|
property.hasModifier(KtTokens.CONST_KEYWORD),
|
||||||
|
property.hasModifier(KtTokens.LATEINIT_KEYWORD),
|
||||||
property.receiverTypeReference.convertSafe(),
|
property.receiverTypeReference.convertSafe(),
|
||||||
propertyType,
|
propertyType,
|
||||||
property.isVar,
|
property.isVar,
|
||||||
|
|||||||
@@ -163,6 +163,9 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
|
|||||||
if (memberDeclaration.isConst) {
|
if (memberDeclaration.isConst) {
|
||||||
print("const ")
|
print("const ")
|
||||||
}
|
}
|
||||||
|
if (memberDeclaration.isLateInit) {
|
||||||
|
print("lateinit ")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
visitNamedDeclaration(memberDeclaration)
|
visitNamedDeclaration(memberDeclaration)
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
|||||||
interface FirProperty : @VisitedSupertype FirDeclaration, FirCallableMember, FirVariable {
|
interface FirProperty : @VisitedSupertype FirDeclaration, FirCallableMember, FirVariable {
|
||||||
val isConst: Boolean
|
val isConst: Boolean
|
||||||
|
|
||||||
|
val isLateInit: Boolean
|
||||||
|
|
||||||
// Should it be nullable or have some default?
|
// Should it be nullable or have some default?
|
||||||
val getter: FirPropertyAccessor
|
val getter: FirPropertyAccessor
|
||||||
|
|
||||||
|
|||||||
+1
@@ -28,6 +28,7 @@ class FirMemberPropertyImpl(
|
|||||||
platformStatus: FirMemberPlatformStatus,
|
platformStatus: FirMemberPlatformStatus,
|
||||||
isOverride: Boolean,
|
isOverride: Boolean,
|
||||||
override val isConst: Boolean,
|
override val isConst: Boolean,
|
||||||
|
override val isLateInit: Boolean,
|
||||||
receiverType: FirType?,
|
receiverType: FirType?,
|
||||||
returnType: FirType,
|
returnType: FirType,
|
||||||
override val isVar: Boolean,
|
override val isVar: Boolean,
|
||||||
|
|||||||
@@ -15,5 +15,5 @@ class SomeClass : SomeInterface {
|
|||||||
get() = true
|
get() = true
|
||||||
set(value) {}
|
set(value) {}
|
||||||
|
|
||||||
var fau: Double
|
lateinit var fau: Double
|
||||||
}
|
}
|
||||||
@@ -20,7 +20,7 @@ FILE: simpleClass.kt
|
|||||||
public? set(value: Boolean): <implicit> {
|
public? set(value: Boolean): <implicit> {
|
||||||
}
|
}
|
||||||
|
|
||||||
public? final? property fau(var): Double
|
public? final? lateinit property fau(var): Double
|
||||||
public? get(): Double
|
public? get(): Double
|
||||||
public? set(value: Double): R|kotlin/Unit|
|
public? set(value: Double): R|kotlin/Unit|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user