Modify SemanticsIR printing to produce stable output on builtin changes. (#2702)

These changes should make output more stable when builtins are added to semantics. By omitting them from nodes and printing nodes as "relative to the last builtin", I should be able to add and remove builtins without automatically affecting every test. Also by printing builtin nodes as `nodeNameOfBuiltin`, it's a little easier to understand what's going on (for me, at least).
This commit is contained in:
Jon Ross-Perkins
2023-03-22 10:24:03 -07:00
committed by GitHub
parent e89fb83e7e
commit 4ca2e81877
46 changed files with 604 additions and 813 deletions
+9 -2
View File
@@ -139,13 +139,20 @@ auto Driver::RunDumpSubcommand(DiagnosticConsumer& consumer,
}
args = args.drop_front();
auto parse_tree_preorder = false;
bool parse_tree_preorder = false;
if (dump_mode == DumpMode::ParseTree && !args.empty() &&
args.front() == "--preorder") {
args = args.drop_front();
parse_tree_preorder = true;
}
bool semantics_ir_include_builtins = false;
if (dump_mode == DumpMode::SemanticsIR && !args.empty() &&
args.front() == "--include_builtins") {
args = args.drop_front();
semantics_ir_include_builtins = true;
}
if (args.empty()) {
error_stream_ << "ERROR: No input file specified.\n";
return false;
@@ -204,7 +211,7 @@ auto Driver::RunDumpSubcommand(DiagnosticConsumer& consumer,
CARBON_VLOG() << "*** SemanticsIR::MakeFromParseTree done ***\n";
if (dump_mode == DumpMode::SemanticsIR) {
consumer.Flush();
output_stream_ << semantics_ir;
semantics_ir.Print(output_stream_, semantics_ir_include_builtins);
return !has_errors;
}
CARBON_VLOG() << "semantics_ir: " << semantics_ir;
@@ -6,5 +6,5 @@
// AUTOUPDATE
// RUN: %{not} %{carbon-run-lowering}
// CHECK:STDERR: {{.*}}/toolchain/lowering/testdata/basics/fail_in_semantics.carbon:[[@LINE+1]]:17: Type mismatch: lhs is node2, rhs is node3
// CHECK:STDERR: {{.*}}/toolchain/lowering/testdata/basics/fail_in_semantics.carbon:[[@LINE+1]]:17: Type mismatch: lhs is nodeIntegerType, rhs is nodeFloatingPointType
var x: i32 = 1.0;
+11 -2
View File
@@ -71,7 +71,8 @@ static auto PrintList(llvm::raw_ostream& out, llvm::StringLiteral name,
out << "]\n";
}
auto SemanticsIR::Print(llvm::raw_ostream& out) const -> void {
auto SemanticsIR::Print(llvm::raw_ostream& out, bool include_builtins) const
-> void {
out << "cross_reference_irs_size: " << cross_reference_irs_.size() << "\n";
PrintList(out, "calls", calls_);
@@ -79,7 +80,15 @@ auto SemanticsIR::Print(llvm::raw_ostream& out) const -> void {
PrintList(out, "integer_literals", integer_literals_);
PrintList(out, "real_literals", real_literals_);
PrintList(out, "strings", strings_);
PrintList(out, "nodes", nodes_);
out << "nodes: [\n";
for (int i = include_builtins ? 0 : SemanticsBuiltinKind::ValidCount;
i < static_cast<int>(nodes_.size()); ++i) {
const auto& element = nodes_[i];
out.indent(Indent);
out << element << ",\n";
}
out << "]\n";
out << "node_blocks: [\n";
for (const auto& node_block : node_blocks_) {
+9 -2
View File
@@ -74,8 +74,15 @@ class SemanticsIR {
DiagnosticConsumer& consumer,
llvm::raw_ostream* vlog_stream) -> SemanticsIR;
// Prints the full IR.
auto Print(llvm::raw_ostream& out) const -> void;
// Prints the full IR. Allow omitting builtins so that unrelated changes are
// less likely to alternate test golden files.
// TODO: In the future, the things to print may change, for example by adding
// preludes. We may then want the ability to omit other things similar to
// builtins.
auto Print(llvm::raw_ostream& out) const -> void {
Print(out, /*include_builtins=*/false);
}
auto Print(llvm::raw_ostream& out, bool include_builtins) const -> void;
// Returns the requested callable.
auto GetCallable(SemanticsCallableId callable_id) const -> SemanticsCallable {
+18 -16
View File
@@ -43,7 +43,8 @@ TEST(SemanticsIRTest, YAML) {
// Matches the ID of a node. The numbers may change because of builtin
// cross-references, so this code is only doing loose structural checks.
auto node_id = Yaml::Scalar(MatchesRegex("node\\d+"));
auto node_id = Yaml::Scalar(MatchesRegex(R"(node\+\d+)"));
auto node_builtin = Yaml::Scalar(MatchesRegex(R"(node\w+)"));
EXPECT_THAT(
Yaml::Value::FromText(print_output),
@@ -54,21 +55,22 @@ TEST(SemanticsIRTest, YAML) {
Pair("integer_literals", Yaml::Sequence(ElementsAre("0"))),
Pair("real_literals", Yaml::Sequence(IsEmpty())),
Pair("strings", Yaml::Sequence(ElementsAre("x"))),
Pair("nodes",
Yaml::Sequence(AllOf(
// kind is required, other parts are optional.
Each(Yaml::Mapping(Contains(Pair("kind", _)))),
// A 0-arg node.
Contains(Yaml::Mapping(ElementsAre(
Pair("kind", "VarStorage"), Pair("type", node_id)))),
// A 1-arg node.
Contains(Yaml::Mapping(ElementsAre(
Pair("kind", "IntegerLiteral"), Pair("arg0", "int0"),
Pair("type", node_id)))),
// A 2-arg node.
Contains(Yaml::Mapping(ElementsAre(
Pair("kind", "BindName"), Pair("arg0", "str0"),
Pair("arg1", node_id), Pair("type", node_id))))))),
Pair(
"nodes",
Yaml::Sequence(AllOf(
// kind is required, other parts are optional.
Each(Yaml::Mapping(Contains(Pair("kind", _)))),
// A 0-arg node.
Contains(Yaml::Mapping(ElementsAre(
Pair("kind", "VarStorage"), Pair("type", node_builtin)))),
// A 1-arg node.
Contains(Yaml::Mapping(ElementsAre(
Pair("kind", "IntegerLiteral"), Pair("arg0", "int0"),
Pair("type", node_builtin)))),
// A 2-arg node.
Contains(Yaml::Mapping(ElementsAre(
Pair("kind", "BindName"), Pair("arg0", "str0"),
Pair("arg1", node_id), Pair("type", node_builtin))))))),
// This production has only one node block.
Pair("node_blocks",
Yaml::Sequence(ElementsAre(Yaml::Sequence(IsEmpty()),
+9 -1
View File
@@ -28,7 +28,15 @@ struct SemanticsNodeId : public IndexBase {
using IndexBase::IndexBase;
auto Print(llvm::raw_ostream& out) const -> void {
out << "node";
IndexBase::Print(out);
if (!is_valid()) {
IndexBase::Print(out);
} else if (index < SemanticsBuiltinKind::ValidCount) {
out << SemanticsBuiltinKind::FromInt(index);
} else {
// Use the `+` as a small reminder that this is a delta, rather than an
// absolute index.
out << "+" << index - SemanticsBuiltinKind::ValidCount;
}
}
};
@@ -0,0 +1,31 @@
// Part of the Carbon Language project, under the Apache License v2.0 with LLVM
// Exceptions. See /LICENSE for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
// NOAUTOUPDATE
// RUN: %{carbon} dump semantics-ir --include_builtins %s | \
// RUN: %{FileCheck-strict}
// CHECK:STDOUT: cross_reference_irs_size: 1
// CHECK:STDOUT: calls: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: callables: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: real_literals: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: strings: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeTypeType, type: nodeTypeType},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeInvalidType, type: nodeInvalidType},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeIntegerType, type: nodeTypeType},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeFloatingPointType, type: nodeTypeType},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeStringType, type: nodeTypeType},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeEmptyTupleType, type: nodeTypeType},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeEmptyTuple, type: nodeEmptyTupleType},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
+24 -31
View File
@@ -22,42 +22,35 @@
// CHECK:STDOUT: Test,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node7, type: node2},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: node2},
// CHECK:STDOUT: {kind: Assign, arg0: node7, arg1: node9, type: node2},
// CHECK:STDOUT: {kind: VarStorage, type: node3},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node11, type: node3},
// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: node3},
// CHECK:STDOUT: {kind: Assign, arg0: node11, arg1: node13, type: node3},
// CHECK:STDOUT: {kind: VarStorage, type: node4},
// CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node15, type: node4},
// CHECK:STDOUT: {kind: StringLiteral, arg0: str3, type: node4},
// CHECK:STDOUT: {kind: Assign, arg0: node15, arg1: node17, type: node4},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Assign, arg0: node+0, arg1: node+2, type: nodeIntegerType},
// CHECK:STDOUT: {kind: VarStorage, type: nodeFloatingPointType},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+4, type: nodeFloatingPointType},
// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: nodeFloatingPointType},
// CHECK:STDOUT: {kind: Assign, arg0: node+4, arg1: node+6, type: nodeFloatingPointType},
// CHECK:STDOUT: {kind: VarStorage, type: nodeStringType},
// CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+8, type: nodeStringType},
// CHECK:STDOUT: {kind: StringLiteral, arg0: str3, type: nodeStringType},
// CHECK:STDOUT: {kind: Assign, arg0: node+8, arg1: node+10, type: nodeStringType},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node11,
// CHECK:STDOUT: node12,
// CHECK:STDOUT: node13,
// CHECK:STDOUT: node14,
// CHECK:STDOUT: node15,
// CHECK:STDOUT: node16,
// CHECK:STDOUT: node17,
// CHECK:STDOUT: node18,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: node+6,
// CHECK:STDOUT: node+7,
// CHECK:STDOUT: node+8,
// CHECK:STDOUT: node+9,
// CHECK:STDOUT: node+10,
// CHECK:STDOUT: node+11,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
-7
View File
@@ -16,13 +16,6 @@
// CHECK:STDOUT: strings: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
-7
View File
@@ -16,13 +16,6 @@
// CHECK:STDOUT: strings: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
+3 -10
View File
@@ -18,22 +18,15 @@
// CHECK:STDOUT: Main,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str0, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node7, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+0, arg1: block0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
@@ -32,91 +32,84 @@
// CHECK:STDOUT: Main,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str0, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node7, arg1: block0},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node9, type: node2},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+0, arg1: block0},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+2, type: nodeIntegerType},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str2, arg1: callable1},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node11, arg1: block0},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node13, type: node2},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str3, arg1: node15, type: node2},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block0},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+6, type: nodeIntegerType},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str3, arg1: node+8, type: nodeIntegerType},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str4, arg1: callable2},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node17, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+10, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str5, arg1: callable3},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: node2},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: node2},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int2, type: node2},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int3, type: node2},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int4, type: node2},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int5, type: node2},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node19, arg1: block0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: nodeIntegerType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int2, type: nodeIntegerType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int3, type: nodeIntegerType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int4, type: nodeIntegerType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int5, type: nodeIntegerType},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+12, arg1: block0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node11,
// CHECK:STDOUT: node12,
// CHECK:STDOUT: node17,
// CHECK:STDOUT: node18,
// CHECK:STDOUT: node19,
// CHECK:STDOUT: node26,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: node+10,
// CHECK:STDOUT: node+11,
// CHECK:STDOUT: node+12,
// CHECK:STDOUT: node+19,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node13,
// CHECK:STDOUT: node14,
// CHECK:STDOUT: node15,
// CHECK:STDOUT: node16,
// CHECK:STDOUT: node+6,
// CHECK:STDOUT: node+7,
// CHECK:STDOUT: node+8,
// CHECK:STDOUT: node+9,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node14,
// CHECK:STDOUT: node16,
// CHECK:STDOUT: node+7,
// CHECK:STDOUT: node+9,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node20,
// CHECK:STDOUT: node+13,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node20,
// CHECK:STDOUT: node+13,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node21,
// CHECK:STDOUT: node22,
// CHECK:STDOUT: node+14,
// CHECK:STDOUT: node+15,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node21,
// CHECK:STDOUT: node22,
// CHECK:STDOUT: node+14,
// CHECK:STDOUT: node+15,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node23,
// CHECK:STDOUT: node24,
// CHECK:STDOUT: node+16,
// CHECK:STDOUT: node+17,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node23,
// CHECK:STDOUT: node24,
// CHECK:STDOUT: node+16,
// CHECK:STDOUT: node+17,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node25,
// CHECK:STDOUT: node+18,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node25,
// CHECK:STDOUT: node+18,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
@@ -22,42 +22,35 @@
// CHECK:STDOUT: Main,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node7, type: node2},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str1, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node9, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+2, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str2, arg1: callable1},
// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: node3},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node11, arg1: block0},
// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: nodeFloatingPointType},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node11,
// CHECK:STDOUT: node13,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: node+6,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node12,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node12,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
@@ -65,6 +58,6 @@ fn Run(a: i32) {}
fn Main() {
// CHECK:STDERR: {{.*}}/toolchain/semantics/testdata/function/call/fail_param_type.carbon:[[@LINE+2]]:6: No matching callable was found.
// CHECK:STDERR: {{.*}}/toolchain/semantics/testdata/function/call/fail_param_type.carbon:[[@LINE-4]]:1: Type mismatch: cannot convert argument 0 from node3 to node2.
// CHECK:STDERR: {{.*}}/toolchain/semantics/testdata/function/call/fail_param_type.carbon:[[@LINE-4]]:1: Type mismatch: cannot convert argument 0 from nodeFloatingPointType to nodeIntegerType.
Run(1.0);
}
@@ -30,74 +30,67 @@
// CHECK:STDOUT: Main,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node7, type: node2},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node9, type: node2},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node11, type: node2},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+2, type: nodeIntegerType},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+4, type: nodeIntegerType},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str3, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node13, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+6, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str4, arg1: callable1},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: node2},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: node2},
// CHECK:STDOUT: {kind: BinaryOperatorAdd, arg0: node16, arg1: node17, type: node2},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int2, type: node2},
// CHECK:STDOUT: {kind: BinaryOperatorAdd, arg0: node18, arg1: node19, type: node2},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int3, type: node2},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int4, type: node2},
// CHECK:STDOUT: {kind: BinaryOperatorAdd, arg0: node21, arg1: node22, type: node2},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int5, type: node2},
// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0, type: node6},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node15, arg1: block6},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BinaryOperatorAdd, arg0: node+9, arg1: node+10, type: nodeIntegerType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int2, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BinaryOperatorAdd, arg0: node+11, arg1: node+12, type: nodeIntegerType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int3, type: nodeIntegerType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int4, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BinaryOperatorAdd, arg0: node+14, arg1: node+15, type: nodeIntegerType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int5, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0, type: nodeEmptyTuple},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+8, arg1: block6},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node11,
// CHECK:STDOUT: node12,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node12,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node13,
// CHECK:STDOUT: node14,
// CHECK:STDOUT: node15,
// CHECK:STDOUT: node26,
// CHECK:STDOUT: node+6,
// CHECK:STDOUT: node+7,
// CHECK:STDOUT: node+8,
// CHECK:STDOUT: node+19,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node16,
// CHECK:STDOUT: node17,
// CHECK:STDOUT: node18,
// CHECK:STDOUT: node19,
// CHECK:STDOUT: node20,
// CHECK:STDOUT: node21,
// CHECK:STDOUT: node22,
// CHECK:STDOUT: node23,
// CHECK:STDOUT: node24,
// CHECK:STDOUT: node+9,
// CHECK:STDOUT: node+10,
// CHECK:STDOUT: node+11,
// CHECK:STDOUT: node+12,
// CHECK:STDOUT: node+13,
// CHECK:STDOUT: node+14,
// CHECK:STDOUT: node+15,
// CHECK:STDOUT: node+16,
// CHECK:STDOUT: node+17,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node20,
// CHECK:STDOUT: node23,
// CHECK:STDOUT: node24,
// CHECK:STDOUT: node+13,
// CHECK:STDOUT: node+16,
// CHECK:STDOUT: node+17,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node25,
// CHECK:STDOUT: node+18,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
+16 -23
View File
@@ -23,46 +23,39 @@
// CHECK:STDOUT: Main,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node7, type: node2},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str1, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node9, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+2, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str2, arg1: callable1},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: node2},
// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0, type: node6},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node11, arg1: block6},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0, type: nodeEmptyTuple},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block6},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node11,
// CHECK:STDOUT: node14,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: node+7,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node12,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node12,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node13,
// CHECK:STDOUT: node+6,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
@@ -25,55 +25,48 @@
// CHECK:STDOUT: Main,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node7, type: node2},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str1, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node9, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+2, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str2, arg1: callable1},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: node2},
// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0, type: node6},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: node2},
// CHECK:STDOUT: {kind: Call, arg0: call1, arg1: callable0, type: node6},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node11, arg1: block6},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0, type: nodeEmptyTuple},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Call, arg0: call1, arg1: callable0, type: nodeEmptyTuple},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block6},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node11,
// CHECK:STDOUT: node16,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: node+9,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node12,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node12,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node13,
// CHECK:STDOUT: node15,
// CHECK:STDOUT: node+6,
// CHECK:STDOUT: node+8,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node14,
// CHECK:STDOUT: node+7,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node14,
// CHECK:STDOUT: node+7,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
+24 -31
View File
@@ -25,54 +25,47 @@
// CHECK:STDOUT: Main,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node7, type: node2},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node9, type: node2},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+2, type: nodeIntegerType},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str2, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node11, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str3, arg1: callable1},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: node2},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: node2},
// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0, type: node6},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node13, arg1: block6},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0, type: nodeEmptyTuple},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+6, arg1: block6},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node11,
// CHECK:STDOUT: node12,
// CHECK:STDOUT: node13,
// CHECK:STDOUT: node17,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: node+6,
// CHECK:STDOUT: node+10,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node14,
// CHECK:STDOUT: node15,
// CHECK:STDOUT: node+7,
// CHECK:STDOUT: node+8,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node14,
// CHECK:STDOUT: node15,
// CHECK:STDOUT: node+7,
// CHECK:STDOUT: node+8,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node16,
// CHECK:STDOUT: node+9,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
@@ -28,66 +28,59 @@
// CHECK:STDOUT: Main,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node7, type: node2},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node9, type: node2},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+2, type: nodeIntegerType},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str2, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node11, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str3, arg1: callable1},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: node2},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: node2},
// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0, type: node6},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int2, type: node2},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int3, type: node2},
// CHECK:STDOUT: {kind: Call, arg0: call1, arg1: callable0, type: node6},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node13, arg1: block6},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0, type: nodeEmptyTuple},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int2, type: nodeIntegerType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int3, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Call, arg0: call1, arg1: callable0, type: nodeEmptyTuple},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+6, arg1: block6},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node11,
// CHECK:STDOUT: node12,
// CHECK:STDOUT: node13,
// CHECK:STDOUT: node20,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: node+6,
// CHECK:STDOUT: node+13,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node14,
// CHECK:STDOUT: node15,
// CHECK:STDOUT: node+7,
// CHECK:STDOUT: node+8,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node14,
// CHECK:STDOUT: node15,
// CHECK:STDOUT: node+7,
// CHECK:STDOUT: node+8,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node16,
// CHECK:STDOUT: node19,
// CHECK:STDOUT: node+9,
// CHECK:STDOUT: node+12,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node17,
// CHECK:STDOUT: node18,
// CHECK:STDOUT: node+10,
// CHECK:STDOUT: node+11,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node17,
// CHECK:STDOUT: node18,
// CHECK:STDOUT: node+10,
// CHECK:STDOUT: node+11,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
@@ -21,30 +21,23 @@
// CHECK:STDOUT: Main,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str0, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node7, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+0, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str1, arg1: callable1},
// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0, type: node6},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node9, arg1: block2},
// CHECK:STDOUT: {kind: Call, arg0: call0, arg1: callable0, type: nodeEmptyTuple},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+2, arg1: block2},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node11,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
@@ -19,36 +19,29 @@
// CHECK:STDOUT: Bar,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node7, type: node2},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node9, type: node2},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+2, type: nodeIntegerType},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str1, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node11, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node11,
// CHECK:STDOUT: node12,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
@@ -22,30 +22,23 @@
// CHECK:STDOUT: Baz,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str0, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node7, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+0, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str1, arg1: callable1},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node9, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+2, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str2, arg1: callable2},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node11, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node11,
// CHECK:STDOUT: node12,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
@@ -19,31 +19,24 @@
// CHECK:STDOUT: Foo,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node7, type: node2},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str1, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node9, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+2, arg1: block0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
@@ -19,31 +19,24 @@
// CHECK:STDOUT: Foo,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node7, type: node2},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str1, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node9, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+2, arg1: block0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
@@ -20,36 +20,29 @@
// CHECK:STDOUT: Foo,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node7, type: node2},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node9, type: node2},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+2, type: nodeIntegerType},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str2, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node11, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node11,
// CHECK:STDOUT: node12,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
@@ -20,36 +20,29 @@
// CHECK:STDOUT: Foo,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node7, type: node2},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node9, type: node2},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+2, type: nodeIntegerType},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str2, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node11, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node11,
// CHECK:STDOUT: node12,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
@@ -18,22 +18,15 @@
// CHECK:STDOUT: Foo,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str0, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node7, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+0, arg1: block0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
@@ -21,44 +21,37 @@
// CHECK:STDOUT: Bar,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node7, type: node2},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str1, arg1: callable0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node9, arg1: block0},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node11, type: node2},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+2, arg1: block0},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+4, type: nodeIntegerType},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str2, arg1: callable1},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node13, arg1: block0},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+6, arg1: block0},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node13,
// CHECK:STDOUT: node14,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: node+6,
// CHECK:STDOUT: node+7,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node11,
// CHECK:STDOUT: node12,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node12,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
+12 -19
View File
@@ -8,7 +8,7 @@
// CHECK:STDOUT: calls: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: callables: [
// CHECK:STDOUT: {param_ir: block0, param_refs: block0, return_type: node2},
// CHECK:STDOUT: {param_ir: block0, param_refs: block0, return_type: nodeIntegerType},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: 12,
@@ -20,32 +20,25 @@
// CHECK:STDOUT: Main,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str0, arg1: callable0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: node2},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: node2},
// CHECK:STDOUT: {kind: BinaryOperatorAdd, arg0: node8, arg1: node9, type: node2},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node10, type: node2},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node7, arg1: block2},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BinaryOperatorAdd, arg0: node+1, arg1: node+2, type: nodeIntegerType},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+3, type: nodeIntegerType},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+0, arg1: block2},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node12,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node11,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
@@ -8,7 +8,7 @@
// CHECK:STDOUT: calls: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: callables: [
// CHECK:STDOUT: {param_ir: block0, param_refs: block0, return_type: node2},
// CHECK:STDOUT: {param_ir: block0, param_refs: block0, return_type: nodeIntegerType},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: 12,
@@ -20,36 +20,29 @@
// CHECK:STDOUT: Main,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str0, arg1: callable0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: node2},
// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: node3},
// CHECK:STDOUT: {kind: BinaryOperatorAdd, arg0: node8, arg1: node9, type: node1},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node10, type: node1},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node7, arg1: block2},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: nodeFloatingPointType},
// CHECK:STDOUT: {kind: BinaryOperatorAdd, arg0: node+1, arg1: node+2, type: nodeInvalidType},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+3, type: nodeInvalidType},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+0, arg1: block2},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node12,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node11,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
fn Main() -> i32 {
// CHECK:STDERR: {{.*}}/toolchain/semantics/testdata/operators/fail_type_mismatch.carbon:[[@LINE+1]]:13: Type mismatch: lhs is node2, rhs is node3
// CHECK:STDERR: {{.*}}/toolchain/semantics/testdata/operators/fail_type_mismatch.carbon:[[@LINE+1]]:13: Type mismatch: lhs is nodeIntegerType, rhs is nodeFloatingPointType
return 12 + 3.4;
}
@@ -8,7 +8,7 @@
// CHECK:STDOUT: calls: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: callables: [
// CHECK:STDOUT: {param_ir: block0, param_refs: block0, return_type: node2},
// CHECK:STDOUT: {param_ir: block0, param_refs: block0, return_type: nodeIntegerType},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: 12,
@@ -21,42 +21,35 @@
// CHECK:STDOUT: Main,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str0, arg1: callable0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: node2},
// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: node3},
// CHECK:STDOUT: {kind: BinaryOperatorAdd, arg0: node8, arg1: node9, type: node1},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: node2},
// CHECK:STDOUT: {kind: BinaryOperatorAdd, arg0: node10, arg1: node11, type: node1},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node12, type: node1},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node7, arg1: block2},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: nodeFloatingPointType},
// CHECK:STDOUT: {kind: BinaryOperatorAdd, arg0: node+1, arg1: node+2, type: nodeInvalidType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BinaryOperatorAdd, arg0: node+3, arg1: node+4, type: nodeInvalidType},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+5, type: nodeInvalidType},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+0, arg1: block2},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node14,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+7,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node11,
// CHECK:STDOUT: node12,
// CHECK:STDOUT: node13,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: node+6,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
fn Main() -> i32 {
// The following line has two mismatches, but after the first, it shouldn't
// keep erroring.
// CHECK:STDERR: {{.*}}/toolchain/semantics/testdata/operators/fail_type_mismatch_once.carbon:[[@LINE+1]]:13: Type mismatch: lhs is node2, rhs is node3
// CHECK:STDERR: {{.*}}/toolchain/semantics/testdata/operators/fail_type_mismatch_once.carbon:[[@LINE+1]]:13: Type mismatch: lhs is nodeIntegerType, rhs is nodeFloatingPointType
return 12 + 3.4 + 12;
}
@@ -8,7 +8,7 @@
// CHECK:STDOUT: calls: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: callables: [
// CHECK:STDOUT: {param_ir: block0, param_refs: block0, return_type: node2},
// CHECK:STDOUT: {param_ir: block0, param_refs: block0, return_type: nodeIntegerType},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]
@@ -19,32 +19,25 @@
// CHECK:STDOUT: Main,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str0, arg1: callable0},
// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: node3},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node8},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node7, arg1: block2},
// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: nodeFloatingPointType},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+1},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+0, arg1: block2},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
fn Main() -> i32 {
// CHECK:STDERR: {{.*}}/toolchain/semantics/testdata/return/fail_type_mismatch.carbon:[[@LINE+1]]:13: Cannot convert node3 to node2.
// CHECK:STDERR: {{.*}}/toolchain/semantics/testdata/return/fail_type_mismatch.carbon:[[@LINE+1]]:13: Cannot convert nodeFloatingPointType to nodeIntegerType.
return 1.0;
}
@@ -19,28 +19,21 @@
// CHECK:STDOUT: Main,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str0, arg1: callable0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: node2},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node8, type: node2},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node7, arg1: block2},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+1, type: nodeIntegerType},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+0, arg1: block2},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
@@ -8,7 +8,7 @@
// CHECK:STDOUT: calls: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: callables: [
// CHECK:STDOUT: {param_ir: block0, param_refs: block0, return_type: node2},
// CHECK:STDOUT: {param_ir: block0, param_refs: block0, return_type: nodeIntegerType},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: ]
@@ -18,30 +18,23 @@
// CHECK:STDOUT: Main,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str0, arg1: callable0},
// CHECK:STDOUT: {kind: Return},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node7, arg1: block2},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+0, arg1: block2},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
fn Main() -> i32 {
// CHECK:STDERR: {{.*}}/toolchain/semantics/testdata/return/fail_value_missing.carbon:[[@LINE+1]]:9: Must return a node2.
// CHECK:STDERR: {{.*}}/toolchain/semantics/testdata/return/fail_value_missing.carbon:[[@LINE+1]]:9: Must return a nodeIntegerType.
return;
}
+4 -11
View File
@@ -18,26 +18,19 @@
// CHECK:STDOUT: Main,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str0, arg1: callable0},
// CHECK:STDOUT: {kind: Return},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node7, arg1: block2},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+0, arg1: block2},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
+8 -15
View File
@@ -8,7 +8,7 @@
// CHECK:STDOUT: calls: [
// CHECK:STDOUT: ]
// CHECK:STDOUT: callables: [
// CHECK:STDOUT: {param_ir: block0, param_refs: block0, return_type: node2},
// CHECK:STDOUT: {param_ir: block0, param_refs: block0, return_type: nodeIntegerType},
// CHECK:STDOUT: ]
// CHECK:STDOUT: integer_literals: [
// CHECK:STDOUT: 0,
@@ -19,28 +19,21 @@
// CHECK:STDOUT: Main,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str0, arg1: callable0},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: node2},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node8, type: node2},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node7, arg1: block2},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+1, type: nodeIntegerType},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+0, arg1: block2},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
+7 -14
View File
@@ -19,28 +19,21 @@
// CHECK:STDOUT: x,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str0, arg1: callable0},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node8, type: node2},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node7, arg1: block2},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+1, type: nodeIntegerType},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+0, arg1: block2},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
+11 -18
View File
@@ -20,32 +20,25 @@
// CHECK:STDOUT: x,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str0, arg1: callable0},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node8, type: node2},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: node2},
// CHECK:STDOUT: {kind: Assign, arg0: node8, arg1: node10, type: node2},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node7, arg1: block2},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+1, type: nodeIntegerType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Assign, arg0: node+1, arg1: node+3, type: nodeIntegerType},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+0, arg1: block2},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node12,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node11,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
+19 -26
View File
@@ -21,40 +21,33 @@
// CHECK:STDOUT: x,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str0, arg1: callable0},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node8, type: node2},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: node2},
// CHECK:STDOUT: {kind: Assign, arg0: node8, arg1: node10, type: node2},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node12, type: node2},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: node2},
// CHECK:STDOUT: {kind: Assign, arg0: node8, arg1: node14, type: node2},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node7, arg1: block2},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+1, type: nodeIntegerType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Assign, arg0: node+1, arg1: node+3, type: nodeIntegerType},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+5, type: nodeIntegerType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int1, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Assign, arg0: node+1, arg1: node+7, type: nodeIntegerType},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+0, arg1: block2},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node16,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+9,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node11,
// CHECK:STDOUT: node12,
// CHECK:STDOUT: node13,
// CHECK:STDOUT: node14,
// CHECK:STDOUT: node15,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: node+6,
// CHECK:STDOUT: node+7,
// CHECK:STDOUT: node+8,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
@@ -20,36 +20,29 @@
// CHECK:STDOUT: x,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str0, arg1: callable0},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node8, type: node2},
// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: node3},
// CHECK:STDOUT: {kind: Assign, arg0: node8, arg1: node10, type: node1},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node7, arg1: block2},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+1, type: nodeIntegerType},
// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: nodeFloatingPointType},
// CHECK:STDOUT: {kind: Assign, arg0: node+1, arg1: node+3, type: nodeInvalidType},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+0, arg1: block2},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node12,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node11,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
fn Main() {
// CHECK:STDERR: {{.*}}/toolchain/semantics/testdata/var/fail_init_type_mismatch.carbon:[[@LINE+1]]:19: Type mismatch: lhs is node2, rhs is node3
// CHECK:STDERR: {{.*}}/toolchain/semantics/testdata/var/fail_init_type_mismatch.carbon:[[@LINE+1]]:19: Type mismatch: lhs is nodeIntegerType, rhs is nodeFloatingPointType
var x: i32 = 1.0;
}
+9 -16
View File
@@ -19,30 +19,23 @@
// CHECK:STDOUT: x,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str0, arg1: callable0},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node8, type: node2},
// CHECK:STDOUT: {kind: Assign, arg0: node8, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node7, arg1: block2},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+1, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Assign, arg0: node+1, arg1: nodeInvalidType, type: nodeInvalidType},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+0, arg1: block2},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node11,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
@@ -20,34 +20,27 @@
// CHECK:STDOUT: y,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str0, arg1: callable0},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node8, type: node2},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node7, arg1: block2},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node11, type: node2},
// CHECK:STDOUT: {kind: Assign, arg0: node11, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+1, type: nodeIntegerType},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+0, arg1: block2},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+4, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Assign, arg0: node+4, arg1: nodeInvalidType, type: nodeInvalidType},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node11,
// CHECK:STDOUT: node12,
// CHECK:STDOUT: node13,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: node+6,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
+4 -11
View File
@@ -17,22 +17,15 @@
// CHECK:STDOUT: x,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node7, type: node2},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: nodeIntegerType},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
@@ -18,26 +18,19 @@
// CHECK:STDOUT: x,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node7, type: node2},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: node2},
// CHECK:STDOUT: {kind: Assign, arg0: node7, arg1: node9, type: node2},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Assign, arg0: node+0, arg1: node+2, type: nodeIntegerType},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
+14 -21
View File
@@ -19,32 +19,25 @@
// CHECK:STDOUT: y,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node7, type: node2},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: node2},
// CHECK:STDOUT: {kind: Assign, arg0: node7, arg1: node9, type: node2},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node11, type: node2},
// CHECK:STDOUT: {kind: Assign, arg0: node11, arg1: node7, type: node2},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Assign, arg0: node+0, arg1: node+2, type: nodeIntegerType},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+4, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Assign, arg0: node+4, arg1: node+0, type: nodeIntegerType},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node11,
// CHECK:STDOUT: node12,
// CHECK:STDOUT: node13,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: node+6,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
@@ -21,38 +21,31 @@
// CHECK:STDOUT: y,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node7, type: node2},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: node2},
// CHECK:STDOUT: {kind: Assign, arg0: node7, arg1: node9, type: node2},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str0, arg1: node+0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Assign, arg0: node+0, arg1: node+2, type: nodeIntegerType},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str1, arg1: callable0},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node12, type: node2},
// CHECK:STDOUT: {kind: Assign, arg0: node12, arg1: node7, type: node2},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node11, arg1: block2},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str2, arg1: node+5, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Assign, arg0: node+5, arg1: node+0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+4, arg1: block2},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node11,
// CHECK:STDOUT: node15,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: node+8,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node12,
// CHECK:STDOUT: node13,
// CHECK:STDOUT: node14,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: node+6,
// CHECK:STDOUT: node+7,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]
+11 -18
View File
@@ -20,32 +20,25 @@
// CHECK:STDOUT: x,
// CHECK:STDOUT: ]
// CHECK:STDOUT: nodes: [
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node0, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node1, type: node1},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node2, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node3, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node4, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node5, type: node0},
// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: node6, type: node5},
// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: str0, arg1: callable0},
// CHECK:STDOUT: {kind: VarStorage, type: node2},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node8, type: node2},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: node2},
// CHECK:STDOUT: {kind: Assign, arg0: node8, arg1: node10, type: node2},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node7, arg1: block2},
// CHECK:STDOUT: {kind: VarStorage, type: nodeIntegerType},
// CHECK:STDOUT: {kind: BindName, arg0: str1, arg1: node+1, type: nodeIntegerType},
// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: nodeIntegerType},
// CHECK:STDOUT: {kind: Assign, arg0: node+1, arg1: node+3, type: nodeIntegerType},
// CHECK:STDOUT: {kind: FunctionDefinition, arg0: node+0, arg1: block2},
// CHECK:STDOUT: ]
// CHECK:STDOUT: node_blocks: [
// CHECK:STDOUT: [
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node7,
// CHECK:STDOUT: node12,
// CHECK:STDOUT: node+0,
// CHECK:STDOUT: node+5,
// CHECK:STDOUT: ],
// CHECK:STDOUT: [
// CHECK:STDOUT: node8,
// CHECK:STDOUT: node9,
// CHECK:STDOUT: node10,
// CHECK:STDOUT: node11,
// CHECK:STDOUT: node+1,
// CHECK:STDOUT: node+2,
// CHECK:STDOUT: node+3,
// CHECK:STDOUT: node+4,
// CHECK:STDOUT: ],
// CHECK:STDOUT: ]