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 {
|
message IrBlock {
|
||||||
required bool is_transparent_scope = 1;
|
required bool is_transparent_scope = 1;
|
||||||
repeated IrStatement statement = 2;
|
required bool is_lambda_origin = 2;
|
||||||
|
repeated IrStatement statement = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
message MemberAccessCommon {
|
message MemberAccessCommon {
|
||||||
|
|||||||
+7
-1
@@ -130,8 +130,12 @@ internal class IrSerializer(val context: Context,
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun serializeBlock(block: IrBlock): KonanIr.IrBlock {
|
fun serializeBlock(block: IrBlock): KonanIr.IrBlock {
|
||||||
|
val isLambdaOrigin =
|
||||||
|
block.origin == IrStatementOrigin.LAMBDA ||
|
||||||
|
block.origin == IrStatementOrigin.ANONYMOUS_FUNCTION
|
||||||
val proto = KonanIr.IrBlock.newBuilder()
|
val proto = KonanIr.IrBlock.newBuilder()
|
||||||
.setIsTransparentScope(block.isTransparentScope)
|
.setIsTransparentScope(block.isTransparentScope)
|
||||||
|
.setIsLambdaOrigin(isLambdaOrigin)
|
||||||
block.statements.forEach {
|
block.statements.forEach {
|
||||||
proto.addStatement(serializeStatement(it))
|
proto.addStatement(serializeStatement(it))
|
||||||
}
|
}
|
||||||
@@ -657,7 +661,9 @@ internal class IrDeserializer(val context: Context,
|
|||||||
statements.add(deserializeStatement(it) as IrStatement)
|
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
|
// TODO: Need to set isTransparentScope somehow
|
||||||
return block
|
return block
|
||||||
|
|||||||
Reference in New Issue
Block a user