Remove the type field from semantics nodes that don't produce values of that type. (#3049)

For `Assign` and `ReturnExpression`, this field wasn't used for
anything. For `StructTypeField`, we stored the type of the field here,
and now store it as an argument of the node instead.

---------

Co-authored-by: Jon Ross-Perkins <jperkins@google.com>
This commit is contained in:
Richard Smith
2023-08-02 17:30:27 +00:00
committed by GitHub
co-authored by Jon Ross-Perkins
parent ab709b4117
commit 0c33dead70
71 changed files with 170 additions and 162 deletions
+5 -4
View File
@@ -149,12 +149,13 @@ auto LoweringContext::BuildType(SemanticsNodeId node_id) -> llvm::Type* {
llvm::SmallVector<llvm::Type*> subtypes;
subtypes.reserve(refs.size());
for (auto ref_id : refs) {
auto type_id = semantics_ir_->GetNode(ref_id).type_id();
auto [field_name_id, field_type_id] =
semantics_ir_->GetNode(ref_id).GetAsStructTypeField();
// TODO: Handle recursive types. The restriction for builtins prevents
// recursion while still letting them cache.
CARBON_CHECK(type_id.index < SemanticsBuiltinKind::ValidCount)
<< type_id;
subtypes.push_back(GetType(type_id));
CARBON_CHECK(field_type_id.index < SemanticsBuiltinKind::ValidCount)
<< field_type_id;
subtypes.push_back(GetType(field_type_id));
}
return llvm::StructType::create(*llvm_context_, subtypes,
"StructLiteralType");
+6 -4
View File
@@ -207,10 +207,11 @@ auto LoweringHandleStructMemberAccess(LoweringFunctionContext& context,
context.semantics_ir()
.GetNode(context.semantics_ir().GetType(struct_type_id))
.GetAsStructType());
auto member_name = context.semantics_ir().GetString(
auto [field_name_id, field_type_id] =
context.semantics_ir()
.GetNode(type_refs[member_index.index])
.GetAsStructTypeField());
.GetAsStructTypeField();
auto member_name = context.semantics_ir().GetString(field_name_id);
auto* gep = context.builder().CreateStructGEP(
llvm_type, context.GetLocal(struct_id), member_index.index, member_name);
@@ -258,8 +259,9 @@ auto LoweringHandleStructValue(LoweringFunctionContext& context,
.GetNode(context.semantics_ir().GetType(node.type_id()))
.GetAsStructType());
for (int i = 0; i < static_cast<int>(refs.size()); ++i) {
auto member_name = context.semantics_ir().GetString(
context.semantics_ir().GetNode(type_refs[i]).GetAsStructTypeField());
auto [field_name_id, field_type_id] =
context.semantics_ir().GetNode(type_refs[i]).GetAsStructTypeField();
auto member_name = context.semantics_ir().GetString(field_name_id);
auto* gep =
context.builder().CreateStructGEP(llvm_type, alloca, i, member_name);
context.builder().CreateStore(context.GetLocal(refs[i]), gep);
+3 -2
View File
@@ -476,8 +476,9 @@ auto SemanticsContext::CanonicalizeStructType(ParseTree::Node parse_node,
llvm::FoldingSetNodeID canonical_id;
for (const auto& ref_id : refs) {
auto ref = semantics_ir_->GetNode(ref_id);
canonical_id.AddInteger(ref.GetAsStructTypeField().index);
canonical_id.AddInteger(ref.type_id().index);
auto [name_id, type_id] = ref.GetAsStructTypeField();
canonical_id.AddInteger(name_id.index);
canonical_id.AddInteger(type_id.index);
}
// If a struct with matching fields was already created, reuse it.
@@ -32,11 +32,12 @@ auto SemanticsHandleMemberAccessExpression(SemanticsContext& context,
// TODO: Do we need to optimize this with a lookup table for O(1)?
for (int i = 0; i < static_cast<int>(refs.size()); ++i) {
auto ref = context.semantics_ir().GetNode(refs[i]);
if (name_id == ref.GetAsStructTypeField()) {
if (auto [field_name_id, field_type_id] = ref.GetAsStructTypeField();
name_id == field_name_id) {
context.AddNodeAndPush(
parse_node,
SemanticsNode::StructMemberAccess::Make(
parse_node, ref.type_id(), base_id, SemanticsMemberIndex(i)));
parse_node, field_type_id, base_id, SemanticsMemberIndex(i)));
return true;
}
}
@@ -61,8 +61,7 @@ auto SemanticsHandleReturnStatement(SemanticsContext& context,
context.ImplicitAsRequired(parse_node, arg, callable.return_type_id);
}
context.AddNode(SemanticsNode::ReturnExpression::Make(
parse_node, context.semantics_ir().GetNode(arg).type_id(), arg));
context.AddNode(SemanticsNode::ReturnExpression::Make(parse_node, arg));
}
// Switch to a new, unreachable, empty node block. This typically won't
@@ -34,7 +34,7 @@ auto SemanticsHandleStructFieldType(SemanticsContext& context,
context.node_stack().PopWithParseNode<ParseNodeKind::Name>();
context.AddNodeAndPush(parse_node, SemanticsNode::StructTypeField::Make(
name_node, cast_type_id, name_id));
name_node, name_id, cast_type_id));
return true;
}
@@ -54,8 +54,8 @@ auto SemanticsHandleStructFieldValue(SemanticsContext& context,
context.semantics_ir().AddNode(
type_block_id,
SemanticsNode::StructTypeField::Make(
parse_node, context.semantics_ir().GetNode(value_node_id).type_id(),
name_id));
parse_node, name_id,
context.semantics_ir().GetNode(value_node_id).type_id()));
// Push the value back on the stack as an argument.
context.node_stack().Push(parse_node, value_node_id);
@@ -31,9 +31,8 @@ auto SemanticsHandleVariableDeclaration(SemanticsContext& context,
auto cast_value_id = context.ImplicitAsRequired(
parse_node, expr_node_id,
context.semantics_ir().GetNode(storage_id).type_id());
context.AddNode(SemanticsNode::Assign::Make(
parse_node, context.semantics_ir().GetNode(cast_value_id).type_id(),
storage_id, cast_value_id));
context.AddNode(
SemanticsNode::Assign::Make(parse_node, storage_id, cast_value_id));
}
context.node_stack()
+3 -2
View File
@@ -246,8 +246,9 @@ auto SemanticsIR::StringifyType(SemanticsTypeId type_id) -> std::string {
break;
}
case SemanticsNodeKind::StructTypeField: {
out << "." << GetString(node.GetAsStructTypeField()) << ": ";
steps.push_back({.node_id = GetTypeAllowBuiltinTypes(node.type_id())});
auto [name_id, type_id] = node.GetAsStructTypeField();
out << "." << GetString(name_id) << ": ";
steps.push_back({.node_id = GetTypeAllowBuiltinTypes(type_id)});
break;
}
case SemanticsNodeKind::TupleType: {
+12 -8
View File
@@ -286,7 +286,8 @@ class SemanticsNode {
using FactoryBase<Kind, ArgTypes...>::Get;
};
// Provides Get along with a Make that assumes a non-changing type.
// Provides Get along with a Make that assumes the node doesn't produce a
// typed value.
template <KindTemplateEnum Kind, typename... ArgTypes>
class FactoryNoType : public FactoryBase<Kind, ArgTypes...> {
public:
@@ -306,9 +307,9 @@ class SemanticsNode {
}
};
using Assign = SemanticsNode::Factory<SemanticsNodeKind::Assign,
SemanticsNodeId /*lhs_id*/,
SemanticsNodeId /*rhs_id*/>;
using Assign = SemanticsNode::FactoryNoType<SemanticsNodeKind::Assign,
SemanticsNodeId /*lhs_id*/,
SemanticsNodeId /*rhs_id*/>;
using BinaryOperatorAdd =
SemanticsNode::Factory<SemanticsNodeKind::BinaryOperatorAdd,
@@ -387,8 +388,8 @@ class SemanticsNode {
using Return = FactoryNoType<SemanticsNodeKind::Return>;
using ReturnExpression =
Factory<SemanticsNodeKind::ReturnExpression, SemanticsNodeId /*expr_id*/>;
using ReturnExpression = FactoryNoType<SemanticsNodeKind::ReturnExpression,
SemanticsNodeId /*expr_id*/>;
using StringLiteral = Factory<SemanticsNodeKind::StringLiteral,
SemanticsStringId /*string_id*/>;
@@ -400,8 +401,9 @@ class SemanticsNode {
using StructType =
Factory<SemanticsNodeKind::StructType, SemanticsNodeBlockId /*refs_id*/>;
using StructTypeField = Factory<SemanticsNodeKind::StructTypeField,
SemanticsStringId /*name_id*/>;
using StructTypeField =
FactoryNoType<SemanticsNodeKind::StructTypeField,
SemanticsStringId /*name_id*/, SemanticsTypeId /*type_id*/>;
using StructValue =
Factory<SemanticsNodeKind::StructValue, SemanticsNodeBlockId /*refs_id*/>;
@@ -431,6 +433,8 @@ class SemanticsNode {
auto parse_node() const -> ParseTree::Node { return parse_node_; }
auto kind() const -> SemanticsNodeKind { return kind_; }
// Gets the type of the value produced by evaluating this node.
auto type_id() const -> SemanticsTypeId { return type_id_; }
auto Print(llvm::raw_ostream& out) const -> void;
+4 -4
View File
@@ -30,18 +30,18 @@
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+0, arg1: node+2, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+0, arg1: node+2},
// CHECK:STDOUT: {kind: VarStorage, type: type1},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+4, type: type1},
// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: type1},
// CHECK:STDOUT: {kind: Assign, arg0: node+4, arg1: node+6, type: type1},
// CHECK:STDOUT: {kind: Assign, arg0: node+4, arg1: node+6},
// CHECK:STDOUT: {kind: VarStorage, type: type2},
// CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+8, type: type2},
// CHECK:STDOUT: {kind: StringLiteral, arg0: str3, type: type2},
// CHECK:STDOUT: {kind: Assign, arg0: node+8, arg1: node+10, type: type2},
// CHECK:STDOUT: {kind: Assign, arg0: node+8, arg1: node+10},
// CHECK:STDOUT: {kind: VarStorage, type: typeTypeType},
// CHECK:STDOUT: {kind: BindName, arg0: str4, arg1: node+12, type: typeTypeType},
// CHECK:STDOUT: {kind: Assign, arg0: node+12, arg1: nodeIntegerType, type: typeTypeType},
// CHECK:STDOUT: {kind: Assign, arg0: node+12, arg1: nodeIntegerType},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -23,7 +23,7 @@
// CHECK:STDOUT: {kind: VarStorage, type: typeTypeType},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: typeTypeType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+0, arg1: nodeError, type: typeError},
// CHECK:STDOUT: {kind: Assign, arg0: node+0, arg1: nodeError},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -25,7 +25,7 @@
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+2, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: nodeError, type: typeError},
// CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: nodeError},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
+1 -1
View File
@@ -26,7 +26,7 @@
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: type0},
// CHECK:STDOUT: {kind: BinaryOperatorAdd, arg0: node+2, arg1: node+3, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+0, arg1: node+4, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+0, arg1: node+4},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -29,7 +29,7 @@
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+2, type: type0},
// CHECK:STDOUT: {kind: StructValue, arg0: block0, type: type0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+2, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+2},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function1},
// CHECK:STDOUT: {kind: StructValue, arg0: block0, type: type0},
// CHECK:STDOUT: {kind: StubReference, arg0: node+8, type: type0},
@@ -31,7 +31,7 @@
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+2, type: type0},
// CHECK:STDOUT: {kind: TupleValue, arg0: block0, type: type0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+2, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+2},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function1},
// CHECK:STDOUT: {kind: TupleValue, arg0: block0, type: type0},
// CHECK:STDOUT: {kind: StubReference, arg0: node+8, type: type0},
@@ -27,12 +27,12 @@
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+1, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+1},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function1},
// CHECK:STDOUT: {kind: VarStorage, type: type1},
// CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+4, type: type1},
// CHECK:STDOUT: {kind: Call, arg0: block0, arg1: function0, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+4, arg1: nodeError, type: typeError},
// CHECK:STDOUT: {kind: Assign, arg0: node+4, arg1: nodeError},
// CHECK:STDOUT: {kind: Return},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
+2 -2
View File
@@ -28,14 +28,14 @@
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+0, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function1},
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str3, arg1: node+5, type: type0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: StubReference, arg0: node+7, type: type0},
// CHECK:STDOUT: {kind: Call, arg0: block6, arg1: function0, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+5, arg1: node+9, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+5, arg1: node+9},
// CHECK:STDOUT: {kind: Return},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
@@ -33,7 +33,7 @@
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+5, type: type0},
// CHECK:STDOUT: {kind: Call, arg0: block0, arg1: function0, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+5, arg1: node+7, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+5, arg1: node+7},
// CHECK:STDOUT: {kind: Return},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
@@ -35,7 +35,7 @@
// CHECK:STDOUT: {kind: BranchIf, arg0: block5, arg1: node+0},
// CHECK:STDOUT: {kind: Branch, arg0: block6},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type1},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+5, type: type1},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+5},
// CHECK:STDOUT: {kind: Branch, arg0: block7},
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+8, type: type0},
@@ -43,7 +43,7 @@
// CHECK:STDOUT: {kind: BranchIf, arg0: block11, arg1: node+8},
// CHECK:STDOUT: {kind: Branch, arg0: block12},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: type1},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+13, type: type1},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+13},
// CHECK:STDOUT: {kind: Branch, arg0: block13},
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+16, type: type0},
@@ -51,7 +51,7 @@
// CHECK:STDOUT: {kind: BranchIf, arg0: block17, arg1: node+16},
// CHECK:STDOUT: {kind: Branch, arg0: block18},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int2, type: type1},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+21, type: type1},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+21},
// CHECK:STDOUT: {kind: Branch, arg0: block18},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
+3 -3
View File
@@ -32,10 +32,10 @@
// CHECK:STDOUT: {kind: VarStorage, type: type1},
// CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+5, type: type1},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type1},
// CHECK:STDOUT: {kind: Assign, arg0: node+5, arg1: node+7, type: type1},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+5, type: type1},
// CHECK:STDOUT: {kind: Assign, arg0: node+5, arg1: node+7},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+5},
// CHECK:STDOUT: {kind: Branch, arg0: block6},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: nodeError, type: typeError},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: nodeError},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -30,9 +30,9 @@
// CHECK:STDOUT: {kind: BranchIf, arg0: block5, arg1: node+0},
// CHECK:STDOUT: {kind: Branch, arg0: block6},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type1},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+5, type: type1},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+5},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: type1},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+7, type: type1},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+7},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
+1 -1
View File
@@ -38,7 +38,7 @@
// CHECK:STDOUT: {kind: BranchWithArg, arg0: block7, arg1: node+9},
// CHECK:STDOUT: {kind: BranchWithArg, arg0: block7, arg1: node+10},
// CHECK:STDOUT: {kind: BlockArg, arg0: block7, type: type1},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+13, type: type1},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+13},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -31,10 +31,10 @@
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+1, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+1},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function1},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+4, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+4},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function2},
// CHECK:STDOUT: {kind: BoolLiteral, arg0: true, type: type1},
// CHECK:STDOUT: {kind: BranchIf, arg0: block5, arg1: node+7},
@@ -44,7 +44,7 @@
// CHECK:STDOUT: {kind: BranchWithArg, arg0: block7, arg1: node+10},
// CHECK:STDOUT: {kind: BranchWithArg, arg0: block7, arg1: node+11},
// CHECK:STDOUT: {kind: BlockArg, arg0: block7, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+14, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+14},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function3},
// CHECK:STDOUT: {kind: BoolLiteral, arg0: false, type: type1},
// CHECK:STDOUT: {kind: BranchIf, arg0: block9, arg1: node+17},
@@ -54,7 +54,7 @@
// CHECK:STDOUT: {kind: BranchWithArg, arg0: block11, arg1: node+20},
// CHECK:STDOUT: {kind: BranchWithArg, arg0: block11, arg1: node+21},
// CHECK:STDOUT: {kind: BlockArg, arg0: block11, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+24, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+24},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -30,10 +30,10 @@
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+1, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+1},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function1},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+4, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+4},
// CHECK:STDOUT: {kind: VarStorage, type: type1},
// CHECK:STDOUT: {kind: BindName, arg0: str3, arg1: node+6, type: type1},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function2},
@@ -44,7 +44,7 @@
// CHECK:STDOUT: {kind: BranchWithArg, arg0: block9, arg1: node+11},
// CHECK:STDOUT: {kind: BranchWithArg, arg0: block9, arg1: node+12},
// CHECK:STDOUT: {kind: BlockArg, arg0: block9, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+15, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+15},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
+1 -1
View File
@@ -54,7 +54,7 @@
// CHECK:STDOUT: {kind: BranchWithArg, arg0: block13, arg1: node+15},
// CHECK:STDOUT: {kind: BranchWithArg, arg0: block13, arg1: node+22},
// CHECK:STDOUT: {kind: BlockArg, arg0: block13, type: type1},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+25, type: type1},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+25},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
+3 -3
View File
@@ -26,10 +26,10 @@
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: BoolLiteral, arg0: true, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+1, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+1},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function1},
// CHECK:STDOUT: {kind: BoolLiteral, arg0: true, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+4, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+4},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function2},
// CHECK:STDOUT: {kind: Call, arg0: block0, arg1: function0, type: type0},
// CHECK:STDOUT: {kind: BoolLiteral, arg0: false, type: type0},
@@ -38,7 +38,7 @@
// CHECK:STDOUT: {kind: Call, arg0: block0, arg1: function1, type: type0},
// CHECK:STDOUT: {kind: BranchWithArg, arg0: block6, arg1: node+11},
// CHECK:STDOUT: {kind: BlockArg, arg0: block6, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+13, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+13},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
+1 -1
View File
@@ -26,7 +26,7 @@
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: type0},
// CHECK:STDOUT: {kind: BinaryOperatorAdd, arg0: node+1, arg1: node+2, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+3, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+3},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -27,7 +27,7 @@
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: type1},
// CHECK:STDOUT: {kind: BinaryOperatorAdd, arg0: nodeError, arg1: node+2, type: typeError},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+3, type: typeError},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+3},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -30,7 +30,7 @@
// CHECK:STDOUT: {kind: BinaryOperatorAdd, arg0: nodeError, arg1: node+2, type: typeError},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: type0},
// CHECK:STDOUT: {kind: BinaryOperatorAdd, arg0: node+3, arg1: node+4, type: typeError},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+5, type: typeError},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+5},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
+3 -3
View File
@@ -26,10 +26,10 @@
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: BoolLiteral, arg0: true, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+1, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+1},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function1},
// CHECK:STDOUT: {kind: BoolLiteral, arg0: true, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+4, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+4},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function2},
// CHECK:STDOUT: {kind: Call, arg0: block0, arg1: function0, type: type0},
// CHECK:STDOUT: {kind: UnaryOperatorNot, arg0: node+7, type: type0},
@@ -39,7 +39,7 @@
// CHECK:STDOUT: {kind: Call, arg0: block0, arg1: function1, type: type0},
// CHECK:STDOUT: {kind: BranchWithArg, arg0: block6, arg1: node+12},
// CHECK:STDOUT: {kind: BlockArg, arg0: block6, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+14, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+14},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
+1 -1
View File
@@ -25,7 +25,7 @@
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: UnaryOperatorNot, arg0: node+0, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+3, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+3},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -30,7 +30,7 @@
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: type0},
// CHECK:STDOUT: {kind: BinaryOperatorAdd, arg0: node+4, arg1: node+5, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: node+6, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: node+6},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -30,13 +30,13 @@
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type1},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+3, type: type1},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+3},
// CHECK:STDOUT: {kind: VarStorage, type: type1},
// CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+5, type: type1},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: type1},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int2, type: type1},
// CHECK:STDOUT: {kind: BlockArg, arg0: unreachable, type: type1},
// CHECK:STDOUT: {kind: Assign, arg0: node+5, arg1: node+9, type: type1},
// CHECK:STDOUT: {kind: Assign, arg0: node+5, arg1: node+9},
// CHECK:STDOUT: {kind: BoolLiteral, arg0: false, type: type0},
// CHECK:STDOUT: {kind: UnaryOperatorNot, arg0: node+0, type: type0},
// CHECK:STDOUT: {kind: BoolLiteral, arg0: true, type: type0},
@@ -24,7 +24,7 @@
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: type1},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: nodeError, type: typeError},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: nodeError},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -23,7 +23,7 @@
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+1, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+1},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
+3 -3
View File
@@ -23,14 +23,14 @@
// CHECK:STDOUT: type_blocks: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, arg1: type0},
// CHECK:STDOUT: {kind: StructType, arg0: block2, type: typeTypeType},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, arg1: type0},
// CHECK:STDOUT: {kind: StubReference, arg0: node+3, type: type0},
// CHECK:STDOUT: {kind: StructValue, arg0: block5, type: type1},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+6, type: type1},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+6},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
+1 -1
View File
@@ -43,7 +43,7 @@
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: type1},
// CHECK:STDOUT: {kind: StubReference, arg0: node+8, type: type1},
// CHECK:STDOUT: {kind: TupleValue, arg0: block4, type: type2},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+10, type: type2},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+10},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
+1 -1
View File
@@ -23,7 +23,7 @@
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+1, type: type0},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+1},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
+2 -2
View File
@@ -25,11 +25,11 @@
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+2, type: type0},
// CHECK:STDOUT: {kind: StructValue, arg0: block0, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: node+4, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: node+4},
// CHECK:STDOUT: {kind: StructValue, arg0: block0, type: type0},
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+7, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+7, arg1: node+2, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+7, arg1: node+2},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -22,13 +22,13 @@
// CHECK:STDOUT: type_blocks: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, arg1: type0},
// CHECK:STDOUT: {kind: StructType, arg0: block2, type: typeTypeType},
// CHECK:STDOUT: {kind: VarStorage, type: type1},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+2, type: type1},
// CHECK:STDOUT: {kind: StructType, arg0: block0, type: typeTypeType},
// CHECK:STDOUT: {kind: StructValue, arg0: block0, type: type2},
// CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: nodeError, type: typeError},
// CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: nodeError},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -28,11 +28,11 @@
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+2, type: type0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type1},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: type1},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, arg1: type1},
// CHECK:STDOUT: {kind: StubReference, arg0: node+4, type: type1},
// CHECK:STDOUT: {kind: StructType, arg0: block2, type: typeTypeType},
// CHECK:STDOUT: {kind: StructValue, arg0: block3, type: type2},
// CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: nodeError, type: typeError},
// CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: nodeError},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -24,16 +24,16 @@
// CHECK:STDOUT: type_blocks: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, arg1: type0},
// CHECK:STDOUT: {kind: StructType, arg0: block2, type: typeTypeType},
// CHECK:STDOUT: {kind: VarStorage, type: type1},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+2, type: type1},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str2, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str2, arg1: type0},
// CHECK:STDOUT: {kind: StubReference, arg0: node+4, type: type0},
// CHECK:STDOUT: {kind: StructType, arg0: block3, type: typeTypeType},
// CHECK:STDOUT: {kind: StructValue, arg0: block4, type: type2},
// CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: nodeError, type: typeError},
// CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: nodeError},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -25,16 +25,16 @@
// CHECK:STDOUT: type_blocks: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, arg1: type0},
// CHECK:STDOUT: {kind: StructType, arg0: block2, type: typeTypeType},
// CHECK:STDOUT: {kind: VarStorage, type: type1},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+2, type: type1},
// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: type2},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str2, type: type2},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str2, arg1: type2},
// CHECK:STDOUT: {kind: StubReference, arg0: node+4, type: type2},
// CHECK:STDOUT: {kind: StructType, arg0: block3, type: typeTypeType},
// CHECK:STDOUT: {kind: StructValue, arg0: block4, type: type3},
// CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: nodeError, type: typeError},
// CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: nodeError},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -25,18 +25,18 @@
// CHECK:STDOUT: type_blocks: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, arg1: type0},
// CHECK:STDOUT: {kind: StructType, arg0: block2, type: typeTypeType},
// CHECK:STDOUT: {kind: VarStorage, type: type1},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+2, type: type1},
// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, arg1: type0},
// CHECK:STDOUT: {kind: StubReference, arg0: node+4, type: type0},
// CHECK:STDOUT: {kind: StructValue, arg0: block4, type: type1},
// CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: node+7, type: type1},
// CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: node+7},
// CHECK:STDOUT: {kind: VarStorage, type: type2},
// CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+9, type: type2},
// CHECK:STDOUT: {kind: Assign, arg0: node+9, arg1: nodeError, type: typeError},
// CHECK:STDOUT: {kind: Assign, arg0: node+9, arg1: nodeError},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -24,18 +24,18 @@
// CHECK:STDOUT: type_blocks: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, arg1: type0},
// CHECK:STDOUT: {kind: StructType, arg0: block2, type: typeTypeType},
// CHECK:STDOUT: {kind: VarStorage, type: type1},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+2, type: type1},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, arg1: type0},
// CHECK:STDOUT: {kind: StubReference, arg0: node+4, type: type0},
// CHECK:STDOUT: {kind: StructValue, arg0: block4, type: type1},
// CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: node+7, type: type1},
// CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: node+7},
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+9, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+9, arg1: nodeError, type: typeError},
// CHECK:STDOUT: {kind: Assign, arg0: node+9, arg1: nodeError},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -24,17 +24,17 @@
// CHECK:STDOUT: type_blocks: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str2, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, arg1: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str2, arg1: type0},
// CHECK:STDOUT: {kind: StructType, arg0: block2, type: typeTypeType},
// CHECK:STDOUT: {kind: VarStorage, type: type1},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+3, type: type1},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, arg1: type0},
// CHECK:STDOUT: {kind: StubReference, arg0: node+5, type: type0},
// CHECK:STDOUT: {kind: StructType, arg0: block3, type: typeTypeType},
// CHECK:STDOUT: {kind: StructValue, arg0: block4, type: type2},
// CHECK:STDOUT: {kind: Assign, arg0: node+3, arg1: nodeError, type: typeError},
// CHECK:STDOUT: {kind: Assign, arg0: node+3, arg1: nodeError},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -21,12 +21,12 @@
// CHECK:STDOUT: type_blocks: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, arg1: type0},
// CHECK:STDOUT: {kind: StructType, arg0: block2, type: typeTypeType},
// CHECK:STDOUT: {kind: VarStorage, type: type1},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+2, type: type1},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: nodeError, type: typeError},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, arg1: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: nodeError},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -23,7 +23,7 @@
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, arg1: type0},
// CHECK:STDOUT: {kind: StubReference, arg0: node+0, type: type0},
// CHECK:STDOUT: {kind: StructType, arg0: block2, type: typeTypeType},
// CHECK:STDOUT: {kind: StructValue, arg0: block3, type: type1},
+7 -7
View File
@@ -27,26 +27,26 @@
// CHECK:STDOUT: type_blocks: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str2, type: type1},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, arg1: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str2, arg1: type1},
// CHECK:STDOUT: {kind: StructType, arg0: block2, type: typeTypeType},
// CHECK:STDOUT: {kind: VarStorage, type: type2},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+3, type: type2},
// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, arg1: type0},
// CHECK:STDOUT: {kind: StubReference, arg0: node+5, type: type0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type1},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str2, type: type1},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str2, arg1: type1},
// CHECK:STDOUT: {kind: StubReference, arg0: node+8, type: type1},
// CHECK:STDOUT: {kind: StructValue, arg0: block4, type: type2},
// CHECK:STDOUT: {kind: Assign, arg0: node+3, arg1: node+11, type: type2},
// CHECK:STDOUT: {kind: Assign, arg0: node+3, arg1: node+11},
// CHECK:STDOUT: {kind: VarStorage, type: type1},
// CHECK:STDOUT: {kind: BindName, arg0: str3, arg1: node+13, type: type1},
// CHECK:STDOUT: {kind: StructMemberAccess, arg0: node+3, arg1: member1, type: type1},
// CHECK:STDOUT: {kind: Assign, arg0: node+13, arg1: node+15, type: type1},
// CHECK:STDOUT: {kind: Assign, arg0: node+13, arg1: node+15},
// CHECK:STDOUT: {kind: VarStorage, type: type1},
// CHECK:STDOUT: {kind: BindName, arg0: str4, arg1: node+17, type: type1},
// CHECK:STDOUT: {kind: Assign, arg0: node+17, arg1: node+13, type: type1},
// CHECK:STDOUT: {kind: Assign, arg0: node+17, arg1: node+13},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
+5 -5
View File
@@ -23,19 +23,19 @@
// CHECK:STDOUT: type_blocks: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, arg1: type0},
// CHECK:STDOUT: {kind: StructType, arg0: block2, type: typeTypeType},
// CHECK:STDOUT: {kind: VarStorage, type: type1},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+2, type: type1},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, arg1: type0},
// CHECK:STDOUT: {kind: StubReference, arg0: node+4, type: type0},
// CHECK:STDOUT: {kind: StructValue, arg0: block4, type: type1},
// CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: node+7, type: type1},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: node+7},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, arg1: type0},
// CHECK:STDOUT: {kind: VarStorage, type: type1},
// CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+10, type: type1},
// CHECK:STDOUT: {kind: Assign, arg0: node+10, arg1: node+2, type: type1},
// CHECK:STDOUT: {kind: Assign, arg0: node+10, arg1: node+2},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -33,32 +33,32 @@
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, arg1: type0},
// CHECK:STDOUT: {kind: StubReference, arg0: nodeIntegerType, type: typeTypeType},
// CHECK:STDOUT: {kind: TupleType, arg0: typeBlock0, type: typeTypeType},
// CHECK:STDOUT: {kind: TupleValue, arg0: block3, type: type1},
// CHECK:STDOUT: {kind: TupleType, arg0: typeBlock1, type: typeTypeType},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str2, type: type2},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str2, arg1: type2},
// CHECK:STDOUT: {kind: StructType, arg0: block2, type: typeTypeType},
// CHECK:STDOUT: {kind: VarStorage, type: type3},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+7, type: type3},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, arg1: type0},
// CHECK:STDOUT: {kind: StubReference, arg0: node+9, type: type0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: type0},
// CHECK:STDOUT: {kind: StubReference, arg0: node+12, type: type0},
// CHECK:STDOUT: {kind: TupleValue, arg0: block6, type: type2},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str2, type: type2},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str2, arg1: type2},
// CHECK:STDOUT: {kind: StubReference, arg0: node+14, type: type2},
// CHECK:STDOUT: {kind: StructValue, arg0: block5, type: type3},
// CHECK:STDOUT: {kind: Assign, arg0: node+7, arg1: node+17, type: type3},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+7, arg1: node+17},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, arg1: type0},
// CHECK:STDOUT: {kind: StubReference, arg0: nodeIntegerType, type: typeTypeType},
// CHECK:STDOUT: {kind: TupleValue, arg0: block8, type: type1},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str2, type: type2},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str2, arg1: type2},
// CHECK:STDOUT: {kind: VarStorage, type: type3},
// CHECK:STDOUT: {kind: BindName, arg0: str3, arg1: node+23, type: type3},
// CHECK:STDOUT: {kind: Assign, arg0: node+23, arg1: node+7, type: type3},
// CHECK:STDOUT: {kind: Assign, arg0: node+23, arg1: node+7},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
+8 -8
View File
@@ -25,24 +25,24 @@
// CHECK:STDOUT: type_blocks: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str2, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, arg1: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str2, arg1: type0},
// CHECK:STDOUT: {kind: StructType, arg0: block2, type: typeTypeType},
// CHECK:STDOUT: {kind: VarStorage, type: type1},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+3, type: type1},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, arg1: type0},
// CHECK:STDOUT: {kind: StubReference, arg0: node+5, type: type0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str2, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str2, arg1: type0},
// CHECK:STDOUT: {kind: StubReference, arg0: node+8, type: type0},
// CHECK:STDOUT: {kind: StructValue, arg0: block4, type: type1},
// CHECK:STDOUT: {kind: Assign, arg0: node+3, arg1: node+11, type: type1},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, type: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str2, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+3, arg1: node+11},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str1, arg1: type0},
// CHECK:STDOUT: {kind: StructTypeField, arg0: str2, arg1: type0},
// CHECK:STDOUT: {kind: VarStorage, type: type1},
// CHECK:STDOUT: {kind: BindName, arg0: str3, arg1: node+15, type: type1},
// CHECK:STDOUT: {kind: Assign, arg0: node+15, arg1: node+3, type: type1},
// CHECK:STDOUT: {kind: Assign, arg0: node+15, arg1: node+3},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
+2 -2
View File
@@ -27,11 +27,11 @@
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+2, type: type0},
// CHECK:STDOUT: {kind: TupleValue, arg0: block0, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: node+4, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: node+4},
// CHECK:STDOUT: {kind: TupleValue, arg0: block0, type: type0},
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+7, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+7, arg1: node+2, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+7, arg1: node+2},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -38,7 +38,7 @@
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+4, type: type2},
// CHECK:STDOUT: {kind: TupleType, arg0: typeBlock2, type: typeTypeType},
// CHECK:STDOUT: {kind: TupleValue, arg0: block0, type: type3},
// CHECK:STDOUT: {kind: Assign, arg0: node+4, arg1: nodeError, type: typeError},
// CHECK:STDOUT: {kind: Assign, arg0: node+4, arg1: nodeError},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -28,7 +28,7 @@
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+2, type: type0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type1},
// CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: nodeError, type: typeError},
// CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: nodeError},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -50,7 +50,7 @@
// CHECK:STDOUT: {kind: StubReference, arg0: node+9, type: type3},
// CHECK:STDOUT: {kind: TupleType, arg0: typeBlock2, type: typeTypeType},
// CHECK:STDOUT: {kind: TupleValue, arg0: block3, type: type4},
// CHECK:STDOUT: {kind: Assign, arg0: node+5, arg1: nodeError, type: typeError},
// CHECK:STDOUT: {kind: Assign, arg0: node+5, arg1: nodeError},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -45,7 +45,7 @@
// CHECK:STDOUT: {kind: StubReference, arg0: node+7, type: type1},
// CHECK:STDOUT: {kind: TupleType, arg0: typeBlock2, type: typeTypeType},
// CHECK:STDOUT: {kind: TupleValue, arg0: block3, type: type3},
// CHECK:STDOUT: {kind: Assign, arg0: node+5, arg1: nodeError, type: typeError},
// CHECK:STDOUT: {kind: Assign, arg0: node+5, arg1: nodeError},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -35,7 +35,7 @@
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+4, type: type2},
// CHECK:STDOUT: {kind: StubReference, arg0: nodeIntegerType, type: typeTypeType},
// CHECK:STDOUT: {kind: TupleValue, arg0: block3, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+4, arg1: nodeError, type: typeError},
// CHECK:STDOUT: {kind: Assign, arg0: node+4, arg1: nodeError},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
+1 -1
View File
@@ -63,7 +63,7 @@
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int2, type: type2},
// CHECK:STDOUT: {kind: StubReference, arg0: node+18, type: type2},
// CHECK:STDOUT: {kind: TupleValue, arg0: block5, type: type4},
// CHECK:STDOUT: {kind: Assign, arg0: node+10, arg1: node+20, type: type4},
// CHECK:STDOUT: {kind: Assign, arg0: node+10, arg1: node+20},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
+2 -2
View File
@@ -38,12 +38,12 @@
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type1},
// CHECK:STDOUT: {kind: StubReference, arg0: node+6, type: type1},
// CHECK:STDOUT: {kind: TupleValue, arg0: block3, type: type2},
// CHECK:STDOUT: {kind: Assign, arg0: node+4, arg1: node+8, type: type2},
// CHECK:STDOUT: {kind: Assign, arg0: node+4, arg1: node+8},
// CHECK:STDOUT: {kind: StubReference, arg0: nodeIntegerType, type: typeTypeType},
// CHECK:STDOUT: {kind: TupleValue, arg0: block4, type: type0},
// CHECK:STDOUT: {kind: VarStorage, type: type2},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+12, type: type2},
// CHECK:STDOUT: {kind: Assign, arg0: node+12, arg1: node+4, type: type2},
// CHECK:STDOUT: {kind: Assign, arg0: node+12, arg1: node+4},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
+2 -2
View File
@@ -44,13 +44,13 @@
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: type1},
// CHECK:STDOUT: {kind: StubReference, arg0: node+9, type: type1},
// CHECK:STDOUT: {kind: TupleValue, arg0: block3, type: type2},
// CHECK:STDOUT: {kind: Assign, arg0: node+5, arg1: node+11, type: type2},
// CHECK:STDOUT: {kind: Assign, arg0: node+5, arg1: node+11},
// CHECK:STDOUT: {kind: StubReference, arg0: nodeIntegerType, type: typeTypeType},
// CHECK:STDOUT: {kind: StubReference, arg0: nodeIntegerType, type: typeTypeType},
// CHECK:STDOUT: {kind: TupleValue, arg0: block4, type: type0},
// CHECK:STDOUT: {kind: VarStorage, type: type2},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+16, type: type2},
// CHECK:STDOUT: {kind: Assign, arg0: node+16, arg1: node+5, type: type2},
// CHECK:STDOUT: {kind: Assign, arg0: node+16, arg1: node+5},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
+1 -1
View File
@@ -26,7 +26,7 @@
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+1, type: type0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+1, arg1: node+3, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+1, arg1: node+3},
// CHECK:STDOUT: {kind: Return},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
@@ -27,11 +27,11 @@
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+1, type: type0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+1, arg1: node+3, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+1, arg1: node+3},
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+5, type: type0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+5, arg1: node+7, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+5, arg1: node+7},
// CHECK:STDOUT: {kind: Return},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
@@ -27,7 +27,7 @@
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+1, type: type0},
// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: type1},
// CHECK:STDOUT: {kind: Assign, arg0: node+1, arg1: nodeError, type: typeError},
// CHECK:STDOUT: {kind: Assign, arg0: node+1, arg1: nodeError},
// CHECK:STDOUT: {kind: Return},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
@@ -24,7 +24,7 @@
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+1, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+1, arg1: nodeError, type: typeError},
// CHECK:STDOUT: {kind: Assign, arg0: node+1, arg1: nodeError},
// CHECK:STDOUT: {kind: Return},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
@@ -28,7 +28,7 @@
// CHECK:STDOUT: {kind: Return},
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+4, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+4, arg1: nodeError, type: typeError},
// CHECK:STDOUT: {kind: Assign, arg0: node+4, arg1: nodeError},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -28,7 +28,7 @@
// CHECK:STDOUT: {kind: VarStorage, type: typeError},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+2, type: typeError},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: nodeError, type: typeError},
// CHECK:STDOUT: {kind: Assign, arg0: node+2, arg1: nodeError},
// CHECK:STDOUT: {kind: Return},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
@@ -23,7 +23,7 @@
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+0, arg1: node+2, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+0, arg1: node+2},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
+2 -2
View File
@@ -24,10 +24,10 @@
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+0, arg1: node+2, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+0, arg1: node+2},
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+4, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+4, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+4, arg1: node+0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
@@ -26,11 +26,11 @@
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+0, arg1: node+2, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+0, arg1: node+2},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0},
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+5, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+5, arg1: node+0, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+5, arg1: node+0},
// CHECK:STDOUT: {kind: Return},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
+1 -1
View File
@@ -26,7 +26,7 @@
// CHECK:STDOUT: {kind: VarStorage, type: type0},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+1, type: type0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+1, arg1: node+3, type: type0},
// CHECK:STDOUT: {kind: Assign, arg0: node+1, arg1: node+3},
// CHECK:STDOUT: {kind: Return},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [