Preserve origin LAMBDA. The inliner seems to be looking at it.
This commit is contained in:
committed by
alexander-gorshenev
parent
d79875ac7c
commit
e60754474a
+2
-1
@@ -69,7 +69,8 @@ message IrBreak {
|
||||
|
||||
message IrBlock {
|
||||
required bool is_transparent_scope = 1;
|
||||
repeated IrStatement statement = 2;
|
||||
required bool is_lambda_origin = 2;
|
||||
repeated IrStatement statement = 3;
|
||||
}
|
||||
|
||||
message MemberAccessCommon {
|
||||
|
||||
+7
-1
@@ -130,8 +130,12 @@ internal class IrSerializer(val context: Context,
|
||||
}
|
||||
|
||||
fun serializeBlock(block: IrBlock): KonanIr.IrBlock {
|
||||
val isLambdaOrigin =
|
||||
block.origin == IrStatementOrigin.LAMBDA ||
|
||||
block.origin == IrStatementOrigin.ANONYMOUS_FUNCTION
|
||||
val proto = KonanIr.IrBlock.newBuilder()
|
||||
.setIsTransparentScope(block.isTransparentScope)
|
||||
.setIsLambdaOrigin(isLambdaOrigin)
|
||||
block.statements.forEach {
|
||||
proto.addStatement(serializeStatement(it))
|
||||
}
|
||||
@@ -657,7 +661,9 @@ internal class IrDeserializer(val context: Context,
|
||||
statements.add(deserializeStatement(it) as IrStatement)
|
||||
}
|
||||
|
||||
val block = IrBlockImpl(start, end, type, null, statements)
|
||||
val isLambdaOrigin = if (proto.isLambdaOrigin) IrStatementOrigin.LAMBDA else null
|
||||
|
||||
val block = IrBlockImpl(start, end, type, isLambdaOrigin, statements)
|
||||
|
||||
// TODO: Need to set isTransparentScope somehow
|
||||
return block
|
||||
|
||||
Reference in New Issue
Block a user