FIR body resolve: support subject type calculation
This commit is contained in:
@@ -15,7 +15,6 @@ import org.jetbrains.kotlin.fir.descriptors.FirModuleDescriptor
|
||||
import org.jetbrains.kotlin.fir.expressions.*
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirElseIfTrueCondition
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirUnitExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirWhenSubjectExpression
|
||||
import org.jetbrains.kotlin.fir.references.FirPropertyFromParameterCallableReference
|
||||
import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider
|
||||
import org.jetbrains.kotlin.fir.resolve.buildUseSiteScope
|
||||
@@ -798,12 +797,6 @@ internal class Fir2IrVisitor(
|
||||
private fun FirExpression.toIrExpression(): IrExpression {
|
||||
return when (this) {
|
||||
is FirBlock -> convertToIrExpressionOrBlock()
|
||||
is FirWhenSubjectExpression -> {
|
||||
val lastSubjectVariable = subjectVariableStack.last()
|
||||
convertWithOffsets { startOffset, endOffset ->
|
||||
IrGetValueImpl(startOffset, endOffset, lastSubjectVariable.type, lastSubjectVariable.symbol)
|
||||
}
|
||||
}
|
||||
is FirUnitExpression -> convertWithOffsets { startOffset, endOffset ->
|
||||
IrGetObjectValueImpl(
|
||||
startOffset, endOffset, unitType,
|
||||
@@ -917,6 +910,13 @@ internal class Fir2IrVisitor(
|
||||
}
|
||||
}
|
||||
|
||||
override fun visitWhenSubjectExpression(whenSubjectExpression: FirWhenSubjectExpression, data: Any?): IrElement {
|
||||
val lastSubjectVariable = subjectVariableStack.last()
|
||||
return whenSubjectExpression.convertWithOffsets { startOffset, endOffset ->
|
||||
IrGetValueImpl(startOffset, endOffset, lastSubjectVariable.type, lastSubjectVariable.symbol)
|
||||
}
|
||||
}
|
||||
|
||||
private val loopMap = mutableMapOf<FirLoop, IrLoop>()
|
||||
|
||||
override fun visitDoWhileLoop(doWhileLoop: FirDoWhileLoop, data: Any?): IrElement {
|
||||
|
||||
Reference in New Issue
Block a user