[FIR] Source for implicit iterator calls in for should not be null
^KT-62111 fixed Merge-request: KT-MR-13029 Merged-by: Egor Kulikov <Egor.Kulikov@jetbrains.com>
This commit is contained in:
+4
-4
@@ -1156,7 +1156,7 @@ class LightTreeRawFirExpressionBuilder(
|
||||
val calculatedRangeExpression =
|
||||
rangeExpression ?: buildErrorExpression(null, ConeSyntaxDiagnostic("No range in for loop"))
|
||||
val fakeSource = forLoop.toFirSourceElement(KtFakeSourceElementKind.DesugaredForLoop)
|
||||
val rangeSource = calculatedRangeExpression.source?.fakeElement(KtFakeSourceElementKind.DesugaredForLoop)
|
||||
val rangeSource = calculatedRangeExpression.source?.fakeElement(KtFakeSourceElementKind.DesugaredForLoop) ?: fakeSource
|
||||
val target: FirLoopTarget
|
||||
// NB: FirForLoopChecker relies on this block existence and structure
|
||||
return buildBlock {
|
||||
@@ -1168,7 +1168,7 @@ class LightTreeRawFirExpressionBuilder(
|
||||
buildFunctionCall {
|
||||
source = rangeSource
|
||||
calleeReference = buildSimpleNamedReference {
|
||||
source = rangeSource ?: fakeSource
|
||||
source = rangeSource
|
||||
name = OperatorNameConventions.ITERATOR
|
||||
}
|
||||
explicitReceiver = calculatedRangeExpression
|
||||
@@ -1180,7 +1180,7 @@ class LightTreeRawFirExpressionBuilder(
|
||||
condition = buildFunctionCall {
|
||||
source = rangeSource
|
||||
calleeReference = buildSimpleNamedReference {
|
||||
source = rangeSource ?: fakeSource
|
||||
source = rangeSource
|
||||
name = OperatorNameConventions.HAS_NEXT
|
||||
}
|
||||
explicitReceiver = generateResolvedAccessExpression(rangeSource, iteratorVal)
|
||||
@@ -1200,7 +1200,7 @@ class LightTreeRawFirExpressionBuilder(
|
||||
buildFunctionCall {
|
||||
source = rangeSource
|
||||
calleeReference = buildSimpleNamedReference {
|
||||
source = rangeSource ?: fakeSource
|
||||
source = rangeSource
|
||||
name = OperatorNameConventions.NEXT
|
||||
}
|
||||
explicitReceiver = generateResolvedAccessExpression(rangeSource, iteratorVal)
|
||||
|
||||
Reference in New Issue
Block a user