From 9ae41b29656e307dbcec4477ec66501f0563dd8c Mon Sep 17 00:00:00 2001 From: Jon Ross-Perkins Date: Wed, 13 Sep 2023 10:08:18 -0700 Subject: [PATCH] Update SemIR yaml and text for multi-file. (#3217) Building on #3214 and #3215, updates sem_ir yaml to be: ``` - filename: name sem_ir: [ ... ] ``` Also, changes the textual format from `package { ... }` to `file { ... }`. My thought on packages there is: ``` file "foo.carbon" { package MyPackage ... } ``` The reason for putting the file first is that it's easier if we put what we're grouping on first, whereas the package is an "annotation" on the file. --- toolchain/base/yaml_test_helpers.h | 2 +- toolchain/check/check.cpp | 2 +- .../testdata/array/assign_return_value.carbon | 2 +- .../check/testdata/array/assign_var.carbon | 2 +- toolchain/check/testdata/array/base.carbon | 2 +- .../testdata/array/fail_bound_overflow.carbon | 2 +- .../testdata/array/fail_invalid_type.carbon | 2 +- .../testdata/array/fail_out_of_bound.carbon | 2 +- .../testdata/array/fail_type_mismatch.carbon | 2 +- .../array/fail_undefined_bound.carbon | 2 +- .../check/testdata/array/nine_elements.carbon | 2 +- .../testdata/basics/builtin_nodes.carbon | 52 +++--- .../testdata/basics/builtin_types.carbon | 2 +- toolchain/check/testdata/basics/empty.carbon | 2 +- .../check/testdata/basics/empty_decl.carbon | 2 +- .../testdata/basics/fail_name_lookup.carbon | 2 +- .../basics/fail_non_type_as_type.carbon | 2 +- .../basics/fail_qualifier_unsupported.carbon | 2 +- .../check/testdata/basics/multifile.carbon | 27 +++ .../multifile_raw_and_textual_ir.carbon | 95 ++++++++++ .../testdata/basics/multifile_raw_ir.carbon | 77 ++++++++ .../testdata/basics/numeric_literals.carbon | 2 +- toolchain/check/testdata/basics/parens.carbon | 2 +- .../testdata/basics/raw_and_textual_ir.carbon | 172 +++++++++--------- toolchain/check/testdata/basics/raw_ir.carbon | 170 ++++++++--------- .../check/testdata/basics/textual_ir.carbon | 2 +- .../check/testdata/const/collapse.carbon | 2 +- .../check/testdata/const/fail_collapse.carbon | 2 +- .../in_place_tuple_initialization.carbon | 2 +- .../function/call/empty_struct.carbon | 2 +- .../testdata/function/call/empty_tuple.carbon | 2 +- .../function/call/fail_param_count.carbon | 2 +- .../function/call/fail_param_type.carbon | 2 +- .../call/fail_return_type_mismatch.carbon | 2 +- .../check/testdata/function/call/i32.carbon | 2 +- .../function/call/more_param_ir.carbon | 2 +- .../testdata/function/call/params_one.carbon | 2 +- .../function/call/params_one_comma.carbon | 2 +- .../testdata/function/call/params_two.carbon | 2 +- .../function/call/params_two_comma.carbon | 2 +- .../testdata/function/call/params_zero.carbon | 2 +- .../function/call/return_implicit.carbon | 2 +- .../function/declaration/simple.carbon | 2 +- .../fail_param_name_conflict.carbon | 2 +- .../testdata/function/definition/order.carbon | 2 +- .../function/definition/params_one.carbon | 2 +- .../definition/params_one_comma.carbon | 2 +- .../function/definition/params_two.carbon | 2 +- .../definition/params_two_comma.carbon | 2 +- .../function/definition/params_zero.carbon | 2 +- .../definition/same_param_name.carbon | 2 +- toolchain/check/testdata/if/else.carbon | 2 +- .../if/fail_reachable_fallthrough.carbon | 2 +- toolchain/check/testdata/if/fail_scope.carbon | 2 +- toolchain/check/testdata/if/no_else.carbon | 2 +- .../if/unreachable_fallthrough.carbon | 2 +- .../check/testdata/if_expression/basic.carbon | 2 +- .../if_expression/constant_condition.carbon | 2 +- .../if_expression/control_flow.carbon | 2 +- .../testdata/if_expression/nested.carbon | 2 +- .../index/array_element_access.carbon | 2 +- .../index/fail_array_large_index.carbon | 2 +- .../index/fail_array_non_int_indexing.carbon | 2 +- .../fail_array_out_of_bound_access.carbon | 2 +- .../index/fail_empty_tuple_access.carbon | 2 +- .../testdata/index/fail_name_not_found.carbon | 2 +- .../index/fail_negative_indexing.carbon | 2 +- .../index/fail_non_deterministic_type.carbon | 2 +- .../index/fail_non_tuple_access.carbon | 2 +- .../index/fail_tuple_large_index.carbon | 2 +- .../index/fail_tuple_non_int_indexing.carbon | 2 +- .../fail_tuple_out_of_bound_access.carbon | 2 +- .../index/tuple_element_access.carbon | 2 +- .../index/tuple_return_value_access.carbon | 2 +- .../ir/duplicate_name_same_line.carbon | 2 +- .../testdata/namespace/fail_duplicate.carbon | 2 +- .../namespace/fail_unresolved_scope.carbon | 2 +- .../check/testdata/namespace/function.carbon | 2 +- .../check/testdata/namespace/nested.carbon | 2 +- toolchain/check/testdata/operators/and.carbon | 2 +- .../testdata/operators/assignment.carbon | 2 +- .../check/testdata/operators/binary_op.carbon | 2 +- .../fail_assigment_to_non_assignable.carbon | 2 +- .../operators/fail_type_mismatch.carbon | 2 +- .../fail_type_mismatch_assignment.carbon | 2 +- .../operators/fail_type_mismatch_once.carbon | 2 +- toolchain/check/testdata/operators/or.carbon | 2 +- .../check/testdata/operators/unary_op.carbon | 2 +- .../testdata/pointer/address_of_deref.carbon | 2 +- .../testdata/pointer/address_of_lvalue.carbon | 2 +- toolchain/check/testdata/pointer/basic.carbon | 2 +- .../pointer/fail_address_of_value.carbon | 2 +- .../fail_dereference_not_pointer.carbon | 2 +- .../pointer/fail_dereference_type.carbon | 2 +- .../pointer/fail_type_mismatch.carbon | 2 +- .../testdata/pointer/nested_const.carbon | 2 +- toolchain/check/testdata/pointer/types.carbon | 2 +- .../testdata/return/code_after_return.carbon | 2 +- .../return/code_after_return_value.carbon | 2 +- .../return/fail_missing_return.carbon | 2 +- .../fail_missing_return_empty_tuple.carbon | 2 +- .../testdata/return/fail_type_mismatch.carbon | 2 +- .../return/fail_value_disallowed.carbon | 2 +- .../testdata/return/fail_value_missing.carbon | 2 +- .../missing_return_no_return_type.carbon | 2 +- .../check/testdata/return/no_value.carbon | 2 +- toolchain/check/testdata/return/struct.carbon | 2 +- toolchain/check/testdata/return/tuple.carbon | 2 +- toolchain/check/testdata/return/value.carbon | 2 +- toolchain/check/testdata/struct/empty.carbon | 2 +- .../struct/fail_access_into_invalid.carbon | 2 +- .../testdata/struct/fail_assign_empty.carbon | 2 +- .../testdata/struct/fail_assign_nested.carbon | 2 +- .../struct/fail_assign_to_empty.carbon | 2 +- .../struct/fail_field_name_mismatch.carbon | 2 +- .../struct/fail_field_type_mismatch.carbon | 2 +- .../struct/fail_member_access_type.carbon | 2 +- .../struct/fail_non_member_access.carbon | 2 +- .../struct/fail_too_few_values.carbon | 2 +- .../testdata/struct/fail_type_assign.carbon | 2 +- .../testdata/struct/fail_value_as_type.carbon | 2 +- .../testdata/struct/member_access.carbon | 2 +- .../check/testdata/struct/one_entry.carbon | 2 +- .../testdata/struct/tuple_as_element.carbon | 2 +- .../check/testdata/struct/two_entries.carbon | 2 +- toolchain/check/testdata/tuples/empty.carbon | 2 +- .../testdata/tuples/fail_assign_empty.carbon | 2 +- .../testdata/tuples/fail_assign_nested.carbon | 2 +- .../tuples/fail_assign_to_empty.carbon | 2 +- .../tuples/fail_element_type_mismatch.carbon | 2 +- .../tuples/fail_too_few_element.carbon | 2 +- .../testdata/tuples/fail_type_assign.carbon | 2 +- .../testdata/tuples/fail_value_as_type.carbon | 2 +- .../check/testdata/tuples/nested_tuple.carbon | 2 +- .../check/testdata/tuples/one_element.carbon | 2 +- .../check/testdata/tuples/two_elements.carbon | 2 +- toolchain/check/testdata/var/decl.carbon | 2 +- .../check/testdata/var/decl_with_init.carbon | 2 +- .../testdata/var/fail_duplicate_decl.carbon | 2 +- .../var/fail_init_type_mismatch.carbon | 2 +- .../testdata/var/fail_init_with_self.carbon | 2 +- .../var/fail_lookup_outside_scope.carbon | 2 +- .../var/fail_storage_is_literal.carbon | 2 +- .../check/testdata/var/global_decl.carbon | 2 +- .../testdata/var/global_decl_with_init.carbon | 2 +- .../check/testdata/var/global_lookup.carbon | 2 +- .../var/global_lookup_in_scope.carbon | 2 +- toolchain/check/testdata/var/lookup.carbon | 2 +- toolchain/sem_ir/BUILD | 1 + toolchain/sem_ir/file.cpp | 63 ++++--- toolchain/sem_ir/file.h | 8 +- toolchain/sem_ir/file_test.cpp | 63 ++++--- toolchain/sem_ir/formatter.cpp | 6 +- 153 files changed, 625 insertions(+), 393 deletions(-) create mode 100644 toolchain/check/testdata/basics/multifile.carbon create mode 100644 toolchain/check/testdata/basics/multifile_raw_and_textual_ir.carbon create mode 100644 toolchain/check/testdata/basics/multifile_raw_ir.carbon diff --git a/toolchain/base/yaml_test_helpers.h b/toolchain/base/yaml_test_helpers.h index 06a53460e3e2..262b93241a4f 100644 --- a/toolchain/base/yaml_test_helpers.h +++ b/toolchain/base/yaml_test_helpers.h @@ -132,7 +132,7 @@ MATCHER_P(Sequence, contents, // Same as testing::VariantWith(contents). // NOLINTNEXTLINE: Expands from GoogleTest. MATCHER_P(Scalar, value, - "has scalar value " + ::testing::PrintToString(value)) { + "has scalar value " + DescribeMatcher(value)) { ::testing::Matcher value_matcher = value; if (auto* map = std::get_if(&arg)) { diff --git a/toolchain/check/check.cpp b/toolchain/check/check.cpp index 9be523db9b6c..11f45d089834 100644 --- a/toolchain/check/check.cpp +++ b/toolchain/check/check.cpp @@ -15,7 +15,7 @@ auto CheckParseTree(const SemIR::File& builtin_ir, const Lex::TokenizedBuffer& tokens, const Parse::Tree& parse_tree, DiagnosticConsumer& consumer, llvm::raw_ostream* vlog_stream) -> SemIR::File { - auto semantics_ir = SemIR::File(&builtin_ir); + auto semantics_ir = SemIR::File(tokens.filename().str(), &builtin_ir); Parse::NodeLocationTranslator translator(&tokens, &parse_tree); ErrorTrackingDiagnosticConsumer err_tracker(consumer); diff --git a/toolchain/check/testdata/array/assign_return_value.carbon b/toolchain/check/testdata/array/assign_return_value.carbon index f76c2d0ebb1a..1ba6a2d54d11 100644 --- a/toolchain/check/testdata/array/assign_return_value.carbon +++ b/toolchain/check/testdata/array/assign_return_value.carbon @@ -10,7 +10,7 @@ fn Run() { var t: [i32; 1] = F(); } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "assign_return_value.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @F // CHECK:STDOUT: %.loc9 = fn_decl @Run // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/array/assign_var.carbon b/toolchain/check/testdata/array/assign_var.carbon index 571dc8a37aab..91d193666efe 100644 --- a/toolchain/check/testdata/array/assign_var.carbon +++ b/toolchain/check/testdata/array/assign_var.carbon @@ -7,7 +7,7 @@ var a: (i32, i32, i32) = (1, 2, 3); var b: [i32; 3] = a; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "assign_var.carbon" { // CHECK:STDOUT: %.loc7_9: type = stub_reference i32 // CHECK:STDOUT: %.loc7_14: type = stub_reference i32 // CHECK:STDOUT: %.loc7_19: type = stub_reference i32 diff --git a/toolchain/check/testdata/array/base.carbon b/toolchain/check/testdata/array/base.carbon index b570b8315cee..ccd6cb750783 100644 --- a/toolchain/check/testdata/array/base.carbon +++ b/toolchain/check/testdata/array/base.carbon @@ -8,7 +8,7 @@ var a: [i32; 1] = (1,); var b: [f64; 2] = (11.1, 2.2,); var c: [(); 5] = ((), (), (), (), (),); -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "base.carbon" { // CHECK:STDOUT: %.loc7_14: i32 = int_literal 1 // CHECK:STDOUT: %.loc7_15: type = array_type %.loc7_14, i32 // CHECK:STDOUT: %a: ref [i32; 1] = var "a" diff --git a/toolchain/check/testdata/array/fail_bound_overflow.carbon b/toolchain/check/testdata/array/fail_bound_overflow.carbon index 58aec4ccc7d9..008bce790096 100644 --- a/toolchain/check/testdata/array/fail_bound_overflow.carbon +++ b/toolchain/check/testdata/array/fail_bound_overflow.carbon @@ -9,7 +9,7 @@ // CHECK:STDERR: ^ var a: [1; 39999999999999999993]; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_bound_overflow.carbon" { // CHECK:STDOUT: %.loc10_9: i32 = int_literal 1 // CHECK:STDOUT: %.loc10_12: i32 = int_literal 39999999999999999993 // CHECK:STDOUT: %a: ref = var "a" diff --git a/toolchain/check/testdata/array/fail_invalid_type.carbon b/toolchain/check/testdata/array/fail_invalid_type.carbon index 581416cd4fc5..91dded1147e5 100644 --- a/toolchain/check/testdata/array/fail_invalid_type.carbon +++ b/toolchain/check/testdata/array/fail_invalid_type.carbon @@ -9,7 +9,7 @@ // CHECK:STDERR: ^ var a: [1; 1]; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_invalid_type.carbon" { // CHECK:STDOUT: %.loc10_9: i32 = int_literal 1 // CHECK:STDOUT: %.loc10_12: i32 = int_literal 1 // CHECK:STDOUT: %.loc10_13: type = array_type %.loc10_12, diff --git a/toolchain/check/testdata/array/fail_out_of_bound.carbon b/toolchain/check/testdata/array/fail_out_of_bound.carbon index ac16e39638c3..e8c55b0bac1d 100644 --- a/toolchain/check/testdata/array/fail_out_of_bound.carbon +++ b/toolchain/check/testdata/array/fail_out_of_bound.carbon @@ -9,7 +9,7 @@ // CHECK:STDERR: ^ var a: [i32; 1] = (1, 2, 3); -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_out_of_bound.carbon" { // CHECK:STDOUT: %.loc10_14: i32 = int_literal 1 // CHECK:STDOUT: %.loc10_15: type = array_type %.loc10_14, i32 // CHECK:STDOUT: %a: ref [i32; 1] = var "a" diff --git a/toolchain/check/testdata/array/fail_type_mismatch.carbon b/toolchain/check/testdata/array/fail_type_mismatch.carbon index 8445d8dbabf6..6101c30c4870 100644 --- a/toolchain/check/testdata/array/fail_type_mismatch.carbon +++ b/toolchain/check/testdata/array/fail_type_mismatch.carbon @@ -9,7 +9,7 @@ // CHECK:STDERR: ^ var a: [i32; 2] = (1, 2.5); -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_type_mismatch.carbon" { // CHECK:STDOUT: %.loc10_14: i32 = int_literal 2 // CHECK:STDOUT: %.loc10_15: type = array_type %.loc10_14, i32 // CHECK:STDOUT: %a: ref [i32; 2] = var "a" diff --git a/toolchain/check/testdata/array/fail_undefined_bound.carbon b/toolchain/check/testdata/array/fail_undefined_bound.carbon index 8044f4905d00..8c69f8ffee36 100644 --- a/toolchain/check/testdata/array/fail_undefined_bound.carbon +++ b/toolchain/check/testdata/array/fail_undefined_bound.carbon @@ -9,5 +9,5 @@ // CHECK:STDERR: ^ var a: [i32; ]; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_undefined_bound.carbon" { // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/array/nine_elements.carbon b/toolchain/check/testdata/array/nine_elements.carbon index e880ec547621..48c86e3255c7 100644 --- a/toolchain/check/testdata/array/nine_elements.carbon +++ b/toolchain/check/testdata/array/nine_elements.carbon @@ -6,7 +6,7 @@ var a: [i32; 9] = (1, 2, 3, 4, 5, 6, 7, 8, 9); -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "nine_elements.carbon" { // CHECK:STDOUT: %.loc7_14: i32 = int_literal 9 // CHECK:STDOUT: %.loc7_15: type = array_type %.loc7_14, i32 // CHECK:STDOUT: %a: ref [i32; 9] = var "a" diff --git a/toolchain/check/testdata/basics/builtin_nodes.carbon b/toolchain/check/testdata/basics/builtin_nodes.carbon index 5cad77f51b51..f4ea562e1d0f 100644 --- a/toolchain/check/testdata/basics/builtin_nodes.carbon +++ b/toolchain/check/testdata/basics/builtin_nodes.carbon @@ -6,28 +6,30 @@ // // AUTOUPDATE -// CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: functions: [ -// CHECK:STDOUT: ] -// CHECK:STDOUT: integer_literals: [ -// CHECK:STDOUT: ] -// CHECK:STDOUT: real_literals: [ -// CHECK:STDOUT: ] -// CHECK:STDOUT: strings: [ -// CHECK:STDOUT: ] -// CHECK:STDOUT: types: [ -// CHECK:STDOUT: ] -// CHECK:STDOUT: type_blocks: [ -// CHECK:STDOUT: ] -// CHECK:STDOUT: nodes: [ -// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeTypeType, type: typeTypeType}, -// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeError, type: typeError}, -// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeBoolType, type: typeTypeType}, -// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeIntegerType, type: typeTypeType}, -// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeFloatingPointType, type: typeTypeType}, -// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeStringType, type: typeTypeType}, -// CHECK:STDOUT: ] -// CHECK:STDOUT: node_blocks: [ -// CHECK:STDOUT: [ -// CHECK:STDOUT: ], -// CHECK:STDOUT: ] +// CHECK:STDOUT: - filename: builtin_nodes.carbon +// CHECK:STDOUT: sem_ir: +// CHECK:STDOUT: - cross_reference_irs_size: 1 +// CHECK:STDOUT: functions: [ +// CHECK:STDOUT: ] +// CHECK:STDOUT: integer_literals: [ +// CHECK:STDOUT: ] +// CHECK:STDOUT: real_literals: [ +// CHECK:STDOUT: ] +// CHECK:STDOUT: strings: [ +// CHECK:STDOUT: ] +// CHECK:STDOUT: types: [ +// CHECK:STDOUT: ] +// CHECK:STDOUT: type_blocks: [ +// CHECK:STDOUT: ] +// CHECK:STDOUT: nodes: [ +// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeTypeType, type: typeTypeType}, +// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeError, type: typeError}, +// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeBoolType, type: typeTypeType}, +// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeIntegerType, type: typeTypeType}, +// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeFloatingPointType, type: typeTypeType}, +// CHECK:STDOUT: {kind: CrossReference, arg0: ir0, arg1: nodeStringType, type: typeTypeType}, +// CHECK:STDOUT: ] +// CHECK:STDOUT: node_blocks: [ +// CHECK:STDOUT: [ +// CHECK:STDOUT: ], +// CHECK:STDOUT: ] diff --git a/toolchain/check/testdata/basics/builtin_types.carbon b/toolchain/check/testdata/basics/builtin_types.carbon index 8c5ac7a01029..cf5496b47c93 100644 --- a/toolchain/check/testdata/basics/builtin_types.carbon +++ b/toolchain/check/testdata/basics/builtin_types.carbon @@ -9,7 +9,7 @@ var test_f64: f64 = 0.1; var test_str: String = "Test"; var test_type: type = i32; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "builtin_types.carbon" { // CHECK:STDOUT: %test_i32: ref i32 = var "test_i32" // CHECK:STDOUT: %.loc7: i32 = int_literal 0 // CHECK:STDOUT: assign %test_i32, %.loc7 diff --git a/toolchain/check/testdata/basics/empty.carbon b/toolchain/check/testdata/basics/empty.carbon index 92b65a825060..e4a5d8398fb9 100644 --- a/toolchain/check/testdata/basics/empty.carbon +++ b/toolchain/check/testdata/basics/empty.carbon @@ -4,5 +4,5 @@ // // AUTOUPDATE -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "empty.carbon" { // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/basics/empty_decl.carbon b/toolchain/check/testdata/basics/empty_decl.carbon index 189ee7b1b9c9..5066f94ffe56 100644 --- a/toolchain/check/testdata/basics/empty_decl.carbon +++ b/toolchain/check/testdata/basics/empty_decl.carbon @@ -6,5 +6,5 @@ ; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "empty_decl.carbon" { // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/basics/fail_name_lookup.carbon b/toolchain/check/testdata/basics/fail_name_lookup.carbon index aad5709cec9b..02bf48b350f9 100644 --- a/toolchain/check/testdata/basics/fail_name_lookup.carbon +++ b/toolchain/check/testdata/basics/fail_name_lookup.carbon @@ -11,7 +11,7 @@ fn Main() { x; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_name_lookup.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Main // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/basics/fail_non_type_as_type.carbon b/toolchain/check/testdata/basics/fail_non_type_as_type.carbon index 6f86dd63bf41..03440b1b75e6 100644 --- a/toolchain/check/testdata/basics/fail_non_type_as_type.carbon +++ b/toolchain/check/testdata/basics/fail_non_type_as_type.carbon @@ -9,7 +9,7 @@ // CHECK:STDERR: ^ var x: type = 42; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_non_type_as_type.carbon" { // CHECK:STDOUT: %x: ref type = var "x" // CHECK:STDOUT: %.loc10: i32 = int_literal 42 // CHECK:STDOUT: assign %x, diff --git a/toolchain/check/testdata/basics/fail_qualifier_unsupported.carbon b/toolchain/check/testdata/basics/fail_qualifier_unsupported.carbon index 9ed2cc5dbd1f..b5ccbabfd693 100644 --- a/toolchain/check/testdata/basics/fail_qualifier_unsupported.carbon +++ b/toolchain/check/testdata/basics/fail_qualifier_unsupported.carbon @@ -10,7 +10,7 @@ var x: i32; // CHECK:STDERR: ^ var y: i32 = x.b; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_qualifier_unsupported.carbon" { // CHECK:STDOUT: %x: ref i32 = var "x" // CHECK:STDOUT: %y: ref i32 = var "y" // CHECK:STDOUT: assign %y, diff --git a/toolchain/check/testdata/basics/multifile.carbon b/toolchain/check/testdata/basics/multifile.carbon new file mode 100644 index 000000000000..c2c30c0416b8 --- /dev/null +++ b/toolchain/check/testdata/basics/multifile.carbon @@ -0,0 +1,27 @@ +// 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 +// +// AUTOUPDATE + +// CHECK:STDOUT: file "a.carbon" { +// CHECK:STDOUT: %.loc1 = fn_decl @A +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: fn @A() { +// CHECK:STDOUT: !entry: +// CHECK:STDOUT: return +// CHECK:STDOUT: } +// CHECK:STDOUT: file "b.carbon" { +// CHECK:STDOUT: %.loc1 = fn_decl @B +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: fn @B() { +// CHECK:STDOUT: !entry: +// CHECK:STDOUT: return +// CHECK:STDOUT: } +// --- a.carbon +fn A() {} + +// --- b.carbon +fn B() {} diff --git a/toolchain/check/testdata/basics/multifile_raw_and_textual_ir.carbon b/toolchain/check/testdata/basics/multifile_raw_and_textual_ir.carbon new file mode 100644 index 000000000000..6d52656d559c --- /dev/null +++ b/toolchain/check/testdata/basics/multifile_raw_and_textual_ir.carbon @@ -0,0 +1,95 @@ +// 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 +// +// ARGS: compile --phase=check --dump-semantics-ir --dump-raw-semantics-ir %s +// +// Check that we can combine textual IR and raw IR dumping in one compile. +// +// AUTOUPDATE + +// CHECK:STDOUT: - filename: a.carbon +// CHECK:STDOUT: sem_ir: +// CHECK:STDOUT: - cross_reference_irs_size: 1 +// CHECK:STDOUT: functions: [ +// CHECK:STDOUT: {name: str0, param_refs: block0, body: [block2]}, +// CHECK:STDOUT: ] +// CHECK:STDOUT: integer_literals: [ +// CHECK:STDOUT: ] +// CHECK:STDOUT: real_literals: [ +// CHECK:STDOUT: ] +// CHECK:STDOUT: strings: [ +// CHECK:STDOUT: A, +// CHECK:STDOUT: ] +// CHECK:STDOUT: types: [ +// CHECK:STDOUT: ] +// CHECK:STDOUT: type_blocks: [ +// CHECK:STDOUT: ] +// CHECK:STDOUT: nodes: [ +// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0}, +// CHECK:STDOUT: {kind: Return}, +// CHECK:STDOUT: ] +// CHECK:STDOUT: node_blocks: [ +// CHECK:STDOUT: [ +// CHECK:STDOUT: ], +// CHECK:STDOUT: [ +// CHECK:STDOUT: node+0, +// CHECK:STDOUT: ], +// CHECK:STDOUT: [ +// CHECK:STDOUT: node+1, +// CHECK:STDOUT: ], +// CHECK:STDOUT: ] +// CHECK:STDOUT: +// CHECK:STDOUT: file "a.carbon" { +// CHECK:STDOUT: %.loc1 = fn_decl @A +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: fn @A() { +// CHECK:STDOUT: !entry: +// CHECK:STDOUT: return +// CHECK:STDOUT: } +// CHECK:STDOUT: - filename: b.carbon +// CHECK:STDOUT: sem_ir: +// CHECK:STDOUT: - cross_reference_irs_size: 1 +// CHECK:STDOUT: functions: [ +// CHECK:STDOUT: {name: str0, param_refs: block0, body: [block2]}, +// CHECK:STDOUT: ] +// CHECK:STDOUT: integer_literals: [ +// CHECK:STDOUT: ] +// CHECK:STDOUT: real_literals: [ +// CHECK:STDOUT: ] +// CHECK:STDOUT: strings: [ +// CHECK:STDOUT: B, +// CHECK:STDOUT: ] +// CHECK:STDOUT: types: [ +// CHECK:STDOUT: ] +// CHECK:STDOUT: type_blocks: [ +// CHECK:STDOUT: ] +// CHECK:STDOUT: nodes: [ +// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0}, +// CHECK:STDOUT: {kind: Return}, +// CHECK:STDOUT: ] +// CHECK:STDOUT: node_blocks: [ +// CHECK:STDOUT: [ +// CHECK:STDOUT: ], +// CHECK:STDOUT: [ +// CHECK:STDOUT: node+0, +// CHECK:STDOUT: ], +// CHECK:STDOUT: [ +// CHECK:STDOUT: node+1, +// CHECK:STDOUT: ], +// CHECK:STDOUT: ] +// CHECK:STDOUT: +// CHECK:STDOUT: file "b.carbon" { +// CHECK:STDOUT: %.loc1 = fn_decl @B +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: fn @B() { +// CHECK:STDOUT: !entry: +// CHECK:STDOUT: return +// CHECK:STDOUT: } +// --- a.carbon +fn A() {} + +// --- b.carbon +fn B() {} diff --git a/toolchain/check/testdata/basics/multifile_raw_ir.carbon b/toolchain/check/testdata/basics/multifile_raw_ir.carbon new file mode 100644 index 000000000000..ae68deae67d3 --- /dev/null +++ b/toolchain/check/testdata/basics/multifile_raw_ir.carbon @@ -0,0 +1,77 @@ +// 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 +// +// ARGS: compile --phase=check --dump-raw-semantics-ir %s +// +// Check that raw IR dumping works as expected. +// +// AUTOUPDATE + +// CHECK:STDOUT: - filename: a.carbon +// CHECK:STDOUT: sem_ir: +// CHECK:STDOUT: - cross_reference_irs_size: 1 +// CHECK:STDOUT: functions: [ +// CHECK:STDOUT: {name: str0, param_refs: block0, body: [block2]}, +// CHECK:STDOUT: ] +// CHECK:STDOUT: integer_literals: [ +// CHECK:STDOUT: ] +// CHECK:STDOUT: real_literals: [ +// CHECK:STDOUT: ] +// CHECK:STDOUT: strings: [ +// CHECK:STDOUT: A, +// CHECK:STDOUT: ] +// CHECK:STDOUT: types: [ +// CHECK:STDOUT: ] +// CHECK:STDOUT: type_blocks: [ +// CHECK:STDOUT: ] +// CHECK:STDOUT: nodes: [ +// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0}, +// CHECK:STDOUT: {kind: Return}, +// CHECK:STDOUT: ] +// CHECK:STDOUT: node_blocks: [ +// CHECK:STDOUT: [ +// CHECK:STDOUT: ], +// CHECK:STDOUT: [ +// CHECK:STDOUT: node+0, +// CHECK:STDOUT: ], +// CHECK:STDOUT: [ +// CHECK:STDOUT: node+1, +// CHECK:STDOUT: ], +// CHECK:STDOUT: ] +// CHECK:STDOUT: - filename: b.carbon +// CHECK:STDOUT: sem_ir: +// CHECK:STDOUT: - cross_reference_irs_size: 1 +// CHECK:STDOUT: functions: [ +// CHECK:STDOUT: {name: str0, param_refs: block0, body: [block2]}, +// CHECK:STDOUT: ] +// CHECK:STDOUT: integer_literals: [ +// CHECK:STDOUT: ] +// CHECK:STDOUT: real_literals: [ +// CHECK:STDOUT: ] +// CHECK:STDOUT: strings: [ +// CHECK:STDOUT: B, +// CHECK:STDOUT: ] +// CHECK:STDOUT: types: [ +// CHECK:STDOUT: ] +// CHECK:STDOUT: type_blocks: [ +// CHECK:STDOUT: ] +// CHECK:STDOUT: nodes: [ +// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0}, +// CHECK:STDOUT: {kind: Return}, +// CHECK:STDOUT: ] +// CHECK:STDOUT: node_blocks: [ +// CHECK:STDOUT: [ +// CHECK:STDOUT: ], +// CHECK:STDOUT: [ +// CHECK:STDOUT: node+0, +// CHECK:STDOUT: ], +// CHECK:STDOUT: [ +// CHECK:STDOUT: node+1, +// CHECK:STDOUT: ], +// CHECK:STDOUT: ] +// --- a.carbon +fn A() {} + +// --- b.carbon +fn B() {} diff --git a/toolchain/check/testdata/basics/numeric_literals.carbon b/toolchain/check/testdata/basics/numeric_literals.carbon index b8a7f4c94a79..d7b19682b935 100644 --- a/toolchain/check/testdata/basics/numeric_literals.carbon +++ b/toolchain/check/testdata/basics/numeric_literals.carbon @@ -25,7 +25,7 @@ fn F() { ); } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "numeric_literals.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @F // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/basics/parens.carbon b/toolchain/check/testdata/basics/parens.carbon index e2574e8808a7..a9c2ff7d0876 100644 --- a/toolchain/check/testdata/basics/parens.carbon +++ b/toolchain/check/testdata/basics/parens.carbon @@ -6,7 +6,7 @@ var test_i32: i32 = ((1) + (2)); -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "parens.carbon" { // CHECK:STDOUT: %test_i32: ref i32 = var "test_i32" // CHECK:STDOUT: %.loc7_23: i32 = int_literal 1 // CHECK:STDOUT: %.loc7_29: i32 = int_literal 2 diff --git a/toolchain/check/testdata/basics/raw_and_textual_ir.carbon b/toolchain/check/testdata/basics/raw_and_textual_ir.carbon index be25209f7a43..7ae9f57853cd 100644 --- a/toolchain/check/testdata/basics/raw_and_textual_ir.carbon +++ b/toolchain/check/testdata/basics/raw_and_textual_ir.carbon @@ -12,92 +12,94 @@ fn Foo(n: i32) -> (i32, f64) { return (n + 2, 3.4); } -// CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: functions: [ -// CHECK:STDOUT: {name: str0, param_refs: block2, return_type: type3, return_slot: node+6, body: [block5]}, -// CHECK:STDOUT: ] -// CHECK:STDOUT: integer_literals: [ -// CHECK:STDOUT: 2, -// CHECK:STDOUT: ] -// CHECK:STDOUT: real_literals: [ -// CHECK:STDOUT: {mantissa: 34, exponent: -1, is_decimal: 1}, -// CHECK:STDOUT: ] -// CHECK:STDOUT: strings: [ -// CHECK:STDOUT: Foo, -// CHECK:STDOUT: n, -// CHECK:STDOUT: return, -// CHECK:STDOUT: ] -// CHECK:STDOUT: types: [ -// CHECK:STDOUT: nodeIntegerType, -// CHECK:STDOUT: node+3, -// CHECK:STDOUT: nodeFloatingPointType, -// CHECK:STDOUT: node+5, -// CHECK:STDOUT: ] -// CHECK:STDOUT: type_blocks: [ -// CHECK:STDOUT: [ -// CHECK:STDOUT: typeTypeType, -// CHECK:STDOUT: typeTypeType, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: type0, -// CHECK:STDOUT: type2, -// CHECK:STDOUT: ], -// CHECK:STDOUT: ] -// CHECK:STDOUT: nodes: [ -// CHECK:STDOUT: {kind: Parameter, arg0: str1, type: type0}, -// CHECK:STDOUT: {kind: StubReference, arg0: nodeIntegerType, type: typeTypeType}, -// CHECK:STDOUT: {kind: StubReference, arg0: nodeFloatingPointType, type: typeTypeType}, -// CHECK:STDOUT: {kind: TupleType, arg0: typeBlock0, type: typeTypeType}, -// CHECK:STDOUT: {kind: TupleLiteral, arg0: block3, type: type1}, -// CHECK:STDOUT: {kind: TupleType, arg0: typeBlock1, type: typeTypeType}, -// CHECK:STDOUT: {kind: VarStorage, arg0: str2, type: type3}, -// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0}, -// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0}, -// CHECK:STDOUT: {kind: BinaryOperatorAdd, arg0: node+0, arg1: node+8, type: type0}, -// CHECK:STDOUT: {kind: StubReference, arg0: node+9, type: type0}, -// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: type2}, -// CHECK:STDOUT: {kind: StubReference, arg0: node+11, type: type2}, -// CHECK:STDOUT: {kind: TupleLiteral, arg0: block6, type: type3}, -// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+13}, -// CHECK:STDOUT: ] -// CHECK:STDOUT: node_blocks: [ -// CHECK:STDOUT: [ -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// 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: [ -// CHECK:STDOUT: node+0, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+1, -// CHECK:STDOUT: node+2, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+7, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+8, -// 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: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+10, -// CHECK:STDOUT: node+12, -// CHECK:STDOUT: ], -// CHECK:STDOUT: ] +// CHECK:STDOUT: - filename: raw_and_textual_ir.carbon +// CHECK:STDOUT: sem_ir: +// CHECK:STDOUT: - cross_reference_irs_size: 1 +// CHECK:STDOUT: functions: [ +// CHECK:STDOUT: {name: str0, param_refs: block2, return_type: type3, return_slot: node+6, body: [block5]}, +// CHECK:STDOUT: ] +// CHECK:STDOUT: integer_literals: [ +// CHECK:STDOUT: 2, +// CHECK:STDOUT: ] +// CHECK:STDOUT: real_literals: [ +// CHECK:STDOUT: {mantissa: 34, exponent: -1, is_decimal: 1}, +// CHECK:STDOUT: ] +// CHECK:STDOUT: strings: [ +// CHECK:STDOUT: Foo, +// CHECK:STDOUT: n, +// CHECK:STDOUT: return, +// CHECK:STDOUT: ] +// CHECK:STDOUT: types: [ +// CHECK:STDOUT: nodeIntegerType, +// CHECK:STDOUT: node+3, +// CHECK:STDOUT: nodeFloatingPointType, +// CHECK:STDOUT: node+5, +// CHECK:STDOUT: ] +// CHECK:STDOUT: type_blocks: [ +// CHECK:STDOUT: [ +// CHECK:STDOUT: typeTypeType, +// CHECK:STDOUT: typeTypeType, +// CHECK:STDOUT: ], +// CHECK:STDOUT: [ +// CHECK:STDOUT: type0, +// CHECK:STDOUT: type2, +// CHECK:STDOUT: ], +// CHECK:STDOUT: ] +// CHECK:STDOUT: nodes: [ +// CHECK:STDOUT: {kind: Parameter, arg0: str1, type: type0}, +// CHECK:STDOUT: {kind: StubReference, arg0: nodeIntegerType, type: typeTypeType}, +// CHECK:STDOUT: {kind: StubReference, arg0: nodeFloatingPointType, type: typeTypeType}, +// CHECK:STDOUT: {kind: TupleType, arg0: typeBlock0, type: typeTypeType}, +// CHECK:STDOUT: {kind: TupleLiteral, arg0: block3, type: type1}, +// CHECK:STDOUT: {kind: TupleType, arg0: typeBlock1, type: typeTypeType}, +// CHECK:STDOUT: {kind: VarStorage, arg0: str2, type: type3}, +// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0}, +// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0}, +// CHECK:STDOUT: {kind: BinaryOperatorAdd, arg0: node+0, arg1: node+8, type: type0}, +// CHECK:STDOUT: {kind: StubReference, arg0: node+9, type: type0}, +// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: type2}, +// CHECK:STDOUT: {kind: StubReference, arg0: node+11, type: type2}, +// CHECK:STDOUT: {kind: TupleLiteral, arg0: block6, type: type3}, +// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+13}, +// CHECK:STDOUT: ] +// CHECK:STDOUT: node_blocks: [ +// CHECK:STDOUT: [ +// CHECK:STDOUT: ], +// CHECK:STDOUT: [ +// 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: [ +// CHECK:STDOUT: node+0, +// CHECK:STDOUT: ], +// CHECK:STDOUT: [ +// CHECK:STDOUT: node+1, +// CHECK:STDOUT: node+2, +// CHECK:STDOUT: ], +// CHECK:STDOUT: [ +// CHECK:STDOUT: node+7, +// CHECK:STDOUT: ], +// CHECK:STDOUT: [ +// CHECK:STDOUT: node+8, +// 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: ], +// CHECK:STDOUT: [ +// CHECK:STDOUT: node+10, +// CHECK:STDOUT: node+12, +// CHECK:STDOUT: ], +// CHECK:STDOUT: ] // CHECK:STDOUT: -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "raw_and_textual_ir.carbon" { // CHECK:STDOUT: %.loc11 = fn_decl @Foo // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/basics/raw_ir.carbon b/toolchain/check/testdata/basics/raw_ir.carbon index a0d2c6bb4436..34720547e62d 100644 --- a/toolchain/check/testdata/basics/raw_ir.carbon +++ b/toolchain/check/testdata/basics/raw_ir.carbon @@ -12,87 +12,89 @@ fn Foo(n: i32) -> (i32, f64) { return (n + 2, 3.4); } -// CHECK:STDOUT: cross_reference_irs_size: 1 -// CHECK:STDOUT: functions: [ -// CHECK:STDOUT: {name: str0, param_refs: block2, return_type: type3, return_slot: node+6, body: [block5]}, -// CHECK:STDOUT: ] -// CHECK:STDOUT: integer_literals: [ -// CHECK:STDOUT: 2, -// CHECK:STDOUT: ] -// CHECK:STDOUT: real_literals: [ -// CHECK:STDOUT: {mantissa: 34, exponent: -1, is_decimal: 1}, -// CHECK:STDOUT: ] -// CHECK:STDOUT: strings: [ -// CHECK:STDOUT: Foo, -// CHECK:STDOUT: n, -// CHECK:STDOUT: return, -// CHECK:STDOUT: ] -// CHECK:STDOUT: types: [ -// CHECK:STDOUT: nodeIntegerType, -// CHECK:STDOUT: node+3, -// CHECK:STDOUT: nodeFloatingPointType, -// CHECK:STDOUT: node+5, -// CHECK:STDOUT: ] -// CHECK:STDOUT: type_blocks: [ -// CHECK:STDOUT: [ -// CHECK:STDOUT: typeTypeType, -// CHECK:STDOUT: typeTypeType, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: type0, -// CHECK:STDOUT: type2, -// CHECK:STDOUT: ], -// CHECK:STDOUT: ] -// CHECK:STDOUT: nodes: [ -// CHECK:STDOUT: {kind: Parameter, arg0: str1, type: type0}, -// CHECK:STDOUT: {kind: StubReference, arg0: nodeIntegerType, type: typeTypeType}, -// CHECK:STDOUT: {kind: StubReference, arg0: nodeFloatingPointType, type: typeTypeType}, -// CHECK:STDOUT: {kind: TupleType, arg0: typeBlock0, type: typeTypeType}, -// CHECK:STDOUT: {kind: TupleLiteral, arg0: block3, type: type1}, -// CHECK:STDOUT: {kind: TupleType, arg0: typeBlock1, type: typeTypeType}, -// CHECK:STDOUT: {kind: VarStorage, arg0: str2, type: type3}, -// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0}, -// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0}, -// CHECK:STDOUT: {kind: BinaryOperatorAdd, arg0: node+0, arg1: node+8, type: type0}, -// CHECK:STDOUT: {kind: StubReference, arg0: node+9, type: type0}, -// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: type2}, -// CHECK:STDOUT: {kind: StubReference, arg0: node+11, type: type2}, -// CHECK:STDOUT: {kind: TupleLiteral, arg0: block6, type: type3}, -// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+13}, -// CHECK:STDOUT: ] -// CHECK:STDOUT: node_blocks: [ -// CHECK:STDOUT: [ -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// 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: [ -// CHECK:STDOUT: node+0, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+1, -// CHECK:STDOUT: node+2, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+7, -// CHECK:STDOUT: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+8, -// 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: ], -// CHECK:STDOUT: [ -// CHECK:STDOUT: node+10, -// CHECK:STDOUT: node+12, -// CHECK:STDOUT: ], -// CHECK:STDOUT: ] +// CHECK:STDOUT: - filename: raw_ir.carbon +// CHECK:STDOUT: sem_ir: +// CHECK:STDOUT: - cross_reference_irs_size: 1 +// CHECK:STDOUT: functions: [ +// CHECK:STDOUT: {name: str0, param_refs: block2, return_type: type3, return_slot: node+6, body: [block5]}, +// CHECK:STDOUT: ] +// CHECK:STDOUT: integer_literals: [ +// CHECK:STDOUT: 2, +// CHECK:STDOUT: ] +// CHECK:STDOUT: real_literals: [ +// CHECK:STDOUT: {mantissa: 34, exponent: -1, is_decimal: 1}, +// CHECK:STDOUT: ] +// CHECK:STDOUT: strings: [ +// CHECK:STDOUT: Foo, +// CHECK:STDOUT: n, +// CHECK:STDOUT: return, +// CHECK:STDOUT: ] +// CHECK:STDOUT: types: [ +// CHECK:STDOUT: nodeIntegerType, +// CHECK:STDOUT: node+3, +// CHECK:STDOUT: nodeFloatingPointType, +// CHECK:STDOUT: node+5, +// CHECK:STDOUT: ] +// CHECK:STDOUT: type_blocks: [ +// CHECK:STDOUT: [ +// CHECK:STDOUT: typeTypeType, +// CHECK:STDOUT: typeTypeType, +// CHECK:STDOUT: ], +// CHECK:STDOUT: [ +// CHECK:STDOUT: type0, +// CHECK:STDOUT: type2, +// CHECK:STDOUT: ], +// CHECK:STDOUT: ] +// CHECK:STDOUT: nodes: [ +// CHECK:STDOUT: {kind: Parameter, arg0: str1, type: type0}, +// CHECK:STDOUT: {kind: StubReference, arg0: nodeIntegerType, type: typeTypeType}, +// CHECK:STDOUT: {kind: StubReference, arg0: nodeFloatingPointType, type: typeTypeType}, +// CHECK:STDOUT: {kind: TupleType, arg0: typeBlock0, type: typeTypeType}, +// CHECK:STDOUT: {kind: TupleLiteral, arg0: block3, type: type1}, +// CHECK:STDOUT: {kind: TupleType, arg0: typeBlock1, type: typeTypeType}, +// CHECK:STDOUT: {kind: VarStorage, arg0: str2, type: type3}, +// CHECK:STDOUT: {kind: FunctionDeclaration, arg0: function0}, +// CHECK:STDOUT: {kind: IntegerLiteral, arg0: int0, type: type0}, +// CHECK:STDOUT: {kind: BinaryOperatorAdd, arg0: node+0, arg1: node+8, type: type0}, +// CHECK:STDOUT: {kind: StubReference, arg0: node+9, type: type0}, +// CHECK:STDOUT: {kind: RealLiteral, arg0: real0, type: type2}, +// CHECK:STDOUT: {kind: StubReference, arg0: node+11, type: type2}, +// CHECK:STDOUT: {kind: TupleLiteral, arg0: block6, type: type3}, +// CHECK:STDOUT: {kind: ReturnExpression, arg0: node+13}, +// CHECK:STDOUT: ] +// CHECK:STDOUT: node_blocks: [ +// CHECK:STDOUT: [ +// CHECK:STDOUT: ], +// CHECK:STDOUT: [ +// 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: [ +// CHECK:STDOUT: node+0, +// CHECK:STDOUT: ], +// CHECK:STDOUT: [ +// CHECK:STDOUT: node+1, +// CHECK:STDOUT: node+2, +// CHECK:STDOUT: ], +// CHECK:STDOUT: [ +// CHECK:STDOUT: node+7, +// CHECK:STDOUT: ], +// CHECK:STDOUT: [ +// CHECK:STDOUT: node+8, +// 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: ], +// CHECK:STDOUT: [ +// CHECK:STDOUT: node+10, +// CHECK:STDOUT: node+12, +// CHECK:STDOUT: ], +// CHECK:STDOUT: ] diff --git a/toolchain/check/testdata/basics/textual_ir.carbon b/toolchain/check/testdata/basics/textual_ir.carbon index 3d935edf3687..463c6a1e06d7 100644 --- a/toolchain/check/testdata/basics/textual_ir.carbon +++ b/toolchain/check/testdata/basics/textual_ir.carbon @@ -12,7 +12,7 @@ fn Foo(n: i32) -> (i32, f64) { return (n + 2, 3.4); } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "textual_ir.carbon" { // CHECK:STDOUT: %.loc11 = fn_decl @Foo // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/const/collapse.carbon b/toolchain/check/testdata/const/collapse.carbon index 1ba7aa786c62..79c8e35c71aa 100644 --- a/toolchain/check/testdata/const/collapse.carbon +++ b/toolchain/check/testdata/const/collapse.carbon @@ -12,7 +12,7 @@ fn F(p: const i32**) -> const (const i32)** { return p; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "collapse.carbon" { // CHECK:STDOUT: %.loc11 = fn_decl @F // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/const/fail_collapse.carbon b/toolchain/check/testdata/const/fail_collapse.carbon index b576eb256c17..338adb2a0351 100644 --- a/toolchain/check/testdata/const/fail_collapse.carbon +++ b/toolchain/check/testdata/const/fail_collapse.carbon @@ -14,7 +14,7 @@ fn G(p: const (const i32)**) -> i32** { return p; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_collapse.carbon" { // CHECK:STDOUT: %.loc10 = fn_decl @G // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/expression_category/in_place_tuple_initialization.carbon b/toolchain/check/testdata/expression_category/in_place_tuple_initialization.carbon index facb31b8f03d..093015b6300e 100644 --- a/toolchain/check/testdata/expression_category/in_place_tuple_initialization.carbon +++ b/toolchain/check/testdata/expression_category/in_place_tuple_initialization.carbon @@ -16,7 +16,7 @@ fn H() -> i32 { return G()[0]; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "in_place_tuple_initialization.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @F // CHECK:STDOUT: %.loc9 = fn_decl @G // CHECK:STDOUT: %.loc15 = fn_decl @H diff --git a/toolchain/check/testdata/function/call/empty_struct.carbon b/toolchain/check/testdata/function/call/empty_struct.carbon index 04f6f43efbd1..f002165a9084 100644 --- a/toolchain/check/testdata/function/call/empty_struct.carbon +++ b/toolchain/check/testdata/function/call/empty_struct.carbon @@ -12,7 +12,7 @@ fn Main() { Echo({}); } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "empty_struct.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Echo // CHECK:STDOUT: %.loc11 = fn_decl @Main // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/call/empty_tuple.carbon b/toolchain/check/testdata/function/call/empty_tuple.carbon index f1238c0ae3a0..63430585f45d 100644 --- a/toolchain/check/testdata/function/call/empty_tuple.carbon +++ b/toolchain/check/testdata/function/call/empty_tuple.carbon @@ -12,7 +12,7 @@ fn Main() { Echo(()); } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "empty_tuple.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Echo // CHECK:STDOUT: %.loc11 = fn_decl @Main // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/call/fail_param_count.carbon b/toolchain/check/testdata/function/call/fail_param_count.carbon index 32a4e3cace2a..b454b4f9e9ce 100644 --- a/toolchain/check/testdata/function/call/fail_param_count.carbon +++ b/toolchain/check/testdata/function/call/fail_param_count.carbon @@ -55,7 +55,7 @@ fn Main() { Run2(0); } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_param_count.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Run0 // CHECK:STDOUT: %.loc8 = fn_decl @Run1 // CHECK:STDOUT: %.loc9 = fn_decl @Run2 diff --git a/toolchain/check/testdata/function/call/fail_param_type.carbon b/toolchain/check/testdata/function/call/fail_param_type.carbon index 0818de35b2f1..64525025dd1c 100644 --- a/toolchain/check/testdata/function/call/fail_param_type.carbon +++ b/toolchain/check/testdata/function/call/fail_param_type.carbon @@ -16,7 +16,7 @@ fn Main() { Run(1.0); } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_param_type.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Run // CHECK:STDOUT: %.loc9 = fn_decl @Main // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/call/fail_return_type_mismatch.carbon b/toolchain/check/testdata/function/call/fail_return_type_mismatch.carbon index 3a18f34c55d1..fd2934ee4324 100644 --- a/toolchain/check/testdata/function/call/fail_return_type_mismatch.carbon +++ b/toolchain/check/testdata/function/call/fail_return_type_mismatch.carbon @@ -13,7 +13,7 @@ fn Run() { var x: i32 = Foo(); } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_return_type_mismatch.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Foo // CHECK:STDOUT: %.loc9 = fn_decl @Run // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/call/i32.carbon b/toolchain/check/testdata/function/call/i32.carbon index 3dbf874b6630..69d324b29485 100644 --- a/toolchain/check/testdata/function/call/i32.carbon +++ b/toolchain/check/testdata/function/call/i32.carbon @@ -12,7 +12,7 @@ fn Main() { var b: i32 = Echo(1); } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "i32.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Echo // CHECK:STDOUT: %.loc11 = fn_decl @Main // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/call/more_param_ir.carbon b/toolchain/check/testdata/function/call/more_param_ir.carbon index 0d2b33d978a7..d0815e2f9d7b 100644 --- a/toolchain/check/testdata/function/call/more_param_ir.carbon +++ b/toolchain/check/testdata/function/call/more_param_ir.carbon @@ -11,7 +11,7 @@ fn Main() { Foo(1 + 2 + 3, 4 + 5, 6); } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "more_param_ir.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Foo // CHECK:STDOUT: %.loc9 = fn_decl @Main // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/call/params_one.carbon b/toolchain/check/testdata/function/call/params_one.carbon index e7e66eedca89..2ef1bae3abc4 100644 --- a/toolchain/check/testdata/function/call/params_one.carbon +++ b/toolchain/check/testdata/function/call/params_one.carbon @@ -10,7 +10,7 @@ fn Main() { Foo(1); } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "params_one.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Foo // CHECK:STDOUT: %.loc9 = fn_decl @Main // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/call/params_one_comma.carbon b/toolchain/check/testdata/function/call/params_one_comma.carbon index af3723516c45..f978279fe589 100644 --- a/toolchain/check/testdata/function/call/params_one_comma.carbon +++ b/toolchain/check/testdata/function/call/params_one_comma.carbon @@ -11,7 +11,7 @@ fn Main() { Foo(1,); } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "params_one_comma.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Foo // CHECK:STDOUT: %.loc9 = fn_decl @Main // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/call/params_two.carbon b/toolchain/check/testdata/function/call/params_two.carbon index 6fe89f9873eb..1ece1f7bff43 100644 --- a/toolchain/check/testdata/function/call/params_two.carbon +++ b/toolchain/check/testdata/function/call/params_two.carbon @@ -10,7 +10,7 @@ fn Main() { Foo(1, 2); } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "params_two.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Foo // CHECK:STDOUT: %.loc9 = fn_decl @Main // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/call/params_two_comma.carbon b/toolchain/check/testdata/function/call/params_two_comma.carbon index e0ce7386566f..b1d5deef1fb7 100644 --- a/toolchain/check/testdata/function/call/params_two_comma.carbon +++ b/toolchain/check/testdata/function/call/params_two_comma.carbon @@ -11,7 +11,7 @@ fn Main() { Foo(1, 2,); } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "params_two_comma.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Foo // CHECK:STDOUT: %.loc9 = fn_decl @Main // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/call/params_zero.carbon b/toolchain/check/testdata/function/call/params_zero.carbon index 0627d1de9c70..756123b458d0 100644 --- a/toolchain/check/testdata/function/call/params_zero.carbon +++ b/toolchain/check/testdata/function/call/params_zero.carbon @@ -10,7 +10,7 @@ fn Main() { Foo(); } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "params_zero.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Foo // CHECK:STDOUT: %.loc9 = fn_decl @Main // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/call/return_implicit.carbon b/toolchain/check/testdata/function/call/return_implicit.carbon index e4c109dd64b5..b4ff2370afb2 100644 --- a/toolchain/check/testdata/function/call/return_implicit.carbon +++ b/toolchain/check/testdata/function/call/return_implicit.carbon @@ -11,7 +11,7 @@ fn Main() { var b: () = MakeImplicitEmptyTuple(); } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "return_implicit.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @MakeImplicitEmptyTuple // CHECK:STDOUT: %.loc10 = fn_decl @Main // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/declaration/simple.carbon b/toolchain/check/testdata/function/declaration/simple.carbon index 6d96bd9a9bca..f53df3c71ef8 100644 --- a/toolchain/check/testdata/function/declaration/simple.carbon +++ b/toolchain/check/testdata/function/declaration/simple.carbon @@ -8,7 +8,7 @@ fn F(); fn G() { F(); } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "simple.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @F // CHECK:STDOUT: %.loc9 = fn_decl @G // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/definition/fail_param_name_conflict.carbon b/toolchain/check/testdata/function/definition/fail_param_name_conflict.carbon index 7066c3fbb30b..332d1e36f063 100644 --- a/toolchain/check/testdata/function/definition/fail_param_name_conflict.carbon +++ b/toolchain/check/testdata/function/definition/fail_param_name_conflict.carbon @@ -12,7 +12,7 @@ // CHECK:STDERR: ^ fn Bar(a: i32, a: i32) {} -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_param_name_conflict.carbon" { // CHECK:STDOUT: %.loc13 = fn_decl @Bar // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/definition/order.carbon b/toolchain/check/testdata/function/definition/order.carbon index 8c6961aae12a..c364d8ee18b5 100644 --- a/toolchain/check/testdata/function/definition/order.carbon +++ b/toolchain/check/testdata/function/definition/order.carbon @@ -8,7 +8,7 @@ fn Foo() {} fn Bar() {} fn Baz() {} -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "order.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Foo // CHECK:STDOUT: %.loc8 = fn_decl @Bar // CHECK:STDOUT: %.loc9 = fn_decl @Baz diff --git a/toolchain/check/testdata/function/definition/params_one.carbon b/toolchain/check/testdata/function/definition/params_one.carbon index a989af4a8299..3a03ee62dc7e 100644 --- a/toolchain/check/testdata/function/definition/params_one.carbon +++ b/toolchain/check/testdata/function/definition/params_one.carbon @@ -6,7 +6,7 @@ fn Foo(a: i32) {} -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "params_one.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Foo // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/definition/params_one_comma.carbon b/toolchain/check/testdata/function/definition/params_one_comma.carbon index b7a6006e62ce..31adaac31763 100644 --- a/toolchain/check/testdata/function/definition/params_one_comma.carbon +++ b/toolchain/check/testdata/function/definition/params_one_comma.carbon @@ -6,7 +6,7 @@ fn Foo(a: i32,) {} -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "params_one_comma.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Foo // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/definition/params_two.carbon b/toolchain/check/testdata/function/definition/params_two.carbon index fcc29c4a04b9..64255a8a812b 100644 --- a/toolchain/check/testdata/function/definition/params_two.carbon +++ b/toolchain/check/testdata/function/definition/params_two.carbon @@ -6,7 +6,7 @@ fn Foo(a: i32, b: i32) {} -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "params_two.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Foo // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/definition/params_two_comma.carbon b/toolchain/check/testdata/function/definition/params_two_comma.carbon index db10650aec8a..30fea711a0e0 100644 --- a/toolchain/check/testdata/function/definition/params_two_comma.carbon +++ b/toolchain/check/testdata/function/definition/params_two_comma.carbon @@ -6,7 +6,7 @@ fn Foo(a: i32, b: i32,) {} -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "params_two_comma.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Foo // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/definition/params_zero.carbon b/toolchain/check/testdata/function/definition/params_zero.carbon index 7c3ece02c434..c675d9f37949 100644 --- a/toolchain/check/testdata/function/definition/params_zero.carbon +++ b/toolchain/check/testdata/function/definition/params_zero.carbon @@ -6,7 +6,7 @@ fn Foo() {} -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "params_zero.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Foo // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/definition/same_param_name.carbon b/toolchain/check/testdata/function/definition/same_param_name.carbon index e6f2b5fab0a8..1de3baa962cf 100644 --- a/toolchain/check/testdata/function/definition/same_param_name.carbon +++ b/toolchain/check/testdata/function/definition/same_param_name.carbon @@ -7,7 +7,7 @@ fn Foo(a: i32) {} fn Bar(a: i32) {} -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "same_param_name.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Foo // CHECK:STDOUT: %.loc8 = fn_decl @Bar // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/if/else.carbon b/toolchain/check/testdata/if/else.carbon index eb5820341a29..5a81f96c4d44 100644 --- a/toolchain/check/testdata/if/else.carbon +++ b/toolchain/check/testdata/if/else.carbon @@ -17,7 +17,7 @@ fn If(b: bool) { H(); } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "else.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @F // CHECK:STDOUT: %.loc8 = fn_decl @G // CHECK:STDOUT: %.loc9 = fn_decl @H diff --git a/toolchain/check/testdata/if/fail_reachable_fallthrough.carbon b/toolchain/check/testdata/if/fail_reachable_fallthrough.carbon index b048a98c0c89..a6b7d9925bf3 100644 --- a/toolchain/check/testdata/if/fail_reachable_fallthrough.carbon +++ b/toolchain/check/testdata/if/fail_reachable_fallthrough.carbon @@ -33,7 +33,7 @@ fn If3(b: bool) -> i32 { // CHECK:STDERR: ^ } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_reachable_fallthrough.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @If1 // CHECK:STDOUT: %.loc17 = fn_decl @If2 // CHECK:STDOUT: %.loc27 = fn_decl @If3 diff --git a/toolchain/check/testdata/if/fail_scope.carbon b/toolchain/check/testdata/if/fail_scope.carbon index c041d98e8264..38b960541a25 100644 --- a/toolchain/check/testdata/if/fail_scope.carbon +++ b/toolchain/check/testdata/if/fail_scope.carbon @@ -15,7 +15,7 @@ fn VarScope(b: bool) -> i32 { return n; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_scope.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @VarScope // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/if/no_else.carbon b/toolchain/check/testdata/if/no_else.carbon index f8d48588c2e2..908d74c5203f 100644 --- a/toolchain/check/testdata/if/no_else.carbon +++ b/toolchain/check/testdata/if/no_else.carbon @@ -14,7 +14,7 @@ fn If(b: bool) { G(); } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "no_else.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @F // CHECK:STDOUT: %.loc8 = fn_decl @G // CHECK:STDOUT: %.loc10 = fn_decl @If diff --git a/toolchain/check/testdata/if/unreachable_fallthrough.carbon b/toolchain/check/testdata/if/unreachable_fallthrough.carbon index 2f5374e3488c..3663aafcba87 100644 --- a/toolchain/check/testdata/if/unreachable_fallthrough.carbon +++ b/toolchain/check/testdata/if/unreachable_fallthrough.carbon @@ -13,7 +13,7 @@ fn If(b: bool) -> i32 { // Missing return here is OK. } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "unreachable_fallthrough.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @If // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/if_expression/basic.carbon b/toolchain/check/testdata/if_expression/basic.carbon index 668189a5fcdf..a8238c1e1f27 100644 --- a/toolchain/check/testdata/if_expression/basic.carbon +++ b/toolchain/check/testdata/if_expression/basic.carbon @@ -8,7 +8,7 @@ fn F(b: bool, n: i32, m: i32) -> i32 { return if b then n + m else m + n; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "basic.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @F // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/if_expression/constant_condition.carbon b/toolchain/check/testdata/if_expression/constant_condition.carbon index fcb52611624c..e8700a1f6aca 100644 --- a/toolchain/check/testdata/if_expression/constant_condition.carbon +++ b/toolchain/check/testdata/if_expression/constant_condition.carbon @@ -15,7 +15,7 @@ fn G() -> i32 { return if false then A() else B(); } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "constant_condition.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @A // CHECK:STDOUT: %.loc8 = fn_decl @B // CHECK:STDOUT: %.loc10 = fn_decl @F diff --git a/toolchain/check/testdata/if_expression/control_flow.carbon b/toolchain/check/testdata/if_expression/control_flow.carbon index c9aa33700a12..fbf519af04ee 100644 --- a/toolchain/check/testdata/if_expression/control_flow.carbon +++ b/toolchain/check/testdata/if_expression/control_flow.carbon @@ -11,7 +11,7 @@ fn F(b: bool) -> i32 { return if b then A() else B(); } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "control_flow.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @A // CHECK:STDOUT: %.loc8 = fn_decl @B // CHECK:STDOUT: %.loc10 = fn_decl @F diff --git a/toolchain/check/testdata/if_expression/nested.carbon b/toolchain/check/testdata/if_expression/nested.carbon index f69752e36d75..bff6c7c6628f 100644 --- a/toolchain/check/testdata/if_expression/nested.carbon +++ b/toolchain/check/testdata/if_expression/nested.carbon @@ -8,7 +8,7 @@ fn F(a: bool, b: bool, c: bool) -> i32 { return if a then if b then 1 else 2 else if c then 3 else 4; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "nested.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @F // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/index/array_element_access.carbon b/toolchain/check/testdata/index/array_element_access.carbon index 72ad6fdbfcc9..14ec89abde26 100644 --- a/toolchain/check/testdata/index/array_element_access.carbon +++ b/toolchain/check/testdata/index/array_element_access.carbon @@ -9,7 +9,7 @@ var b: i32 = 1; var c: i32 = a[0]; var d: i32 = a[b]; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "array_element_access.carbon" { // CHECK:STDOUT: %.loc7_14: i32 = int_literal 2 // CHECK:STDOUT: %.loc7_15: type = array_type %.loc7_14, i32 // CHECK:STDOUT: %a: ref [i32; 2] = var "a" diff --git a/toolchain/check/testdata/index/fail_array_large_index.carbon b/toolchain/check/testdata/index/fail_array_large_index.carbon index f25dfb899574..f22db61107c2 100644 --- a/toolchain/check/testdata/index/fail_array_large_index.carbon +++ b/toolchain/check/testdata/index/fail_array_large_index.carbon @@ -10,7 +10,7 @@ var a: [i32; 1] = (12,); // CHECK:STDERR: ^ var b: i32 = a[0xFFFFFFFFFFFFFFFFF]; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_array_large_index.carbon" { // CHECK:STDOUT: %.loc7_14: i32 = int_literal 1 // CHECK:STDOUT: %.loc7_15: type = array_type %.loc7_14, i32 // CHECK:STDOUT: %a: ref [i32; 1] = var "a" diff --git a/toolchain/check/testdata/index/fail_array_non_int_indexing.carbon b/toolchain/check/testdata/index/fail_array_non_int_indexing.carbon index 7335de924650..1531b1185377 100644 --- a/toolchain/check/testdata/index/fail_array_non_int_indexing.carbon +++ b/toolchain/check/testdata/index/fail_array_non_int_indexing.carbon @@ -10,7 +10,7 @@ var a: [i32; 1] = (12,); // CHECK:STDERR: ^ var b: i32 = a[2.6]; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_array_non_int_indexing.carbon" { // CHECK:STDOUT: %.loc7_14: i32 = int_literal 1 // CHECK:STDOUT: %.loc7_15: type = array_type %.loc7_14, i32 // CHECK:STDOUT: %a: ref [i32; 1] = var "a" diff --git a/toolchain/check/testdata/index/fail_array_out_of_bound_access.carbon b/toolchain/check/testdata/index/fail_array_out_of_bound_access.carbon index 8f28c357ca5b..6f4086a04fa6 100644 --- a/toolchain/check/testdata/index/fail_array_out_of_bound_access.carbon +++ b/toolchain/check/testdata/index/fail_array_out_of_bound_access.carbon @@ -10,7 +10,7 @@ var a: [i32; 1] = (12,); // CHECK:STDERR: ^ var b: i32 = a[2]; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_array_out_of_bound_access.carbon" { // CHECK:STDOUT: %.loc7_14: i32 = int_literal 1 // CHECK:STDOUT: %.loc7_15: type = array_type %.loc7_14, i32 // CHECK:STDOUT: %a: ref [i32; 1] = var "a" diff --git a/toolchain/check/testdata/index/fail_empty_tuple_access.carbon b/toolchain/check/testdata/index/fail_empty_tuple_access.carbon index aba8adfcd79a..486edca7295c 100644 --- a/toolchain/check/testdata/index/fail_empty_tuple_access.carbon +++ b/toolchain/check/testdata/index/fail_empty_tuple_access.carbon @@ -13,7 +13,7 @@ fn Run() { F()[0]; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_empty_tuple_access.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @F // CHECK:STDOUT: %.loc9 = fn_decl @Run // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/index/fail_name_not_found.carbon b/toolchain/check/testdata/index/fail_name_not_found.carbon index 674beb573a67..7a1fcbbfc6b5 100644 --- a/toolchain/check/testdata/index/fail_name_not_found.carbon +++ b/toolchain/check/testdata/index/fail_name_not_found.carbon @@ -11,7 +11,7 @@ fn Main() { var b: i32 = a[0]; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_name_not_found.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Main // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/index/fail_negative_indexing.carbon b/toolchain/check/testdata/index/fail_negative_indexing.carbon index 54b30a33a51f..5cd92f90865a 100644 --- a/toolchain/check/testdata/index/fail_negative_indexing.carbon +++ b/toolchain/check/testdata/index/fail_negative_indexing.carbon @@ -10,5 +10,5 @@ var a: (i32, i32) = (12, 6); // CHECK:STDERR: ^ var b: i32 = a[-10]; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_negative_indexing.carbon" { // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/index/fail_non_deterministic_type.carbon b/toolchain/check/testdata/index/fail_non_deterministic_type.carbon index 6126ae0af536..bffe4428f79b 100644 --- a/toolchain/check/testdata/index/fail_non_deterministic_type.carbon +++ b/toolchain/check/testdata/index/fail_non_deterministic_type.carbon @@ -11,7 +11,7 @@ var b: i32 = 0; // CHECK:STDERR: ^ var c: i32 = a[b]; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_non_deterministic_type.carbon" { // CHECK:STDOUT: %.loc7_9: type = stub_reference i32 // CHECK:STDOUT: %.loc7_14: type = stub_reference i32 // CHECK:STDOUT: %.loc7_17.1: type = tuple_type (type, type) diff --git a/toolchain/check/testdata/index/fail_non_tuple_access.carbon b/toolchain/check/testdata/index/fail_non_tuple_access.carbon index 5b886c6ffa25..954fb55efc29 100644 --- a/toolchain/check/testdata/index/fail_non_tuple_access.carbon +++ b/toolchain/check/testdata/index/fail_non_tuple_access.carbon @@ -11,7 +11,7 @@ fn Main() { 0[1]; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_non_tuple_access.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Main // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/index/fail_tuple_large_index.carbon b/toolchain/check/testdata/index/fail_tuple_large_index.carbon index f4e242854e9b..fe5281ba1204 100644 --- a/toolchain/check/testdata/index/fail_tuple_large_index.carbon +++ b/toolchain/check/testdata/index/fail_tuple_large_index.carbon @@ -11,7 +11,7 @@ var b: (i32,) = a; // CHECK:STDERR: ^ var c: i32 = b[0xFFFFFFFFFFFFFFFFF]; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_tuple_large_index.carbon" { // CHECK:STDOUT: %.loc7_9: type = stub_reference i32 // CHECK:STDOUT: %.loc7_13.1: type = tuple_type (type) // CHECK:STDOUT: %.loc7_13.2: (type,) = tuple_literal (%.loc7_9) diff --git a/toolchain/check/testdata/index/fail_tuple_non_int_indexing.carbon b/toolchain/check/testdata/index/fail_tuple_non_int_indexing.carbon index 0fae846b90a6..da3aab695ccc 100644 --- a/toolchain/check/testdata/index/fail_tuple_non_int_indexing.carbon +++ b/toolchain/check/testdata/index/fail_tuple_non_int_indexing.carbon @@ -10,7 +10,7 @@ var a: (i32, i32) = (12, 6); // CHECK:STDERR: ^ var b: i32 = a[2.6]; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_tuple_non_int_indexing.carbon" { // CHECK:STDOUT: %.loc7_9: type = stub_reference i32 // CHECK:STDOUT: %.loc7_14: type = stub_reference i32 // CHECK:STDOUT: %.loc7_17.1: type = tuple_type (type, type) diff --git a/toolchain/check/testdata/index/fail_tuple_out_of_bound_access.carbon b/toolchain/check/testdata/index/fail_tuple_out_of_bound_access.carbon index 947bf0acd0b7..c4e510f5cb92 100644 --- a/toolchain/check/testdata/index/fail_tuple_out_of_bound_access.carbon +++ b/toolchain/check/testdata/index/fail_tuple_out_of_bound_access.carbon @@ -10,7 +10,7 @@ var a: (i32, i32) = (12, 6); // CHECK:STDERR: ^ var b: i32 = a[2]; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_tuple_out_of_bound_access.carbon" { // CHECK:STDOUT: %.loc7_9: type = stub_reference i32 // CHECK:STDOUT: %.loc7_14: type = stub_reference i32 // CHECK:STDOUT: %.loc7_17.1: type = tuple_type (type, type) diff --git a/toolchain/check/testdata/index/tuple_element_access.carbon b/toolchain/check/testdata/index/tuple_element_access.carbon index 4092a80d5d3e..b55a91276847 100644 --- a/toolchain/check/testdata/index/tuple_element_access.carbon +++ b/toolchain/check/testdata/index/tuple_element_access.carbon @@ -8,7 +8,7 @@ var a: (i32,) = (12,); var b: (i32,) = a; var c: i32 = b[0]; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "tuple_element_access.carbon" { // CHECK:STDOUT: %.loc7_9: type = stub_reference i32 // CHECK:STDOUT: %.loc7_13.1: type = tuple_type (type) // CHECK:STDOUT: %.loc7_13.2: (type,) = tuple_literal (%.loc7_9) diff --git a/toolchain/check/testdata/index/tuple_return_value_access.carbon b/toolchain/check/testdata/index/tuple_return_value_access.carbon index 3f876e203774..8032d354a120 100644 --- a/toolchain/check/testdata/index/tuple_return_value_access.carbon +++ b/toolchain/check/testdata/index/tuple_return_value_access.carbon @@ -10,7 +10,7 @@ fn Run() -> i32 { return F()[0]; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "tuple_return_value_access.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @F // CHECK:STDOUT: %.loc9 = fn_decl @Run // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/ir/duplicate_name_same_line.carbon b/toolchain/check/testdata/ir/duplicate_name_same_line.carbon index e112b2135133..fcf062fbf217 100644 --- a/toolchain/check/testdata/ir/duplicate_name_same_line.carbon +++ b/toolchain/check/testdata/ir/duplicate_name_same_line.carbon @@ -6,7 +6,7 @@ fn A() { var n: i32 = 1; if (true) { var n: i32 = 2; } } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "duplicate_name_same_line.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @A // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/namespace/fail_duplicate.carbon b/toolchain/check/testdata/namespace/fail_duplicate.carbon index df72fc4fc9b4..3afb75d4f554 100644 --- a/toolchain/check/testdata/namespace/fail_duplicate.carbon +++ b/toolchain/check/testdata/namespace/fail_duplicate.carbon @@ -18,7 +18,7 @@ fn Foo.Baz() { fn Foo.Baz() { } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_duplicate.carbon" { // CHECK:STDOUT: %.loc7 = namespace {.Baz = %.loc9} // CHECK:STDOUT: %.loc9 = fn_decl @Baz // CHECK:STDOUT: %.loc18 = fn_decl @.1 diff --git a/toolchain/check/testdata/namespace/fail_unresolved_scope.carbon b/toolchain/check/testdata/namespace/fail_unresolved_scope.carbon index edaa24549b3f..afe1064ac0ad 100644 --- a/toolchain/check/testdata/namespace/fail_unresolved_scope.carbon +++ b/toolchain/check/testdata/namespace/fail_unresolved_scope.carbon @@ -10,7 +10,7 @@ fn Foo.Baz() { } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_unresolved_scope.carbon" { // CHECK:STDOUT: %.loc10 = fn_decl @.1 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/namespace/function.carbon b/toolchain/check/testdata/namespace/function.carbon index a96b166d474f..141a7fb25e27 100644 --- a/toolchain/check/testdata/namespace/function.carbon +++ b/toolchain/check/testdata/namespace/function.carbon @@ -17,7 +17,7 @@ fn Bar() { Foo.Baz(); } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "function.carbon" { // CHECK:STDOUT: %.loc7 = namespace {.Baz = %.loc13} // CHECK:STDOUT: %.loc10 = fn_decl @Baz.1 // CHECK:STDOUT: %.loc13 = fn_decl @Baz.2 diff --git a/toolchain/check/testdata/namespace/nested.carbon b/toolchain/check/testdata/namespace/nested.carbon index 59f3a954d323..04b7c8bae4e8 100644 --- a/toolchain/check/testdata/namespace/nested.carbon +++ b/toolchain/check/testdata/namespace/nested.carbon @@ -14,7 +14,7 @@ fn Foo.Bar.Baz() { Foo.Bar.Wiz(); } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "nested.carbon" { // CHECK:STDOUT: %.loc7 = namespace {.Bar = %.loc8} // CHECK:STDOUT: %.loc8 = namespace {.Wiz = %.loc10, .Baz = %.loc13} // CHECK:STDOUT: %.loc10 = fn_decl @Wiz diff --git a/toolchain/check/testdata/operators/and.carbon b/toolchain/check/testdata/operators/and.carbon index 093bf04d6de2..f57965feaee3 100644 --- a/toolchain/check/testdata/operators/and.carbon +++ b/toolchain/check/testdata/operators/and.carbon @@ -11,7 +11,7 @@ fn And() -> bool { return F() and G(); } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "and.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @F // CHECK:STDOUT: %.loc8 = fn_decl @G // CHECK:STDOUT: %.loc10 = fn_decl @And diff --git a/toolchain/check/testdata/operators/assignment.carbon b/toolchain/check/testdata/operators/assignment.carbon index e86ec4cf6463..ee4f6408ccdb 100644 --- a/toolchain/check/testdata/operators/assignment.carbon +++ b/toolchain/check/testdata/operators/assignment.carbon @@ -22,7 +22,7 @@ fn Main() { *(if true then p else &a) = 10; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "assignment.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Main // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/binary_op.carbon b/toolchain/check/testdata/operators/binary_op.carbon index af537de51998..0765814e5fd4 100644 --- a/toolchain/check/testdata/operators/binary_op.carbon +++ b/toolchain/check/testdata/operators/binary_op.carbon @@ -8,7 +8,7 @@ fn Main() -> i32 { return 12 + 34; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "binary_op.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Main // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/fail_assigment_to_non_assignable.carbon b/toolchain/check/testdata/operators/fail_assigment_to_non_assignable.carbon index aa82bb64c87c..542085c7918b 100644 --- a/toolchain/check/testdata/operators/fail_assigment_to_non_assignable.carbon +++ b/toolchain/check/testdata/operators/fail_assigment_to_non_assignable.carbon @@ -45,7 +45,7 @@ fn Main() { (if true then a else a) = 10; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_assigment_to_non_assignable.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @F // CHECK:STDOUT: %.loc9 = fn_decl @Main // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/fail_type_mismatch.carbon b/toolchain/check/testdata/operators/fail_type_mismatch.carbon index 1e87c28bb94e..d32a761c3296 100644 --- a/toolchain/check/testdata/operators/fail_type_mismatch.carbon +++ b/toolchain/check/testdata/operators/fail_type_mismatch.carbon @@ -11,7 +11,7 @@ fn Main() -> i32 { return 12 + 3.4; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_type_mismatch.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Main // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/fail_type_mismatch_assignment.carbon b/toolchain/check/testdata/operators/fail_type_mismatch_assignment.carbon index 36975c127239..4b33cdda593b 100644 --- a/toolchain/check/testdata/operators/fail_type_mismatch_assignment.carbon +++ b/toolchain/check/testdata/operators/fail_type_mismatch_assignment.carbon @@ -12,7 +12,7 @@ fn Main() { a = 5.6; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_type_mismatch_assignment.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Main // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/fail_type_mismatch_once.carbon b/toolchain/check/testdata/operators/fail_type_mismatch_once.carbon index 483d53b91837..eb72a331a13d 100644 --- a/toolchain/check/testdata/operators/fail_type_mismatch_once.carbon +++ b/toolchain/check/testdata/operators/fail_type_mismatch_once.carbon @@ -13,7 +13,7 @@ fn Main() -> i32 { return 12 + 3.4 + 12; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_type_mismatch_once.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Main // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/or.carbon b/toolchain/check/testdata/operators/or.carbon index 90ebaab56303..fb300d0f8015 100644 --- a/toolchain/check/testdata/operators/or.carbon +++ b/toolchain/check/testdata/operators/or.carbon @@ -11,7 +11,7 @@ fn Or() -> bool { return F() or G(); } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "or.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @F // CHECK:STDOUT: %.loc8 = fn_decl @G // CHECK:STDOUT: %.loc10 = fn_decl @Or diff --git a/toolchain/check/testdata/operators/unary_op.carbon b/toolchain/check/testdata/operators/unary_op.carbon index 9fa44b5460e7..ae03882c74b7 100644 --- a/toolchain/check/testdata/operators/unary_op.carbon +++ b/toolchain/check/testdata/operators/unary_op.carbon @@ -8,7 +8,7 @@ fn Not(b: bool) -> bool { return not b; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "unary_op.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Not // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/pointer/address_of_deref.carbon b/toolchain/check/testdata/pointer/address_of_deref.carbon index afd50fcb9ef2..79cac718f10f 100644 --- a/toolchain/check/testdata/pointer/address_of_deref.carbon +++ b/toolchain/check/testdata/pointer/address_of_deref.carbon @@ -9,7 +9,7 @@ fn F() -> i32 { return *&*&n; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "address_of_deref.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @F // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/pointer/address_of_lvalue.carbon b/toolchain/check/testdata/pointer/address_of_lvalue.carbon index 0d552c7408e5..89609a903c57 100644 --- a/toolchain/check/testdata/pointer/address_of_lvalue.carbon +++ b/toolchain/check/testdata/pointer/address_of_lvalue.carbon @@ -16,7 +16,7 @@ fn F() { var t1: i32* = &t[1]; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "address_of_lvalue.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @F // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/pointer/basic.carbon b/toolchain/check/testdata/pointer/basic.carbon index 96f88278d632..4188583ed4bd 100644 --- a/toolchain/check/testdata/pointer/basic.carbon +++ b/toolchain/check/testdata/pointer/basic.carbon @@ -11,7 +11,7 @@ fn F() -> i32 { return *p; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "basic.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @F // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/pointer/fail_address_of_value.carbon b/toolchain/check/testdata/pointer/fail_address_of_value.carbon index fa633789692d..44f401d13003 100644 --- a/toolchain/check/testdata/pointer/fail_address_of_value.carbon +++ b/toolchain/check/testdata/pointer/fail_address_of_value.carbon @@ -82,7 +82,7 @@ fn AddressOfParameter(param: i32) { var param_addr: i32* = ¶m; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_address_of_value.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @G // CHECK:STDOUT: %.loc9 = fn_decl @H // CHECK:STDOUT: %.loc11 = fn_decl @AddressOfLiteral diff --git a/toolchain/check/testdata/pointer/fail_dereference_not_pointer.carbon b/toolchain/check/testdata/pointer/fail_dereference_not_pointer.carbon index c2395d0485c9..1f501f90ea70 100644 --- a/toolchain/check/testdata/pointer/fail_dereference_not_pointer.carbon +++ b/toolchain/check/testdata/pointer/fail_dereference_not_pointer.carbon @@ -19,7 +19,7 @@ fn Deref(n: i32) { *{}; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_dereference_not_pointer.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Deref // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/pointer/fail_dereference_type.carbon b/toolchain/check/testdata/pointer/fail_dereference_type.carbon index 234544b74938..ee8b55fb4bd1 100644 --- a/toolchain/check/testdata/pointer/fail_dereference_type.carbon +++ b/toolchain/check/testdata/pointer/fail_dereference_type.carbon @@ -12,7 +12,7 @@ // CHECK:STDERR: ^ var p: *i32; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_dereference_type.carbon" { // CHECK:STDOUT: %.loc13: ref = dereference i32 // CHECK:STDOUT: %p: ref = var "p" // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/pointer/fail_type_mismatch.carbon b/toolchain/check/testdata/pointer/fail_type_mismatch.carbon index fee2178e0e4e..39f51e1ad85a 100644 --- a/toolchain/check/testdata/pointer/fail_type_mismatch.carbon +++ b/toolchain/check/testdata/pointer/fail_type_mismatch.carbon @@ -11,7 +11,7 @@ fn ConstMismatch(p: const {}*) -> const ({}*) { return p; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_type_mismatch.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @ConstMismatch // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/pointer/nested_const.carbon b/toolchain/check/testdata/pointer/nested_const.carbon index ac8f6ab546a9..fca2a8469ccd 100644 --- a/toolchain/check/testdata/pointer/nested_const.carbon +++ b/toolchain/check/testdata/pointer/nested_const.carbon @@ -9,7 +9,7 @@ fn F(p: const (const (const i32*)*)) -> const i32 { return **p; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "nested_const.carbon" { // CHECK:STDOUT: %.loc8 = fn_decl @F // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/pointer/types.carbon b/toolchain/check/testdata/pointer/types.carbon index 651270fd4965..8e06f993dd5e 100644 --- a/toolchain/check/testdata/pointer/types.carbon +++ b/toolchain/check/testdata/pointer/types.carbon @@ -12,7 +12,7 @@ fn ConstPtr(p: const i32*) -> (const i32)* { return p; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "types.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Ptr // CHECK:STDOUT: %.loc11 = fn_decl @ConstPtr // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/return/code_after_return.carbon b/toolchain/check/testdata/return/code_after_return.carbon index 8c29b0734b25..b2db31b91e80 100644 --- a/toolchain/check/testdata/return/code_after_return.carbon +++ b/toolchain/check/testdata/return/code_after_return.carbon @@ -9,7 +9,7 @@ fn Main() { var n: i32 = 1 + 1; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "code_after_return.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Main // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/code_after_return_value.carbon b/toolchain/check/testdata/return/code_after_return_value.carbon index 231a8cbe48e4..0f436ba00223 100644 --- a/toolchain/check/testdata/return/code_after_return_value.carbon +++ b/toolchain/check/testdata/return/code_after_return_value.carbon @@ -16,7 +16,7 @@ fn F(b: bool) -> i32 { // Unreachable, no error on missing return. } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "code_after_return_value.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @F // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/fail_missing_return.carbon b/toolchain/check/testdata/return/fail_missing_return.carbon index 0dbc488b8573..94d4a4757e8e 100644 --- a/toolchain/check/testdata/return/fail_missing_return.carbon +++ b/toolchain/check/testdata/return/fail_missing_return.carbon @@ -10,7 +10,7 @@ fn Main() -> i32 { // CHECK:STDERR: ^ } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_missing_return.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Main // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/fail_missing_return_empty_tuple.carbon b/toolchain/check/testdata/return/fail_missing_return_empty_tuple.carbon index 75152efe7913..95a7fe65a730 100644 --- a/toolchain/check/testdata/return/fail_missing_return_empty_tuple.carbon +++ b/toolchain/check/testdata/return/fail_missing_return_empty_tuple.carbon @@ -10,7 +10,7 @@ fn F() -> () { // CHECK:STDERR: ^ } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_missing_return_empty_tuple.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @F // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/fail_type_mismatch.carbon b/toolchain/check/testdata/return/fail_type_mismatch.carbon index e332896ae5dd..02279b92e55c 100644 --- a/toolchain/check/testdata/return/fail_type_mismatch.carbon +++ b/toolchain/check/testdata/return/fail_type_mismatch.carbon @@ -11,7 +11,7 @@ fn Main() -> i32 { return 1.0; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_type_mismatch.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Main // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/fail_value_disallowed.carbon b/toolchain/check/testdata/return/fail_value_disallowed.carbon index 1f01126eb276..2d4a7ee9021a 100644 --- a/toolchain/check/testdata/return/fail_value_disallowed.carbon +++ b/toolchain/check/testdata/return/fail_value_disallowed.carbon @@ -14,7 +14,7 @@ fn Main() { return 0; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_value_disallowed.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Main // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/fail_value_missing.carbon b/toolchain/check/testdata/return/fail_value_missing.carbon index 6b441b052c1f..f09e4651a4ea 100644 --- a/toolchain/check/testdata/return/fail_value_missing.carbon +++ b/toolchain/check/testdata/return/fail_value_missing.carbon @@ -11,7 +11,7 @@ fn Main() -> i32 { return; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_value_missing.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Main // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/missing_return_no_return_type.carbon b/toolchain/check/testdata/return/missing_return_no_return_type.carbon index 21e0510213a7..7e623ede798c 100644 --- a/toolchain/check/testdata/return/missing_return_no_return_type.carbon +++ b/toolchain/check/testdata/return/missing_return_no_return_type.carbon @@ -7,7 +7,7 @@ fn F() { } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "missing_return_no_return_type.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @F // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/no_value.carbon b/toolchain/check/testdata/return/no_value.carbon index 26c5ae1dc6c4..0c320fb7c8a2 100644 --- a/toolchain/check/testdata/return/no_value.carbon +++ b/toolchain/check/testdata/return/no_value.carbon @@ -8,7 +8,7 @@ fn Main() { return; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "no_value.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Main // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/struct.carbon b/toolchain/check/testdata/return/struct.carbon index 4f94bf75d907..e9d3ad73ead2 100644 --- a/toolchain/check/testdata/return/struct.carbon +++ b/toolchain/check/testdata/return/struct.carbon @@ -8,7 +8,7 @@ fn Main() -> {.a: i32} { return {.a = 3}; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "struct.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Main // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/tuple.carbon b/toolchain/check/testdata/return/tuple.carbon index 4b31b7a1d0bf..a39e0c172cbb 100644 --- a/toolchain/check/testdata/return/tuple.carbon +++ b/toolchain/check/testdata/return/tuple.carbon @@ -9,7 +9,7 @@ fn Main() -> (i32, i32) { return (15, 35); } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "tuple.carbon" { // CHECK:STDOUT: %.loc8 = fn_decl @Main // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/value.carbon b/toolchain/check/testdata/return/value.carbon index fea2fefe0f7a..2207412d3f43 100644 --- a/toolchain/check/testdata/return/value.carbon +++ b/toolchain/check/testdata/return/value.carbon @@ -8,7 +8,7 @@ fn Main() -> i32 { return 0; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "value.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Main // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/struct/empty.carbon b/toolchain/check/testdata/struct/empty.carbon index 0998db47fba1..767ab48430ac 100644 --- a/toolchain/check/testdata/struct/empty.carbon +++ b/toolchain/check/testdata/struct/empty.carbon @@ -7,7 +7,7 @@ var x: {} = {}; var y: {} = x; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "empty.carbon" { // CHECK:STDOUT: %.loc7_9.1: type = struct_type {} // CHECK:STDOUT: %.loc7_9.2: {} = struct_literal () // CHECK:STDOUT: %x: ref {} = var "x" diff --git a/toolchain/check/testdata/struct/fail_access_into_invalid.carbon b/toolchain/check/testdata/struct/fail_access_into_invalid.carbon index 79c54c995c42..c23a96ca4a33 100644 --- a/toolchain/check/testdata/struct/fail_access_into_invalid.carbon +++ b/toolchain/check/testdata/struct/fail_access_into_invalid.carbon @@ -10,7 +10,7 @@ // CHECK:STDERR: ^ fn F() { a.b; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_access_into_invalid.carbon" { // CHECK:STDOUT: %.loc11 = fn_decl @F // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/struct/fail_assign_empty.carbon b/toolchain/check/testdata/struct/fail_assign_empty.carbon index ee2bdf623488..67bd42a9e708 100644 --- a/toolchain/check/testdata/struct/fail_assign_empty.carbon +++ b/toolchain/check/testdata/struct/fail_assign_empty.carbon @@ -9,7 +9,7 @@ // CHECK:STDERR: ^ var x: {.a: i32} = {}; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_assign_empty.carbon" { // CHECK:STDOUT: %.loc10_16: type = struct_type {.a: i32} // CHECK:STDOUT: %x: ref {.a: i32} = var "x" // CHECK:STDOUT: %.loc10_21.1: type = struct_type {} diff --git a/toolchain/check/testdata/struct/fail_assign_nested.carbon b/toolchain/check/testdata/struct/fail_assign_nested.carbon index 186eab6513df..c1703a2b6575 100644 --- a/toolchain/check/testdata/struct/fail_assign_nested.carbon +++ b/toolchain/check/testdata/struct/fail_assign_nested.carbon @@ -9,7 +9,7 @@ // CHECK:STDERR: ^ var x: {.a: {}} = {.b = {}}; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_assign_nested.carbon" { // CHECK:STDOUT: %.loc10_14.1: type = struct_type {} // CHECK:STDOUT: %.loc10_14.2: {} = struct_literal () // CHECK:STDOUT: %.loc10_15: type = struct_type {.a: {}} diff --git a/toolchain/check/testdata/struct/fail_assign_to_empty.carbon b/toolchain/check/testdata/struct/fail_assign_to_empty.carbon index 7326b76003cb..71bb20a19873 100644 --- a/toolchain/check/testdata/struct/fail_assign_to_empty.carbon +++ b/toolchain/check/testdata/struct/fail_assign_to_empty.carbon @@ -9,7 +9,7 @@ // CHECK:STDERR: ^ var x: {} = {.a = 1}; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_assign_to_empty.carbon" { // CHECK:STDOUT: %.loc10_9.1: type = struct_type {} // CHECK:STDOUT: %.loc10_9.2: {} = struct_literal () // CHECK:STDOUT: %x: ref {} = var "x" diff --git a/toolchain/check/testdata/struct/fail_field_name_mismatch.carbon b/toolchain/check/testdata/struct/fail_field_name_mismatch.carbon index c78b79eb0935..73a5ad9c3cd6 100644 --- a/toolchain/check/testdata/struct/fail_field_name_mismatch.carbon +++ b/toolchain/check/testdata/struct/fail_field_name_mismatch.carbon @@ -9,7 +9,7 @@ // CHECK:STDERR: ^ var x: {.a: i32} = {.b = 1}; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_field_name_mismatch.carbon" { // CHECK:STDOUT: %.loc10_16: type = struct_type {.a: i32} // CHECK:STDOUT: %x: ref {.a: i32} = var "x" // CHECK:STDOUT: %.loc10_26: i32 = int_literal 1 diff --git a/toolchain/check/testdata/struct/fail_field_type_mismatch.carbon b/toolchain/check/testdata/struct/fail_field_type_mismatch.carbon index 7e7d093081d4..e943823f819d 100644 --- a/toolchain/check/testdata/struct/fail_field_type_mismatch.carbon +++ b/toolchain/check/testdata/struct/fail_field_type_mismatch.carbon @@ -9,7 +9,7 @@ // CHECK:STDERR: ^ var x: {.a: i32} = {.b = 1.0}; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_field_type_mismatch.carbon" { // CHECK:STDOUT: %.loc10_16: type = struct_type {.a: i32} // CHECK:STDOUT: %x: ref {.a: i32} = var "x" // CHECK:STDOUT: %.loc10_26: f64 = real_literal 10e-1 diff --git a/toolchain/check/testdata/struct/fail_member_access_type.carbon b/toolchain/check/testdata/struct/fail_member_access_type.carbon index 7cc129c0c5e0..27c3e9263207 100644 --- a/toolchain/check/testdata/struct/fail_member_access_type.carbon +++ b/toolchain/check/testdata/struct/fail_member_access_type.carbon @@ -10,7 +10,7 @@ var x: {.a: f64} = {.a = 4.0}; // CHECK:STDERR: ^ var y: i32 = x.b; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_member_access_type.carbon" { // CHECK:STDOUT: %.loc7_16: type = struct_type {.a: f64} // CHECK:STDOUT: %x: ref {.a: f64} = var "x" // CHECK:STDOUT: %.loc7_26: f64 = real_literal 40e-1 diff --git a/toolchain/check/testdata/struct/fail_non_member_access.carbon b/toolchain/check/testdata/struct/fail_non_member_access.carbon index 186c89bee484..4b06622b9777 100644 --- a/toolchain/check/testdata/struct/fail_non_member_access.carbon +++ b/toolchain/check/testdata/struct/fail_non_member_access.carbon @@ -10,7 +10,7 @@ var x: {.a: i32} = {.a = 4}; // CHECK:STDERR: ^ var y: i32 = x.b; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_non_member_access.carbon" { // CHECK:STDOUT: %.loc7_16: type = struct_type {.a: i32} // CHECK:STDOUT: %x: ref {.a: i32} = var "x" // CHECK:STDOUT: %.loc7_26: i32 = int_literal 4 diff --git a/toolchain/check/testdata/struct/fail_too_few_values.carbon b/toolchain/check/testdata/struct/fail_too_few_values.carbon index 25cadf9d12db..78fefe58f479 100644 --- a/toolchain/check/testdata/struct/fail_too_few_values.carbon +++ b/toolchain/check/testdata/struct/fail_too_few_values.carbon @@ -9,7 +9,7 @@ // CHECK:STDERR: ^ var x: {.a: i32, .b: i32} = {.a = 1}; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_too_few_values.carbon" { // CHECK:STDOUT: %.loc10_25: type = struct_type {.a: i32, .b: i32} // CHECK:STDOUT: %x: ref {.a: i32, .b: i32} = var "x" // CHECK:STDOUT: %.loc10_35: i32 = int_literal 1 diff --git a/toolchain/check/testdata/struct/fail_type_assign.carbon b/toolchain/check/testdata/struct/fail_type_assign.carbon index 2c579b301af1..ec12c10ec674 100644 --- a/toolchain/check/testdata/struct/fail_type_assign.carbon +++ b/toolchain/check/testdata/struct/fail_type_assign.carbon @@ -9,7 +9,7 @@ // CHECK:STDERR: ^ var x: {.a: i32} = {.a: i32}; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_type_assign.carbon" { // CHECK:STDOUT: %.loc10_16: type = struct_type {.a: i32} // CHECK:STDOUT: %x: ref {.a: i32} = var "x" // CHECK:STDOUT: %.loc10_28: type = struct_type {.a: i32} diff --git a/toolchain/check/testdata/struct/fail_value_as_type.carbon b/toolchain/check/testdata/struct/fail_value_as_type.carbon index 2ce7016c6d7f..9bd2037ca22b 100644 --- a/toolchain/check/testdata/struct/fail_value_as_type.carbon +++ b/toolchain/check/testdata/struct/fail_value_as_type.carbon @@ -9,7 +9,7 @@ // CHECK:STDERR: ^ var x: {.a = 1}; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_value_as_type.carbon" { // CHECK:STDOUT: %.loc10_14: i32 = int_literal 1 // CHECK:STDOUT: %.loc10_12: i32 = stub_reference %.loc10_14 // CHECK:STDOUT: %.loc10_15.1: type = struct_type {.a: i32} diff --git a/toolchain/check/testdata/struct/member_access.carbon b/toolchain/check/testdata/struct/member_access.carbon index 369fa6511cdb..18304a7b56d7 100644 --- a/toolchain/check/testdata/struct/member_access.carbon +++ b/toolchain/check/testdata/struct/member_access.carbon @@ -8,7 +8,7 @@ var x: {.a: f64, .b: i32} = {.a = 0.0, .b = 1}; var y: i32 = x.b; var z: i32 = y; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "member_access.carbon" { // CHECK:STDOUT: %.loc7_25: type = struct_type {.a: f64, .b: i32} // CHECK:STDOUT: %x: ref {.a: f64, .b: i32} = var "x" // CHECK:STDOUT: %.loc7_35: f64 = real_literal 0e-1 diff --git a/toolchain/check/testdata/struct/one_entry.carbon b/toolchain/check/testdata/struct/one_entry.carbon index 5788fa7c6683..6c0a57f3636c 100644 --- a/toolchain/check/testdata/struct/one_entry.carbon +++ b/toolchain/check/testdata/struct/one_entry.carbon @@ -7,7 +7,7 @@ var x: {.a: i32} = {.a = 4}; var y: {.a: i32} = x; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "one_entry.carbon" { // CHECK:STDOUT: %.loc7_16: type = struct_type {.a: i32} // CHECK:STDOUT: %x: ref {.a: i32} = var "x" // CHECK:STDOUT: %.loc7_26: i32 = int_literal 4 diff --git a/toolchain/check/testdata/struct/tuple_as_element.carbon b/toolchain/check/testdata/struct/tuple_as_element.carbon index a82c304db433..b1a256745838 100644 --- a/toolchain/check/testdata/struct/tuple_as_element.carbon +++ b/toolchain/check/testdata/struct/tuple_as_element.carbon @@ -7,7 +7,7 @@ var x: {.a: i32, .b: (i32,)} = {.a = 1, .b = (2,)}; var y: {.a: i32, .b: (i32,)} = x; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "tuple_as_element.carbon" { // CHECK:STDOUT: %.loc7_23: type = stub_reference i32 // CHECK:STDOUT: %.loc7_27.1: type = tuple_type (type) // CHECK:STDOUT: %.loc7_27.2: (type,) = tuple_literal (%.loc7_23) diff --git a/toolchain/check/testdata/struct/two_entries.carbon b/toolchain/check/testdata/struct/two_entries.carbon index 318d71840d9f..bccf29256a8f 100644 --- a/toolchain/check/testdata/struct/two_entries.carbon +++ b/toolchain/check/testdata/struct/two_entries.carbon @@ -7,7 +7,7 @@ var x: {.a: i32, .b: i32} = {.a = 1, .b = 2}; var y: {.a: i32, .b: i32} = x; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "two_entries.carbon" { // CHECK:STDOUT: %.loc7_25: type = struct_type {.a: i32, .b: i32} // CHECK:STDOUT: %x: ref {.a: i32, .b: i32} = var "x" // CHECK:STDOUT: %.loc7_35: i32 = int_literal 1 diff --git a/toolchain/check/testdata/tuples/empty.carbon b/toolchain/check/testdata/tuples/empty.carbon index 69a40b2c29a9..26d80538c25e 100644 --- a/toolchain/check/testdata/tuples/empty.carbon +++ b/toolchain/check/testdata/tuples/empty.carbon @@ -7,7 +7,7 @@ var x: () = (); var y: () = x; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "empty.carbon" { // CHECK:STDOUT: %.loc7_9.1: type = tuple_type () // CHECK:STDOUT: %.loc7_9.2: () = tuple_literal () // CHECK:STDOUT: %x: ref () = var "x" diff --git a/toolchain/check/testdata/tuples/fail_assign_empty.carbon b/toolchain/check/testdata/tuples/fail_assign_empty.carbon index d554fc699226..879d92aad88e 100644 --- a/toolchain/check/testdata/tuples/fail_assign_empty.carbon +++ b/toolchain/check/testdata/tuples/fail_assign_empty.carbon @@ -9,7 +9,7 @@ // CHECK:STDERR: ^ var x: (i32,) = (); -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_assign_empty.carbon" { // CHECK:STDOUT: %.loc10_9: type = stub_reference i32 // CHECK:STDOUT: %.loc10_13.1: type = tuple_type (type) // CHECK:STDOUT: %.loc10_13.2: (type,) = tuple_literal (%.loc10_9) diff --git a/toolchain/check/testdata/tuples/fail_assign_nested.carbon b/toolchain/check/testdata/tuples/fail_assign_nested.carbon index cb71dca2c802..ae5625383714 100644 --- a/toolchain/check/testdata/tuples/fail_assign_nested.carbon +++ b/toolchain/check/testdata/tuples/fail_assign_nested.carbon @@ -9,7 +9,7 @@ // CHECK:STDERR: ^ var x: ((i32, i32), (i32, i32)) = ((1, 2, 3), (4, 5, 6)); -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_assign_nested.carbon" { // CHECK:STDOUT: %.loc10_10: type = stub_reference i32 // CHECK:STDOUT: %.loc10_15: type = stub_reference i32 // CHECK:STDOUT: %.loc10_18.1: type = tuple_type (type, type) diff --git a/toolchain/check/testdata/tuples/fail_assign_to_empty.carbon b/toolchain/check/testdata/tuples/fail_assign_to_empty.carbon index c51b3a7c7161..d214f92cb98e 100644 --- a/toolchain/check/testdata/tuples/fail_assign_to_empty.carbon +++ b/toolchain/check/testdata/tuples/fail_assign_to_empty.carbon @@ -9,7 +9,7 @@ // CHECK:STDERR: ^ var x: () = (66); -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_assign_to_empty.carbon" { // CHECK:STDOUT: %.loc10_9.1: type = tuple_type () // CHECK:STDOUT: %.loc10_9.2: () = tuple_literal () // CHECK:STDOUT: %x: ref () = var "x" diff --git a/toolchain/check/testdata/tuples/fail_element_type_mismatch.carbon b/toolchain/check/testdata/tuples/fail_element_type_mismatch.carbon index 93a02043f1aa..f80a7b6c3e9e 100644 --- a/toolchain/check/testdata/tuples/fail_element_type_mismatch.carbon +++ b/toolchain/check/testdata/tuples/fail_element_type_mismatch.carbon @@ -9,7 +9,7 @@ // CHECK:STDERR: ^ var x: (i32, i32) = (2, 65.89); -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_element_type_mismatch.carbon" { // CHECK:STDOUT: %.loc10_9: type = stub_reference i32 // CHECK:STDOUT: %.loc10_14: type = stub_reference i32 // CHECK:STDOUT: %.loc10_17.1: type = tuple_type (type, type) diff --git a/toolchain/check/testdata/tuples/fail_too_few_element.carbon b/toolchain/check/testdata/tuples/fail_too_few_element.carbon index ff839816a193..ddb3709dc81a 100644 --- a/toolchain/check/testdata/tuples/fail_too_few_element.carbon +++ b/toolchain/check/testdata/tuples/fail_too_few_element.carbon @@ -9,7 +9,7 @@ // CHECK:STDERR: ^ var x: (i32, i32) = (2, ); -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_too_few_element.carbon" { // CHECK:STDOUT: %.loc10_9: type = stub_reference i32 // CHECK:STDOUT: %.loc10_14: type = stub_reference i32 // CHECK:STDOUT: %.loc10_17.1: type = tuple_type (type, type) diff --git a/toolchain/check/testdata/tuples/fail_type_assign.carbon b/toolchain/check/testdata/tuples/fail_type_assign.carbon index 483111c1c16a..1c1f4c583bd7 100644 --- a/toolchain/check/testdata/tuples/fail_type_assign.carbon +++ b/toolchain/check/testdata/tuples/fail_type_assign.carbon @@ -9,7 +9,7 @@ // CHECK:STDERR: ^ var x: (i32, ) = (i32, ); -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_type_assign.carbon" { // CHECK:STDOUT: %.loc10_9: type = stub_reference i32 // CHECK:STDOUT: %.loc10_14.1: type = tuple_type (type) // CHECK:STDOUT: %.loc10_14.2: (type,) = tuple_literal (%.loc10_9) diff --git a/toolchain/check/testdata/tuples/fail_value_as_type.carbon b/toolchain/check/testdata/tuples/fail_value_as_type.carbon index 164240794b59..e2dbf642eeb1 100644 --- a/toolchain/check/testdata/tuples/fail_value_as_type.carbon +++ b/toolchain/check/testdata/tuples/fail_value_as_type.carbon @@ -9,7 +9,7 @@ // CHECK:STDERR: ^ var x: (1, ); -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_value_as_type.carbon" { // CHECK:STDOUT: %.loc10_9.1: i32 = int_literal 1 // CHECK:STDOUT: %.loc10_9.2: i32 = stub_reference %.loc10_9.1 // CHECK:STDOUT: %.loc10_12.1: type = tuple_type (i32) diff --git a/toolchain/check/testdata/tuples/nested_tuple.carbon b/toolchain/check/testdata/tuples/nested_tuple.carbon index 09d357d6cc0c..3cb7b78ccfa2 100644 --- a/toolchain/check/testdata/tuples/nested_tuple.carbon +++ b/toolchain/check/testdata/tuples/nested_tuple.carbon @@ -6,7 +6,7 @@ var x: ((i32, i32), i32) = ((12, 76), 6); -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "nested_tuple.carbon" { // CHECK:STDOUT: %.loc7_10: type = stub_reference i32 // CHECK:STDOUT: %.loc7_15: type = stub_reference i32 // CHECK:STDOUT: %.loc7_18.1: type = tuple_type (type, type) diff --git a/toolchain/check/testdata/tuples/one_element.carbon b/toolchain/check/testdata/tuples/one_element.carbon index d026acf457ad..b1a9f92dd086 100644 --- a/toolchain/check/testdata/tuples/one_element.carbon +++ b/toolchain/check/testdata/tuples/one_element.carbon @@ -7,7 +7,7 @@ var x: (i32,) = (4,); var y: (i32,) = x; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "one_element.carbon" { // CHECK:STDOUT: %.loc7_9: type = stub_reference i32 // CHECK:STDOUT: %.loc7_13.1: type = tuple_type (type) // CHECK:STDOUT: %.loc7_13.2: (type,) = tuple_literal (%.loc7_9) diff --git a/toolchain/check/testdata/tuples/two_elements.carbon b/toolchain/check/testdata/tuples/two_elements.carbon index 1001324e9689..3165be3c09bc 100644 --- a/toolchain/check/testdata/tuples/two_elements.carbon +++ b/toolchain/check/testdata/tuples/two_elements.carbon @@ -7,7 +7,7 @@ var x: (i32, i32) = (4, 102); var y: (i32, i32) = x; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "two_elements.carbon" { // CHECK:STDOUT: %.loc7_9: type = stub_reference i32 // CHECK:STDOUT: %.loc7_14: type = stub_reference i32 // CHECK:STDOUT: %.loc7_17.1: type = tuple_type (type, type) diff --git a/toolchain/check/testdata/var/decl.carbon b/toolchain/check/testdata/var/decl.carbon index 620398b87d10..13dadd2b41af 100644 --- a/toolchain/check/testdata/var/decl.carbon +++ b/toolchain/check/testdata/var/decl.carbon @@ -8,7 +8,7 @@ fn Main() { var x: i32; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "decl.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Main // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/decl_with_init.carbon b/toolchain/check/testdata/var/decl_with_init.carbon index 1d88458edeb5..c54d8642428a 100644 --- a/toolchain/check/testdata/var/decl_with_init.carbon +++ b/toolchain/check/testdata/var/decl_with_init.carbon @@ -8,7 +8,7 @@ fn Main() { var x: i32 = 0; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "decl_with_init.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Main // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/fail_duplicate_decl.carbon b/toolchain/check/testdata/var/fail_duplicate_decl.carbon index 2552bae99295..1c0373a0d193 100644 --- a/toolchain/check/testdata/var/fail_duplicate_decl.carbon +++ b/toolchain/check/testdata/var/fail_duplicate_decl.carbon @@ -16,7 +16,7 @@ fn Main() { var x: i32 = 0; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_duplicate_decl.carbon" { // CHECK:STDOUT: %.loc8 = fn_decl @Main // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/fail_init_type_mismatch.carbon b/toolchain/check/testdata/var/fail_init_type_mismatch.carbon index 1e85af095f65..3344b7b45c22 100644 --- a/toolchain/check/testdata/var/fail_init_type_mismatch.carbon +++ b/toolchain/check/testdata/var/fail_init_type_mismatch.carbon @@ -11,7 +11,7 @@ fn Main() { var x: i32 = 1.0; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_init_type_mismatch.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Main // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/fail_init_with_self.carbon b/toolchain/check/testdata/var/fail_init_with_self.carbon index 3245fc8a4a74..713b7f860919 100644 --- a/toolchain/check/testdata/var/fail_init_with_self.carbon +++ b/toolchain/check/testdata/var/fail_init_with_self.carbon @@ -11,7 +11,7 @@ fn Main() { var x: i32 = x; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_init_with_self.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Main // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/fail_lookup_outside_scope.carbon b/toolchain/check/testdata/var/fail_lookup_outside_scope.carbon index 11ecaf0bd791..51e99e3882ef 100644 --- a/toolchain/check/testdata/var/fail_lookup_outside_scope.carbon +++ b/toolchain/check/testdata/var/fail_lookup_outside_scope.carbon @@ -13,7 +13,7 @@ fn Main() { // CHECK:STDERR: ^ var y: i32 = x; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_lookup_outside_scope.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Main // CHECK:STDOUT: %y: ref i32 = var "y" // CHECK:STDOUT: assign %y, diff --git a/toolchain/check/testdata/var/fail_storage_is_literal.carbon b/toolchain/check/testdata/var/fail_storage_is_literal.carbon index 8bf489440c1e..da245209241e 100644 --- a/toolchain/check/testdata/var/fail_storage_is_literal.carbon +++ b/toolchain/check/testdata/var/fail_storage_is_literal.carbon @@ -11,7 +11,7 @@ fn Main() { var x: 1 = 1; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "fail_storage_is_literal.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Main // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/var/global_decl.carbon b/toolchain/check/testdata/var/global_decl.carbon index 1831f29e0839..d8f1e8ae878c 100644 --- a/toolchain/check/testdata/var/global_decl.carbon +++ b/toolchain/check/testdata/var/global_decl.carbon @@ -6,6 +6,6 @@ var x: i32; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "global_decl.carbon" { // CHECK:STDOUT: %x: ref i32 = var "x" // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/var/global_decl_with_init.carbon b/toolchain/check/testdata/var/global_decl_with_init.carbon index 6a5cfba7722d..762c486e7ec6 100644 --- a/toolchain/check/testdata/var/global_decl_with_init.carbon +++ b/toolchain/check/testdata/var/global_decl_with_init.carbon @@ -6,7 +6,7 @@ var x: i32 = 0; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "global_decl_with_init.carbon" { // CHECK:STDOUT: %x: ref i32 = var "x" // CHECK:STDOUT: %.loc7: i32 = int_literal 0 // CHECK:STDOUT: assign %x, %.loc7 diff --git a/toolchain/check/testdata/var/global_lookup.carbon b/toolchain/check/testdata/var/global_lookup.carbon index 9754133252db..255933d1ce9f 100644 --- a/toolchain/check/testdata/var/global_lookup.carbon +++ b/toolchain/check/testdata/var/global_lookup.carbon @@ -7,7 +7,7 @@ var x: i32 = 0; var y: i32 = x; -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "global_lookup.carbon" { // CHECK:STDOUT: %x: ref i32 = var "x" // CHECK:STDOUT: %.loc7_14: i32 = int_literal 0 // CHECK:STDOUT: assign %x, %.loc7_14 diff --git a/toolchain/check/testdata/var/global_lookup_in_scope.carbon b/toolchain/check/testdata/var/global_lookup_in_scope.carbon index ede173df0b88..5fe4f700100f 100644 --- a/toolchain/check/testdata/var/global_lookup_in_scope.carbon +++ b/toolchain/check/testdata/var/global_lookup_in_scope.carbon @@ -10,7 +10,7 @@ fn Main() { var y: i32 = x; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "global_lookup_in_scope.carbon" { // CHECK:STDOUT: %x: ref i32 = var "x" // CHECK:STDOUT: %.loc7: i32 = int_literal 0 // CHECK:STDOUT: assign %x, %.loc7 diff --git a/toolchain/check/testdata/var/lookup.carbon b/toolchain/check/testdata/var/lookup.carbon index c3821de169f4..b950944542cc 100644 --- a/toolchain/check/testdata/var/lookup.carbon +++ b/toolchain/check/testdata/var/lookup.carbon @@ -9,7 +9,7 @@ fn Main() { x; } -// CHECK:STDOUT: package { +// CHECK:STDOUT: file "lookup.carbon" { // CHECK:STDOUT: %.loc7 = fn_decl @Main // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/sem_ir/BUILD b/toolchain/sem_ir/BUILD index 424a55988e1b..70915e66e742 100644 --- a/toolchain/sem_ir/BUILD +++ b/toolchain/sem_ir/BUILD @@ -71,6 +71,7 @@ cc_test( size = "small", srcs = ["file_test.cpp"], deps = [ + "//common:ostream", "//testing/base:gtest_main", "//testing/base:test_raw_ostream", "//toolchain/base:yaml_test_helpers", diff --git a/toolchain/sem_ir/file.cpp b/toolchain/sem_ir/file.cpp index a7b6c955b9f5..9e5456ac9977 100644 --- a/toolchain/sem_ir/file.cpp +++ b/toolchain/sem_ir/file.cpp @@ -15,7 +15,8 @@ namespace Carbon::SemIR { File::File() // Builtins are always the first IR, even when self-referential. - : cross_reference_irs_({this}), + : filename_(""), + cross_reference_irs_({this}), // Default entry for NodeBlockId::Empty. node_blocks_(1) { nodes_.reserve(BuiltinKind::ValidCount); @@ -35,9 +36,10 @@ File::File() << " nodes, actual: " << nodes_.size(); } -File::File(const File* builtins) +File::File(std::string filename, const File* builtins) // Builtins are always the first IR. - : cross_reference_irs_({builtins}), + : filename_(std::move(filename)), + cross_reference_irs_({builtins}), // Default entry for NodeBlockId::Empty. node_blocks_(1) { CARBON_CHECK(builtins != nullptr); @@ -90,43 +92,62 @@ auto File::Verify() const -> ErrorOr { return Success(); } -static constexpr int Indent = 2; +static constexpr int BaseIndent = 4; +static constexpr int IndentStep = 2; +// Define PrintList for ArrayRef. +template > +static auto PrintList( + llvm::raw_ostream& out, llvm::StringLiteral name, llvm::ArrayRef list, + PrintT print = [](llvm::raw_ostream& out, const T& val) { out << val; }) { + out.indent(BaseIndent); + out << name << ": [\n"; + for (const auto& element : list) { + out.indent(BaseIndent + IndentStep); + print(out, element); + out << ",\n"; + } + out.indent(BaseIndent); + out << "]\n"; +} + +// Adapt PrintList for a vector. template > static auto PrintList( llvm::raw_ostream& out, llvm::StringLiteral name, const llvm::SmallVector& list, PrintT print = [](llvm::raw_ostream& out, const T& val) { out << val; }) { - out << name << ": [\n"; - for (const auto& element : list) { - out.indent(Indent); - print(out, element); - out << ",\n"; - } - out << "]\n"; + PrintList(out, name, llvm::ArrayRef(list), print); } +// PrintBlock is only used for vectors. template static auto PrintBlock(llvm::raw_ostream& out, llvm::StringLiteral block_name, const llvm::SmallVector& blocks) { + out.indent(BaseIndent); out << block_name << ": [\n"; for (const auto& block : blocks) { - out.indent(Indent); + out.indent(BaseIndent + IndentStep); out << "[\n"; for (const auto& node : block) { - out.indent(2 * Indent); + out.indent(BaseIndent + 2 * IndentStep); out << node << ",\n"; } - out.indent(Indent); + out.indent(BaseIndent + IndentStep); out << "],\n"; } + out.indent(BaseIndent); out << "]\n"; } auto File::Print(llvm::raw_ostream& out, bool include_builtins) const -> void { - out << "cross_reference_irs_size: " << cross_reference_irs_.size() << "\n"; + out << "- filename: " << filename_ << "\n" + << " sem_ir:\n" + << " - cross_reference_irs_size: " << cross_reference_irs_.size() + << "\n"; PrintList(out, "functions", functions_); // Integer literals are an APInt, and default to a signed print, but the @@ -138,17 +159,13 @@ auto File::Print(llvm::raw_ostream& out, bool include_builtins) const -> void { PrintList(out, "real_literals", real_literals_); PrintList(out, "strings", strings_); PrintList(out, "types", types_); - PrintBlock(out, "type_blocks", type_blocks_); - out << "nodes: [\n"; - for (int i = include_builtins ? 0 : BuiltinKind::ValidCount; - i < static_cast(nodes_.size()); ++i) { - const auto& element = nodes_[i]; - out.indent(Indent); - out << element << ",\n"; + llvm::ArrayRef nodes = nodes_; + if (!include_builtins) { + nodes = nodes.drop_front(BuiltinKind::ValidCount); } - out << "]\n"; + PrintList(out, "nodes", nodes); PrintBlock(out, "node_blocks", node_blocks_); } diff --git a/toolchain/sem_ir/file.h b/toolchain/sem_ir/file.h index e408b7e884a4..7abcc5e4c83b 100644 --- a/toolchain/sem_ir/file.h +++ b/toolchain/sem_ir/file.h @@ -72,7 +72,7 @@ class File : public Printable { explicit File(); // Starts a new file for Check::CheckParseTree. Builtins are required. - explicit File(const File* builtins); + explicit File(std::string filename, const File* builtins); // Verifies that invariants of the semantics IR hold. auto Verify() const -> ErrorOr; @@ -290,9 +290,15 @@ class File : public Printable { auto has_errors() const -> bool { return has_errors_; } auto set_has_errors(bool has_errors) -> void { has_errors_ = has_errors; } + auto filename() const -> llvm::StringRef { return filename_; } + private: bool has_errors_ = false; + // The associated filename. + // TODO: If SemIR starts linking back to tokens, reuse its filename. + std::string filename_; + // Storage for callable objects. llvm::SmallVector functions_; diff --git a/toolchain/sem_ir/file_test.cpp b/toolchain/sem_ir/file_test.cpp index 3011603f3e55..ab25383b096e 100644 --- a/toolchain/sem_ir/file_test.cpp +++ b/toolchain/sem_ir/file_test.cpp @@ -5,9 +5,9 @@ #include #include +#include "common/ostream.h" #include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/VirtualFileSystem.h" -#include "llvm/Support/raw_ostream.h" #include "testing/base/test_raw_ostream.h" #include "toolchain/base/yaml_test_helpers.h" #include "toolchain/driver/driver.h" @@ -41,35 +41,38 @@ TEST(SemIRTest, YAML) { auto node_builtin = Yaml::Scalar(MatchesRegex(R"(node\w+)")); auto type_id = Yaml::Scalar(MatchesRegex(R"(type\d+)")); - EXPECT_THAT( - Yaml::Value::FromText(print_stream.TakeStr()), - ElementsAre(Yaml::Mapping(ElementsAre( - Pair("cross_reference_irs_size", "1"), - Pair("functions", Yaml::Sequence(SizeIs(1))), - Pair("integer_literals", Yaml::Sequence(ElementsAre("0"))), - Pair("real_literals", Yaml::Sequence(IsEmpty())), - Pair("strings", Yaml::Sequence(ElementsAre("F", "x"))), - Pair("types", Yaml::Sequence(ElementsAre(node_builtin))), - Pair("type_blocks", Yaml::Sequence(IsEmpty())), - 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", "Return")))), - // A 1-arg node. - Contains(Yaml::Mapping(ElementsAre( - Pair("kind", "IntegerLiteral"), Pair("arg0", "int0"), - Pair("type", type_id)))), - // A 2-arg node. - Contains(Yaml::Mapping(ElementsAre( - Pair("kind", "Assign"), Pair("arg0", node_id), - Pair("arg1", node_id))))))), - // This production has only two node blocks. - Pair("node_blocks", - Yaml::Sequence(ElementsAre(Yaml::Sequence(IsEmpty()), - Yaml::Sequence(Each(node_id)), - Yaml::Sequence(Each(node_id))))))))); + auto file = Yaml::Sequence(ElementsAre(Yaml::Mapping(ElementsAre( + Pair("cross_reference_irs_size", "1"), + Pair("functions", Yaml::Sequence(SizeIs(1))), + Pair("integer_literals", Yaml::Sequence(ElementsAre("0"))), + Pair("real_literals", Yaml::Sequence(IsEmpty())), + Pair("strings", Yaml::Sequence(ElementsAre("F", "x"))), + Pair("types", Yaml::Sequence(ElementsAre(node_builtin))), + Pair("type_blocks", Yaml::Sequence(IsEmpty())), + 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", "Return")))), + // A 1-arg node. + Contains(Yaml::Mapping( + ElementsAre(Pair("kind", "IntegerLiteral"), + Pair("arg0", "int0"), Pair("type", type_id)))), + // A 2-arg node. + Contains(Yaml::Mapping(ElementsAre(Pair("kind", "Assign"), + Pair("arg0", node_id), + Pair("arg1", node_id))))))), + // This production has only two node blocks. + Pair("node_blocks", + Yaml::Sequence(ElementsAre(Yaml::Sequence(IsEmpty()), + Yaml::Sequence(Each(node_id)), + Yaml::Sequence(Each(node_id))))))))); + + auto root = Yaml::Sequence(ElementsAre(Yaml::Mapping( + ElementsAre(Pair("filename", "test.carbon"), Pair("sem_ir", file))))); + + EXPECT_THAT(Yaml::Value::FromText(print_stream.TakeStr()), ElementsAre(root)); } } // namespace diff --git a/toolchain/sem_ir/formatter.cpp b/toolchain/sem_ir/formatter.cpp index 5bfad9706973..2b2fa140916e 100644 --- a/toolchain/sem_ir/formatter.cpp +++ b/toolchain/sem_ir/formatter.cpp @@ -404,9 +404,9 @@ class Formatter { node_namer_(tokenized_buffer, parse_tree, semantics_ir) {} auto Format() -> void { - // TODO: Include information from the package declaration, once we fully - // support it. - out_ << "package {\n"; + out_ << "file \"" << semantics_ir_.filename() << "\" {\n"; + // TODO: Include information from the package declaration, once we + // fully support it. // TODO: Handle the case where there are multiple top-level node blocks. // For example, there may be branching in the initializer of a global or a // type expression.