FIR: add fake source element to implicit function return statement
This commit is contained in:
+2
-1
@@ -1361,8 +1361,9 @@ class DeclarationsConverter(
|
||||
baseSession, baseScopeProvider, stubMode, blockTree, offset = tree.getStartOffset(block), context
|
||||
).convertBlockExpression(blockTree.root)
|
||||
} else {
|
||||
val firExpression = buildExpressionStub()
|
||||
FirSingleExpressionBlock(
|
||||
buildExpressionStub().toReturn()
|
||||
firExpression.toReturn(baseSource = firExpression.source)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -236,8 +236,7 @@ class RawFirBuilder(
|
||||
}
|
||||
else -> {
|
||||
val result = { bodyExpression }.toFirExpression("Function has no body (but should)")
|
||||
// basePsi is null, because 'return' is synthetic & should not be bound to some PSI
|
||||
FirSingleExpressionBlock(result.toReturn(baseSource = null)) to null
|
||||
FirSingleExpressionBlock(result.toReturn(baseSource = result.source)) to null
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -139,7 +139,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
|
||||
)
|
||||
}
|
||||
|
||||
source = baseSource
|
||||
source = baseSource?.fakeElement(FirFakeSourceElementKind.ImplicitReturn)
|
||||
result = this@toReturn
|
||||
if (labelName == null) {
|
||||
target = context.firFunctionTargets.lastOrNull { !it.isLambda } ?: FirFunctionTarget(labelName, isLambda = false).apply {
|
||||
|
||||
Reference in New Issue
Block a user