Add range flag settings to class files (#5556)

Where `--no-dump-sem-ir` is used, change to `--dump-sem-ir-ranges=only`.
Otherwise, add `--dump-sem-ir-ranges=if-present` with a TODO to change
to `only`.

Note, SemIR is affected just because the extra comments change line
numbers in files where splits aren't in use.
This commit is contained in:
Jon Ross-Perkins
2025-05-29 18:32:57 +00:00
committed by GitHub
parent 6318987343
commit 3fb4d9a468
123 changed files with 2111 additions and 1754 deletions
+47 -44
View File
@@ -2,6 +2,9 @@
// Exceptions. See /LICENSE for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
// TODO: Add ranges and switch to "--dump-sem-ir-ranges=only".
// EXTRA-ARGS: --dump-sem-ir-ranges=if-present
//
// AUTOUPDATE
// TIP: To test this file alone, run:
// TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/check/testdata/class/base_method_shadow.carbon
@@ -101,27 +104,27 @@ fn Call(a: A*, b: B*, c: C*, d: D*) {
// CHECK:STDOUT: %d.param_patt: %pattern_type.a94 = value_param_pattern %d.patt, call_param3 [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %a.param: %ptr.6db = value_param call_param0
// CHECK:STDOUT: %.loc29_13: type = splice_block %ptr.loc29_13 [concrete = constants.%ptr.6db] {
// CHECK:STDOUT: %.loc32_13: type = splice_block %ptr.loc32_13 [concrete = constants.%ptr.6db] {
// CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A]
// CHECK:STDOUT: %ptr.loc29_13: type = ptr_type %A.ref [concrete = constants.%ptr.6db]
// CHECK:STDOUT: %ptr.loc32_13: type = ptr_type %A.ref [concrete = constants.%ptr.6db]
// CHECK:STDOUT: }
// CHECK:STDOUT: %a: %ptr.6db = bind_name a, %a.param
// CHECK:STDOUT: %b.param: %ptr.e79 = value_param call_param1
// CHECK:STDOUT: %.loc29_20: type = splice_block %ptr.loc29_20 [concrete = constants.%ptr.e79] {
// CHECK:STDOUT: %.loc32_20: type = splice_block %ptr.loc32_20 [concrete = constants.%ptr.e79] {
// CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B]
// CHECK:STDOUT: %ptr.loc29_20: type = ptr_type %B.ref [concrete = constants.%ptr.e79]
// CHECK:STDOUT: %ptr.loc32_20: type = ptr_type %B.ref [concrete = constants.%ptr.e79]
// CHECK:STDOUT: }
// CHECK:STDOUT: %b: %ptr.e79 = bind_name b, %b.param
// CHECK:STDOUT: %c.param: %ptr.019 = value_param call_param2
// CHECK:STDOUT: %.loc29_27: type = splice_block %ptr.loc29_27 [concrete = constants.%ptr.019] {
// CHECK:STDOUT: %.loc32_27: type = splice_block %ptr.loc32_27 [concrete = constants.%ptr.019] {
// CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C]
// CHECK:STDOUT: %ptr.loc29_27: type = ptr_type %C.ref [concrete = constants.%ptr.019]
// CHECK:STDOUT: %ptr.loc32_27: type = ptr_type %C.ref [concrete = constants.%ptr.019]
// CHECK:STDOUT: }
// CHECK:STDOUT: %c: %ptr.019 = bind_name c, %c.param
// CHECK:STDOUT: %d.param: %ptr.19c = value_param call_param3
// CHECK:STDOUT: %.loc29_34: type = splice_block %ptr.loc29_34 [concrete = constants.%ptr.19c] {
// CHECK:STDOUT: %.loc32_34: type = splice_block %ptr.loc32_34 [concrete = constants.%ptr.19c] {
// CHECK:STDOUT: %D.ref: type = name_ref D, file.%D.decl [concrete = constants.%D]
// CHECK:STDOUT: %ptr.loc29_34: type = ptr_type %D.ref [concrete = constants.%ptr.19c]
// CHECK:STDOUT: %ptr.loc32_34: type = ptr_type %D.ref [concrete = constants.%ptr.19c]
// CHECK:STDOUT: }
// CHECK:STDOUT: %d: %ptr.19c = bind_name d, %d.param
// CHECK:STDOUT: }
@@ -131,10 +134,10 @@ fn Call(a: A*, b: B*, c: C*, d: D*) {
// CHECK:STDOUT: %F.decl: %F.type.649 = fn_decl @F.1 [concrete = constants.%F.485] {
// CHECK:STDOUT: %self.patt: %pattern_type.5f8 = binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.5f8 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %.loc12_8: %pattern_type.f6d = addr_pattern %self.param_patt [concrete]
// CHECK:STDOUT: %.loc15_8: %pattern_type.f6d = addr_pattern %self.param_patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %ptr.6db = value_param call_param0
// CHECK:STDOUT: %.loc12_23: type = splice_block %ptr [concrete = constants.%ptr.6db] {
// CHECK:STDOUT: %.loc15_23: type = splice_block %ptr [concrete = constants.%ptr.6db] {
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%A [concrete = constants.%A]
// CHECK:STDOUT: %ptr: type = ptr_type %Self.ref [concrete = constants.%ptr.6db]
// CHECK:STDOUT: }
@@ -151,14 +154,14 @@ fn Call(a: A*, b: B*, c: C*, d: D*) {
// CHECK:STDOUT:
// CHECK:STDOUT: class @B {
// CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A]
// CHECK:STDOUT: %.loc16: %B.elem = base_decl %A.ref, element0 [concrete]
// CHECK:STDOUT: %.loc19: %B.elem = base_decl %A.ref, element0 [concrete]
// CHECK:STDOUT: %F.decl: %F.type.8c6 = fn_decl @F.2 [concrete = constants.%F.92a] {
// CHECK:STDOUT: %self.patt: %pattern_type.960 = binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.960 = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %.loc17_8: %pattern_type.f6d = addr_pattern %self.param_patt [concrete]
// CHECK:STDOUT: %.loc20_8: %pattern_type.f6d = addr_pattern %self.param_patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %ptr.e79 = value_param call_param0
// CHECK:STDOUT: %.loc17_23: type = splice_block %ptr [concrete = constants.%ptr.e79] {
// CHECK:STDOUT: %.loc20_23: type = splice_block %ptr [concrete = constants.%ptr.e79] {
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%B [concrete = constants.%B]
// CHECK:STDOUT: %ptr: type = ptr_type %Self.ref [concrete = constants.%ptr.e79]
// CHECK:STDOUT: }
@@ -171,21 +174,21 @@ fn Call(a: A*, b: B*, c: C*, d: D*) {
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = constants.%B
// CHECK:STDOUT: .A = <poisoned>
// CHECK:STDOUT: .base = %.loc16
// CHECK:STDOUT: .base = %.loc19
// CHECK:STDOUT: .F = %F.decl
// CHECK:STDOUT: extend %A.ref
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @C {
// CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B]
// CHECK:STDOUT: %.loc21: %C.elem = base_decl %B.ref, element0 [concrete]
// CHECK:STDOUT: %.loc24: %C.elem = base_decl %B.ref, element0 [concrete]
// CHECK:STDOUT: %F.decl: %F.type.c29 = fn_decl @F.3 [concrete = constants.%F.437] {
// CHECK:STDOUT: %self.patt: %pattern_type.44a = binding_pattern self [concrete]
// CHECK:STDOUT: %self.param_patt: %pattern_type.44a = value_param_pattern %self.patt, call_param0 [concrete]
// CHECK:STDOUT: %.loc22_8: %pattern_type.f6d = addr_pattern %self.param_patt [concrete]
// CHECK:STDOUT: %.loc25_8: %pattern_type.f6d = addr_pattern %self.param_patt [concrete]
// CHECK:STDOUT: } {
// CHECK:STDOUT: %self.param: %ptr.019 = value_param call_param0
// CHECK:STDOUT: %.loc22_23: type = splice_block %ptr [concrete = constants.%ptr.019] {
// CHECK:STDOUT: %.loc25_23: type = splice_block %ptr [concrete = constants.%ptr.019] {
// CHECK:STDOUT: %Self.ref: type = name_ref Self, constants.%C [concrete = constants.%C]
// CHECK:STDOUT: %ptr: type = ptr_type %Self.ref [concrete = constants.%ptr.019]
// CHECK:STDOUT: }
@@ -198,14 +201,14 @@ fn Call(a: A*, b: B*, c: C*, d: D*) {
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = constants.%C
// CHECK:STDOUT: .B = <poisoned>
// CHECK:STDOUT: .base = %.loc21
// CHECK:STDOUT: .base = %.loc24
// CHECK:STDOUT: .F = %F.decl
// CHECK:STDOUT: extend %B.ref
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: class @D {
// CHECK:STDOUT: %B.ref: type = name_ref B, file.%B.decl [concrete = constants.%B]
// CHECK:STDOUT: %.loc26: %D.elem = base_decl %B.ref, element0 [concrete]
// CHECK:STDOUT: %.loc29: %D.elem = base_decl %B.ref, element0 [concrete]
// CHECK:STDOUT: %struct_type.base: type = struct_type {.base: %B} [concrete = constants.%struct_type.base.0ff]
// CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %struct_type.base [concrete = constants.%complete_type.98e]
// CHECK:STDOUT: complete_type_witness = %complete_type
@@ -213,7 +216,7 @@ fn Call(a: A*, b: B*, c: C*, d: D*) {
// CHECK:STDOUT: !members:
// CHECK:STDOUT: .Self = constants.%D
// CHECK:STDOUT: .B = <poisoned>
// CHECK:STDOUT: .base = %.loc26
// CHECK:STDOUT: .base = %.loc29
// CHECK:STDOUT: .F = <poisoned>
// CHECK:STDOUT: extend %B.ref
// CHECK:STDOUT: }
@@ -227,33 +230,33 @@ fn Call(a: A*, b: B*, c: C*, d: D*) {
// CHECK:STDOUT: fn @Call(%a.param: %ptr.6db, %b.param: %ptr.e79, %c.param: %ptr.019, %d.param: %ptr.19c) {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: %a.ref: %ptr.6db = name_ref a, %a
// CHECK:STDOUT: %.loc30: ref %A = deref %a.ref
// CHECK:STDOUT: %F.ref.loc30: %F.type.649 = name_ref F, @A.%F.decl [concrete = constants.%F.485]
// CHECK:STDOUT: %F.bound.loc30: <bound method> = bound_method %.loc30, %F.ref.loc30
// CHECK:STDOUT: %addr.loc30: %ptr.6db = addr_of %.loc30
// CHECK:STDOUT: %F.call.loc30: init %empty_tuple.type = call %F.bound.loc30(%addr.loc30)
// CHECK:STDOUT: %.loc33: ref %A = deref %a.ref
// CHECK:STDOUT: %F.ref.loc33: %F.type.649 = name_ref F, @A.%F.decl [concrete = constants.%F.485]
// CHECK:STDOUT: %F.bound.loc33: <bound method> = bound_method %.loc33, %F.ref.loc33
// CHECK:STDOUT: %addr.loc33: %ptr.6db = addr_of %.loc33
// CHECK:STDOUT: %F.call.loc33: init %empty_tuple.type = call %F.bound.loc33(%addr.loc33)
// CHECK:STDOUT: %b.ref: %ptr.e79 = name_ref b, %b
// CHECK:STDOUT: %.loc31: ref %B = deref %b.ref
// CHECK:STDOUT: %F.ref.loc31: %F.type.8c6 = name_ref F, @B.%F.decl [concrete = constants.%F.92a]
// CHECK:STDOUT: %F.bound.loc31: <bound method> = bound_method %.loc31, %F.ref.loc31
// CHECK:STDOUT: %addr.loc31: %ptr.e79 = addr_of %.loc31
// CHECK:STDOUT: %F.call.loc31: init %empty_tuple.type = call %F.bound.loc31(%addr.loc31)
// CHECK:STDOUT: %.loc34: ref %B = deref %b.ref
// CHECK:STDOUT: %F.ref.loc34: %F.type.8c6 = name_ref F, @B.%F.decl [concrete = constants.%F.92a]
// CHECK:STDOUT: %F.bound.loc34: <bound method> = bound_method %.loc34, %F.ref.loc34
// CHECK:STDOUT: %addr.loc34: %ptr.e79 = addr_of %.loc34
// CHECK:STDOUT: %F.call.loc34: init %empty_tuple.type = call %F.bound.loc34(%addr.loc34)
// CHECK:STDOUT: %c.ref: %ptr.019 = name_ref c, %c
// CHECK:STDOUT: %.loc32: ref %C = deref %c.ref
// CHECK:STDOUT: %F.ref.loc32: %F.type.c29 = name_ref F, @C.%F.decl [concrete = constants.%F.437]
// CHECK:STDOUT: %F.bound.loc32: <bound method> = bound_method %.loc32, %F.ref.loc32
// CHECK:STDOUT: %addr.loc32: %ptr.019 = addr_of %.loc32
// CHECK:STDOUT: %F.call.loc32: init %empty_tuple.type = call %F.bound.loc32(%addr.loc32)
// CHECK:STDOUT: %.loc35: ref %C = deref %c.ref
// CHECK:STDOUT: %F.ref.loc35: %F.type.c29 = name_ref F, @C.%F.decl [concrete = constants.%F.437]
// CHECK:STDOUT: %F.bound.loc35: <bound method> = bound_method %.loc35, %F.ref.loc35
// CHECK:STDOUT: %addr.loc35: %ptr.019 = addr_of %.loc35
// CHECK:STDOUT: %F.call.loc35: init %empty_tuple.type = call %F.bound.loc35(%addr.loc35)
// CHECK:STDOUT: %d.ref: %ptr.19c = name_ref d, %d
// CHECK:STDOUT: %.loc33_4.1: ref %D = deref %d.ref
// CHECK:STDOUT: %F.ref.loc33: %F.type.8c6 = name_ref F, @B.%F.decl [concrete = constants.%F.92a]
// CHECK:STDOUT: %F.bound.loc33: <bound method> = bound_method %.loc33_4.1, %F.ref.loc33
// CHECK:STDOUT: %addr.loc33_4.1: %ptr.19c = addr_of %.loc33_4.1
// CHECK:STDOUT: %.loc33_4.2: ref %D = deref %addr.loc33_4.1
// CHECK:STDOUT: %.loc33_4.3: ref %B = class_element_access %.loc33_4.2, element0
// CHECK:STDOUT: %addr.loc33_4.2: %ptr.e79 = addr_of %.loc33_4.3
// CHECK:STDOUT: %.loc33_4.4: %ptr.e79 = converted %addr.loc33_4.1, %addr.loc33_4.2
// CHECK:STDOUT: %F.call.loc33: init %empty_tuple.type = call %F.bound.loc33(%.loc33_4.4)
// CHECK:STDOUT: %.loc36_4.1: ref %D = deref %d.ref
// CHECK:STDOUT: %F.ref.loc36: %F.type.8c6 = name_ref F, @B.%F.decl [concrete = constants.%F.92a]
// CHECK:STDOUT: %F.bound.loc36: <bound method> = bound_method %.loc36_4.1, %F.ref.loc36
// CHECK:STDOUT: %addr.loc36_4.1: %ptr.19c = addr_of %.loc36_4.1
// CHECK:STDOUT: %.loc36_4.2: ref %D = deref %addr.loc36_4.1
// CHECK:STDOUT: %.loc36_4.3: ref %B = class_element_access %.loc36_4.2, element0
// CHECK:STDOUT: %addr.loc36_4.2: %ptr.e79 = addr_of %.loc36_4.3
// CHECK:STDOUT: %.loc36_4.4: %ptr.e79 = converted %addr.loc36_4.1, %addr.loc36_4.2
// CHECK:STDOUT: %F.call.loc36: init %empty_tuple.type = call %F.bound.loc36(%.loc36_4.4)
// CHECK:STDOUT: return
// CHECK:STDOUT: }
// CHECK:STDOUT: