FIR2IR: fix origins for anonymous functions & lambdas

This commit is contained in:
Mikhail Glukhikh
2021-12-08 18:37:36 +03:00
committed by TeamCityServer
parent a6d4f9c3b0
commit e591f79533
9 changed files with 13 additions and 188 deletions
@@ -248,7 +248,7 @@ class Fir2IrVisitor(
val irFunction = declarationStorage.createIrFunction(
anonymousFunction,
irParent = conversionScope.parent(),
predefinedOrigin = IrDeclarationOrigin.LOCAL_FUNCTION_FOR_LAMBDA,
predefinedOrigin = IrDeclarationOrigin.LOCAL_FUNCTION,
isLocal = true
)
conversionScope.withFunction(irFunction) {
@@ -257,7 +257,11 @@ class Fir2IrVisitor(
val type = anonymousFunction.typeRef.toIrType()
IrFunctionExpressionImpl(startOffset, endOffset, type, irFunction, IrStatementOrigin.LAMBDA)
IrFunctionExpressionImpl(
startOffset, endOffset, type, irFunction,
if (irFunction.origin == IrDeclarationOrigin.LOCAL_FUNCTION_FOR_LAMBDA) IrStatementOrigin.LAMBDA
else IrStatementOrigin.ANONYMOUS_FUNCTION
)
}
}