[FIR] Handle lateinit local variable properly
This commit is contained in:
committed by
Mikhail Glukhikh
parent
33d4655053
commit
fa9d79392f
+2
-1
@@ -787,10 +787,11 @@ class Fir2IrDeclarationStorage(
|
||||
variable.name.isSpecial -> IrDeclarationOrigin.IR_TEMPORARY_VARIABLE
|
||||
else -> IrDeclarationOrigin.DEFINED
|
||||
}
|
||||
val isLateInit = if (variable is FirProperty) variable.isLateInit else false
|
||||
val irVariable = variable.convertWithOffsets { startOffset, endOffset ->
|
||||
declareIrVariable(
|
||||
startOffset, endOffset, origin,
|
||||
variable.name, type, variable.isVar, isConst = false, isLateinit = false
|
||||
variable.name, type, variable.isVar, isConst = false, isLateinit = isLateInit
|
||||
)
|
||||
}
|
||||
irVariable.parent = irParent
|
||||
|
||||
+3
-1
@@ -880,7 +880,9 @@ class DeclarationsConverter(
|
||||
expression = expressionConverter.getAsFirExpression(it, "Incorrect delegate expression")
|
||||
}
|
||||
}
|
||||
status = FirDeclarationStatusImpl(Visibilities.LOCAL, Modality.FINAL)
|
||||
status = FirDeclarationStatusImpl(Visibilities.LOCAL, Modality.FINAL).apply {
|
||||
isLateInit = modifiers.hasLateinit()
|
||||
}
|
||||
|
||||
val receiver = delegateExpression?.let {
|
||||
expressionConverter.getAsFirExpression<FirExpression>(it, "Incorrect delegate expression")
|
||||
|
||||
@@ -958,7 +958,9 @@ class RawFirBuilder(
|
||||
}
|
||||
}
|
||||
|
||||
status = FirDeclarationStatusImpl(Visibilities.LOCAL, Modality.FINAL)
|
||||
status = FirDeclarationStatusImpl(Visibilities.LOCAL, Modality.FINAL).apply {
|
||||
isLateInit = hasModifier(LATEINIT_KEYWORD)
|
||||
}
|
||||
|
||||
val receiver = delegateExpression?.toFirExpression("Incorrect delegate expression")
|
||||
generateAccessorsByDelegate(delegateBuilder, null, baseSession, isExtension = false, stubMode, receiver)
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// KJS_WITH_FULL_RUNTIME
|
||||
// WITH_RUNTIME
|
||||
|
||||
|
||||
Vendored
-1
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// WITH_RUNTIME
|
||||
|
||||
import kotlin.UninitializedPropertyAccessException
|
||||
|
||||
-1
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// WITH_RUNTIME
|
||||
|
||||
import kotlin.UninitializedPropertyAccessException
|
||||
|
||||
-1
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// WITH_RUNTIME
|
||||
|
||||
import kotlin.UninitializedPropertyAccessException
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// WITH_RUNTIME
|
||||
|
||||
import kotlin.UninitializedPropertyAccessException
|
||||
|
||||
Reference in New Issue
Block a user