mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-09-24 20:50:13 +01:00
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:
@@ -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;
|
||||
|
||||
@@ -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_) {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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()),
|
||||
|
||||
@@ -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
@@ -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: ]
|
||||
|
||||
|
||||
@@ -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: [
|
||||
|
||||
@@ -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
@@ -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);
|
||||
}
|
||||
|
||||
+44
-51
@@ -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
@@ -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
@@ -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: ]
|
||||
|
||||
|
||||
+13
-20
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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: ]
|
||||
|
||||
|
||||
+12
-19
@@ -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
@@ -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
@@ -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
@@ -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: ]
|
||||
|
||||
|
||||
+17
-24
@@ -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
@@ -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: ]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user