Add a distinct semir file separator. (#3438)

This removes the filename from the file-scoped block, and places it
above to make it clear where the full SemIR begins (with multifile,
providing a barrier between).
This commit is contained in:
Jon Ross-Perkins
2023-12-01 00:53:45 +00:00
committed by GitHub
parent 1603edc359
commit aa5bfa564f
250 changed files with 1231 additions and 306 deletions
+4 -1
View File
@@ -7,12 +7,14 @@
var x: {} = {};
var y: {} = x;
// CHECK:STDOUT: --- empty.carbon
// CHECK:STDOUT:
// CHECK:STDOUT: constants {
// CHECK:STDOUT: %.loc7_9.1: type = struct_type {}
// CHECK:STDOUT: %.loc7_9.2: type = tuple_type ()
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file "empty.carbon" {
// CHECK:STDOUT: file {
// CHECK:STDOUT: %.loc7_9.1: {} = struct_literal ()
// CHECK:STDOUT: %.loc7_9.2: type = converted %.loc7_9.1, constants.%.loc7_9.1
// CHECK:STDOUT: %x.var: ref {} = var x
@@ -30,3 +32,4 @@ var y: {} = x;
// CHECK:STDOUT: %.loc8_13.2: init {} = converted %x.ref, %.loc8_13.1
// CHECK:STDOUT: assign %y.var, %.loc8_13.2
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -10,7 +10,9 @@
// CHECK:STDERR: ^
fn F() { a.b; }
// CHECK:STDOUT: file "fail_access_into_invalid.carbon" {
// CHECK:STDOUT: --- fail_access_into_invalid.carbon
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: %F: <function> = fn_decl @F
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -19,3 +21,4 @@ fn F() { a.b; }
// CHECK:STDOUT: %a.ref: <error> = name_ref a, <error>
// CHECK:STDOUT: return
// CHECK:STDOUT: }
// CHECK:STDOUT:
+4 -1
View File
@@ -9,14 +9,17 @@
// CHECK:STDERR: ^
var x: {.a: i32} = {};
// CHECK:STDOUT: --- fail_assign_empty.carbon
// CHECK:STDOUT:
// CHECK:STDOUT: constants {
// CHECK:STDOUT: %.loc10: type = struct_type {}
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file "fail_assign_empty.carbon" {
// CHECK:STDOUT: file {
// CHECK:STDOUT: %.loc10_16: type = struct_type {.a: i32}
// CHECK:STDOUT: %x.var: ref {.a: i32} = var x
// CHECK:STDOUT: %x: ref {.a: i32} = bind_name x, %x.var
// CHECK:STDOUT: %.loc10_21: {} = struct_literal ()
// CHECK:STDOUT: assign %x.var, <error>
// CHECK:STDOUT: }
// CHECK:STDOUT:
+4 -1
View File
@@ -9,6 +9,8 @@
// CHECK:STDERR: ^
var x: {.a: {}} = {.b = {}};
// CHECK:STDOUT: --- fail_assign_nested.carbon
// CHECK:STDOUT:
// CHECK:STDOUT: constants {
// CHECK:STDOUT: %.loc10_14.1: type = struct_type {}
// CHECK:STDOUT: %.loc10_14.2: type = tuple_type ()
@@ -16,7 +18,7 @@ var x: {.a: {}} = {.b = {}};
// CHECK:STDOUT: %.loc10_27: type = struct_type {.b: {}}
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file "fail_assign_nested.carbon" {
// CHECK:STDOUT: file {
// CHECK:STDOUT: %.loc10_14.1: {} = struct_literal ()
// CHECK:STDOUT: %.loc10_14.2: type = converted %.loc10_14.1, constants.%.loc10_14.1
// CHECK:STDOUT: %.loc10_15: type = struct_type {.a: {}}
@@ -26,3 +28,4 @@ var x: {.a: {}} = {.b = {}};
// CHECK:STDOUT: %.loc10_27: {.b: {}} = struct_literal (%.loc10_26)
// CHECK:STDOUT: assign %x.var, <error>
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -9,13 +9,15 @@
// CHECK:STDERR: ^
var x: {} = {.a = 1};
// CHECK:STDOUT: --- fail_assign_to_empty.carbon
// CHECK:STDOUT:
// CHECK:STDOUT: constants {
// CHECK:STDOUT: %.loc10_9.1: type = struct_type {}
// CHECK:STDOUT: %.loc10_9.2: type = tuple_type ()
// CHECK:STDOUT: %.loc10_20: type = struct_type {.a: i32}
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file "fail_assign_to_empty.carbon" {
// CHECK:STDOUT: file {
// CHECK:STDOUT: %.loc10_9.1: {} = struct_literal ()
// CHECK:STDOUT: %.loc10_9.2: type = converted %.loc10_9.1, constants.%.loc10_9.1
// CHECK:STDOUT: %x.var: ref {} = var x
@@ -24,3 +26,4 @@ var x: {} = {.a = 1};
// CHECK:STDOUT: %.loc10_20: {.a: i32} = struct_literal (%.loc10_19)
// CHECK:STDOUT: assign %x.var, <error>
// CHECK:STDOUT: }
// CHECK:STDOUT:
+4 -1
View File
@@ -44,12 +44,14 @@ var x: {.a: i32} = {.a = 1, .a = 2};
// CHECK:STDERR: ^
var y: {.b: i32, .c: i32} = {.b = 3, .b = 4};
// CHECK:STDOUT: --- fail_duplicate_name.carbon
// CHECK:STDOUT:
// CHECK:STDOUT: constants {
// CHECK:STDOUT: %.loc21: type = struct_type {.a: i32}
// CHECK:STDOUT: %.loc45: type = ptr_type {.b: i32, .c: i32}
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file "fail_duplicate_name.carbon" {
// CHECK:STDOUT: file {
// CHECK:STDOUT: %F: <function> = fn_decl @F
// CHECK:STDOUT: %.loc21_35: i32 = int_literal 1
// CHECK:STDOUT: %.loc21_36: {.a: i32} = struct_literal (%.loc21_35)
@@ -72,3 +74,4 @@ var y: {.b: i32, .c: i32} = {.b = 3, .b = 4};
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @F() -> <error>;
// CHECK:STDOUT:
@@ -14,11 +14,13 @@ var x: {.a: i32} = {.b = 1};
// CHECK:STDERR: ^
var y: {.b: i32} = x;
// CHECK:STDOUT: --- fail_field_name_mismatch.carbon
// CHECK:STDOUT:
// CHECK:STDOUT: constants {
// CHECK:STDOUT: %.loc10: type = struct_type {.b: i32}
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file "fail_field_name_mismatch.carbon" {
// CHECK:STDOUT: file {
// CHECK:STDOUT: %.loc10_16: type = struct_type {.a: i32}
// CHECK:STDOUT: %x.var: ref {.a: i32} = var x
// CHECK:STDOUT: %x: ref {.a: i32} = bind_name x, %x.var
@@ -31,3 +33,4 @@ var y: {.b: i32} = x;
// CHECK:STDOUT: %x.ref: ref {.a: i32} = name_ref x, %x
// CHECK:STDOUT: assign %y.var, <error>
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -9,11 +9,13 @@
// CHECK:STDERR: ^
var x: {.a: i32} = {.b = 1.0};
// CHECK:STDOUT: --- fail_field_type_mismatch.carbon
// CHECK:STDOUT:
// CHECK:STDOUT: constants {
// CHECK:STDOUT: %.loc10: type = struct_type {.b: f64}
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file "fail_field_type_mismatch.carbon" {
// CHECK:STDOUT: file {
// CHECK:STDOUT: %.loc10_16: type = struct_type {.a: i32}
// CHECK:STDOUT: %x.var: ref {.a: i32} = var x
// CHECK:STDOUT: %x: ref {.a: i32} = bind_name x, %x.var
@@ -21,3 +23,4 @@ var x: {.a: i32} = {.b = 1.0};
// CHECK:STDOUT: %.loc10_29: {.b: f64} = struct_literal (%.loc10_26)
// CHECK:STDOUT: assign %x.var, <error>
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -10,7 +10,9 @@ var x: {.a: f64} = {.a = 4.0};
// CHECK:STDERR: ^
var y: i32 = x.b;
// CHECK:STDOUT: file "fail_member_access_type.carbon" {
// CHECK:STDOUT: --- fail_member_access_type.carbon
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: %.loc7_16: type = struct_type {.a: f64}
// CHECK:STDOUT: %x.var: ref {.a: f64} = var x
// CHECK:STDOUT: %x: ref {.a: f64} = bind_name x, %x.var
@@ -24,3 +26,4 @@ var y: i32 = x.b;
// CHECK:STDOUT: %x.ref: ref {.a: f64} = name_ref x, %x
// CHECK:STDOUT: assign %y.var, <error>
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -11,7 +11,9 @@ fn A() {
A.y;
}
// CHECK:STDOUT: file "fail_member_of_function.carbon" {
// CHECK:STDOUT: --- fail_member_of_function.carbon
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: %A: <function> = fn_decl @A
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -20,3 +22,4 @@ fn A() {
// CHECK:STDOUT: %A.ref: <function> = name_ref A, file.%A
// CHECK:STDOUT: return
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -19,11 +19,13 @@ var s: {.a: Incomplete};
// CHECK:STDERR: ^
var p: Incomplete* = &s.a;
// CHECK:STDOUT: --- fail_nested_incomplete.carbon
// CHECK:STDOUT:
// CHECK:STDOUT: constants {
// CHECK:STDOUT: %.loc20: type = ptr_type <error>
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file "fail_nested_incomplete.carbon" {
// CHECK:STDOUT: file {
// CHECK:STDOUT: class_decl @Incomplete, ()
// CHECK:STDOUT: %Incomplete: type = class_type @Incomplete
// CHECK:STDOUT: %Incomplete.ref.loc15: type = name_ref Incomplete, %Incomplete
@@ -40,3 +42,4 @@ var p: Incomplete* = &s.a;
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @Incomplete;
// CHECK:STDOUT:
@@ -10,7 +10,9 @@ var x: {.a: i32} = {.a = 4};
// CHECK:STDERR: ^
var y: i32 = x.b;
// CHECK:STDOUT: file "fail_non_member_access.carbon" {
// CHECK:STDOUT: --- fail_non_member_access.carbon
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: %.loc7_16: type = struct_type {.a: i32}
// CHECK:STDOUT: %x.var: ref {.a: i32} = var x
// CHECK:STDOUT: %x: ref {.a: i32} = bind_name x, %x.var
@@ -24,3 +26,4 @@ var y: i32 = x.b;
// CHECK:STDOUT: %x.ref: ref {.a: i32} = name_ref x, %x
// CHECK:STDOUT: assign %y.var, <error>
// CHECK:STDOUT: }
// CHECK:STDOUT:
+4 -1
View File
@@ -9,12 +9,14 @@
// CHECK:STDERR: ^
var x: {.a: i32, .b: i32} = {.a = 1};
// CHECK:STDOUT: --- fail_too_few_values.carbon
// CHECK:STDOUT:
// CHECK:STDOUT: constants {
// CHECK:STDOUT: %.loc10_25: type = ptr_type {.a: i32, .b: i32}
// CHECK:STDOUT: %.loc10_36: type = struct_type {.a: i32}
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file "fail_too_few_values.carbon" {
// CHECK:STDOUT: file {
// CHECK:STDOUT: %.loc10_25: type = struct_type {.a: i32, .b: i32}
// CHECK:STDOUT: %x.var: ref {.a: i32, .b: i32} = var x
// CHECK:STDOUT: %x: ref {.a: i32, .b: i32} = bind_name x, %x.var
@@ -22,3 +24,4 @@ var x: {.a: i32, .b: i32} = {.a = 1};
// CHECK:STDOUT: %.loc10_36: {.a: i32} = struct_literal (%.loc10_35)
// CHECK:STDOUT: assign %x.var, <error>
// CHECK:STDOUT: }
// CHECK:STDOUT:
+4 -1
View File
@@ -9,10 +9,13 @@
// CHECK:STDERR: ^
var x: {.a: i32} = {.a: i32};
// CHECK:STDOUT: file "fail_type_assign.carbon" {
// CHECK:STDOUT: --- fail_type_assign.carbon
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: %.loc10_16: type = struct_type {.a: i32}
// CHECK:STDOUT: %x.var: ref {.a: i32} = var x
// CHECK:STDOUT: %x: ref {.a: i32} = bind_name x, %x.var
// CHECK:STDOUT: %.loc10_28: type = struct_type {.a: i32}
// CHECK:STDOUT: assign %x.var, <error>
// CHECK:STDOUT: }
// CHECK:STDOUT:
+4 -1
View File
@@ -9,13 +9,16 @@
// CHECK:STDERR: ^
var x: {.a = 1};
// CHECK:STDOUT: --- fail_value_as_type.carbon
// CHECK:STDOUT:
// CHECK:STDOUT: constants {
// CHECK:STDOUT: %.loc10: type = struct_type {.a: i32}
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file "fail_value_as_type.carbon" {
// CHECK:STDOUT: file {
// CHECK:STDOUT: %.loc10_14: i32 = int_literal 1
// CHECK:STDOUT: %.loc10_15: {.a: i32} = struct_literal (%.loc10_14)
// CHECK:STDOUT: %x.var: ref <error> = var x
// CHECK:STDOUT: %x: ref <error> = bind_name x, %x.var
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -10,6 +10,8 @@ fn F() -> i32 {
return {.a = 1, .b = G(), .c = 3}.b.y;
}
// CHECK:STDOUT: --- literal_member_access.carbon
// CHECK:STDOUT:
// CHECK:STDOUT: constants {
// CHECK:STDOUT: %.loc7: type = ptr_type {.x: i32, .y: i32, .z: i32}
// CHECK:STDOUT: %.loc10_35.1: type = struct_type {.a: i32, .b: {.x: i32, .y: i32, .z: i32}, .c: i32}
@@ -17,7 +19,7 @@ fn F() -> i32 {
// CHECK:STDOUT: %.loc10_35.3: type = ptr_type {.a: i32, .b: {.x: i32, .y: i32, .z: i32}*, .c: i32}
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file "literal_member_access.carbon" {
// CHECK:STDOUT: file {
// CHECK:STDOUT: %G: <function> = fn_decl @G
// CHECK:STDOUT: %F: <function> = fn_decl @F
// CHECK:STDOUT: }
@@ -47,3 +49,4 @@ fn F() -> i32 {
// CHECK:STDOUT: %.loc10_38: i32 = struct_access %.loc10_36, member1
// CHECK:STDOUT: return %.loc10_38
// CHECK:STDOUT: }
// CHECK:STDOUT:
+4 -1
View File
@@ -8,11 +8,13 @@ var x: {.a: f64, .b: i32} = {.a = 0.0, .b = 1};
var y: i32 = x.b;
var z: i32 = y;
// CHECK:STDOUT: --- member_access.carbon
// CHECK:STDOUT:
// CHECK:STDOUT: constants {
// CHECK:STDOUT: %.loc7: type = ptr_type {.a: f64, .b: i32}
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file "member_access.carbon" {
// CHECK:STDOUT: file {
// CHECK:STDOUT: %.loc7_25: type = struct_type {.a: f64, .b: i32}
// CHECK:STDOUT: %x.var: ref {.a: f64, .b: i32} = var x
// CHECK:STDOUT: %x: ref {.a: f64, .b: i32} = bind_name x, %x.var
@@ -38,3 +40,4 @@ var z: i32 = y;
// CHECK:STDOUT: %.loc9: i32 = bind_value %y.ref
// CHECK:STDOUT: assign %z.var, %.loc9
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -10,6 +10,8 @@ fn G() {
var v: {.a: (i32, i32, i32), .b: (i32, i32, i32)} = {.a = F(), .b = F()};
}
// CHECK:STDOUT: --- nested_struct_in_place.carbon
// CHECK:STDOUT:
// CHECK:STDOUT: constants {
// CHECK:STDOUT: %.loc7_25.1: type = tuple_type (type, type, type)
// CHECK:STDOUT: %.loc7_25.2: type = tuple_type (i32, i32, i32)
@@ -18,7 +20,7 @@ fn G() {
// CHECK:STDOUT: %.loc10_51.2: type = ptr_type {.a: (i32, i32, i32)*, .b: (i32, i32, i32)*}
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file "nested_struct_in_place.carbon" {
// CHECK:STDOUT: file {
// CHECK:STDOUT: %F: <function> = fn_decl @F
// CHECK:STDOUT: %G: <function> = fn_decl @G
// CHECK:STDOUT: }
@@ -46,3 +48,4 @@ fn G() {
// CHECK:STDOUT: assign %v.var, %.loc10_74.5
// CHECK:STDOUT: return
// CHECK:STDOUT: }
// CHECK:STDOUT:
+4 -1
View File
@@ -7,7 +7,9 @@
var x: {.a: i32} = {.a = 4};
var y: {.a: i32} = x;
// CHECK:STDOUT: file "one_entry.carbon" {
// CHECK:STDOUT: --- one_entry.carbon
// CHECK:STDOUT:
// CHECK:STDOUT: file {
// CHECK:STDOUT: %.loc7_16: type = struct_type {.a: i32}
// CHECK:STDOUT: %x.var: ref {.a: i32} = var x
// CHECK:STDOUT: %x: ref {.a: i32} = bind_name x, %x.var
@@ -26,3 +28,4 @@ var y: {.a: i32} = x;
// CHECK:STDOUT: %.loc8_20.4: init {.a: i32} = converted %x.ref, %.loc8_20.3
// CHECK:STDOUT: assign %y.var, %.loc8_20.4
// CHECK:STDOUT: }
// CHECK:STDOUT:
+4 -1
View File
@@ -13,13 +13,15 @@ fn F() -> {.a: i32, .b: f64} {
return y;
}
// CHECK:STDOUT: --- reorder_fields.carbon
// CHECK:STDOUT:
// CHECK:STDOUT: constants {
// CHECK:STDOUT: %.loc10: type = ptr_type {.a: i32, .b: f64}
// CHECK:STDOUT: %.loc11_62.1: type = struct_type {.b: f64, .a: i32}
// CHECK:STDOUT: %.loc11_62.2: type = ptr_type {.b: f64, .a: i32}
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file "reorder_fields.carbon" {
// CHECK:STDOUT: file {
// CHECK:STDOUT: %MakeI32: <function> = fn_decl @MakeI32
// CHECK:STDOUT: %MakeF64: <function> = fn_decl @MakeF64
// CHECK:STDOUT: %F: <function> = fn_decl @F
@@ -62,3 +64,4 @@ fn F() -> {.a: i32, .b: f64} {
// CHECK:STDOUT: %.loc13_10.8: init {.a: i32, .b: f64} = converted %y.ref, %.loc13_10.7
// CHECK:STDOUT: return %.loc13_10.8
// CHECK:STDOUT: }
// CHECK:STDOUT:
+4 -1
View File
@@ -7,13 +7,15 @@
var x: {.a: i32, .b: (i32,)} = {.a = 1, .b = (2,)};
var y: {.a: i32, .b: (i32,)} = x;
// CHECK:STDOUT: --- tuple_as_element.carbon
// CHECK:STDOUT:
// CHECK:STDOUT: constants {
// CHECK:STDOUT: %.loc7_27.1: type = tuple_type (type)
// CHECK:STDOUT: %.loc7_27.2: type = tuple_type (i32)
// CHECK:STDOUT: %.loc7_28: type = ptr_type {.a: i32, .b: (i32,)}
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file "tuple_as_element.carbon" {
// CHECK:STDOUT: file {
// CHECK:STDOUT: %.loc7_27.1: (type,) = tuple_literal (i32)
// CHECK:STDOUT: %.loc7_27.2: type = converted %.loc7_27.1, constants.%.loc7_27.2
// CHECK:STDOUT: %.loc7_28: type = struct_type {.a: i32, .b: (i32,)}
@@ -53,3 +55,4 @@ var y: {.a: i32, .b: (i32,)} = x;
// CHECK:STDOUT: %.loc8_32.13: init {.a: i32, .b: (i32,)} = converted %x.ref, %.loc8_32.12
// CHECK:STDOUT: assign %y.var, %.loc8_32.13
// CHECK:STDOUT: }
// CHECK:STDOUT:
+4 -1
View File
@@ -7,11 +7,13 @@
var x: {.a: i32, .b: i32} = {.a = 1, .b = 2};
var y: {.a: i32, .b: i32} = x;
// CHECK:STDOUT: --- two_entries.carbon
// CHECK:STDOUT:
// CHECK:STDOUT: constants {
// CHECK:STDOUT: %.loc7: type = ptr_type {.a: i32, .b: i32}
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: file "two_entries.carbon" {
// CHECK:STDOUT: file {
// CHECK:STDOUT: %.loc7_25: type = struct_type {.a: i32, .b: i32}
// CHECK:STDOUT: %x.var: ref {.a: i32, .b: i32} = var x
// CHECK:STDOUT: %x: ref {.a: i32, .b: i32} = bind_name x, %x.var
@@ -41,3 +43,4 @@ var y: {.a: i32, .b: i32} = x;
// CHECK:STDOUT: %.loc8_29.10: init {.a: i32, .b: i32} = converted %x.ref, %.loc8_29.9
// CHECK:STDOUT: assign %y.var, %.loc8_29.10
// CHECK:STDOUT: }
// CHECK:STDOUT: