mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 22:02:55 +01:00
Reverse nesting structure of parameter patterns (#6930)
See [here](https://docs.google.com/document/d/1rWcueFwIfZox6GKVGxiUG4cBzjrZ6djXiIDGyJDtrE4/edit?tab=t.0#heading=h.7mi143mdhr2h) for an overview of the changes and their rationale. Assisted-by: Gemini 3.1 Pro via Antigravity
This commit is contained in:
@@ -146,10 +146,10 @@ fn F() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generated {
|
||||
// CHECK:STDOUT: %initializer_list.initializer_list.decl.2bdc3e.1: %initializer_list.initializer_list.type.9fcb7f.1 = fn_decl @initializer_list.initializer_list.loc8 [concrete = constants.%initializer_list.initializer_list.643507.1] {
|
||||
// CHECK:STDOUT: %_.patt: %pattern_type.5d8 = value_binding_pattern _ [concrete]
|
||||
// CHECK:STDOUT: %_.param_patt: %pattern_type.5d8 = value_param_pattern %_.patt [concrete]
|
||||
// CHECK:STDOUT: %return.patt: %pattern_type.22f = return_slot_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: %pattern_type.22f = out_param_pattern %return.patt [concrete]
|
||||
// CHECK:STDOUT: %_.param_patt: %pattern_type.5d8 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %_.patt: %pattern_type.5d8 = at_binding_pattern _, %_.param_patt [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: %pattern_type.22f = out_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.patt: %pattern_type.22f = return_slot_pattern %return.param_patt, constants.%initializer_list [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %.loc8: Core.Form = init_form constants.%initializer_list [concrete = constants.%.b61]
|
||||
// CHECK:STDOUT: %_.param: %array_type = value_param call_param0
|
||||
@@ -158,10 +158,10 @@ fn F() {
|
||||
// CHECK:STDOUT: %return: ref %initializer_list = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %initializer_list.initializer_list.decl.2bdc3e.2: %initializer_list.initializer_list.type.9fcb7f.2 = fn_decl @initializer_list.initializer_list.loc10 [concrete = constants.%initializer_list.initializer_list.643507.2] {
|
||||
// CHECK:STDOUT: %_.patt: %pattern_type.5d8 = value_binding_pattern _ [concrete]
|
||||
// CHECK:STDOUT: %_.param_patt: %pattern_type.5d8 = value_param_pattern %_.patt [concrete]
|
||||
// CHECK:STDOUT: %return.patt: %pattern_type.22f = return_slot_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: %pattern_type.22f = out_param_pattern %return.patt [concrete]
|
||||
// CHECK:STDOUT: %_.param_patt: %pattern_type.5d8 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %_.patt: %pattern_type.5d8 = at_binding_pattern _, %_.param_patt [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: %pattern_type.22f = out_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.patt: %pattern_type.22f = return_slot_pattern %return.param_patt, constants.%initializer_list [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %.loc10: Core.Form = init_form constants.%initializer_list [concrete = constants.%.b61]
|
||||
// CHECK:STDOUT: %_.param: %array_type = value_param call_param0
|
||||
@@ -170,10 +170,10 @@ fn F() {
|
||||
// CHECK:STDOUT: %return: ref %initializer_list = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %initializer_list.initializer_list.decl.2bdc3e.3: %initializer_list.initializer_list.type.9fcb7f.3 = fn_decl @initializer_list.initializer_list.loc12 [concrete = constants.%initializer_list.initializer_list.643507.3] {
|
||||
// CHECK:STDOUT: %_.patt: %pattern_type.5d8 = value_binding_pattern _ [concrete]
|
||||
// CHECK:STDOUT: %_.param_patt: %pattern_type.5d8 = value_param_pattern %_.patt [concrete]
|
||||
// CHECK:STDOUT: %return.patt: %pattern_type.22f = return_slot_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: %pattern_type.22f = out_param_pattern %return.patt [concrete]
|
||||
// CHECK:STDOUT: %_.param_patt: %pattern_type.5d8 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %_.patt: %pattern_type.5d8 = at_binding_pattern _, %_.param_patt [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: %pattern_type.22f = out_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.patt: %pattern_type.22f = return_slot_pattern %return.param_patt, constants.%initializer_list [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %.loc12: Core.Form = init_form constants.%initializer_list [concrete = constants.%.b61]
|
||||
// CHECK:STDOUT: %_.param: %array_type = value_param call_param0
|
||||
|
||||
@@ -125,8 +125,8 @@ fn StarstWith(a: str, b: str) -> bool {
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {}
|
||||
// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {
|
||||
// CHECK:STDOUT: %return.patt: %pattern_type.461 = return_slot_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: %pattern_type.461 = out_param_pattern %return.patt [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: %pattern_type.461 = out_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.patt: %pattern_type.461 = return_slot_pattern %return.param_patt, %str [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %str: type = type_literal constants.%str.ee0 [concrete = constants.%str.ee0]
|
||||
// CHECK:STDOUT: %.loc13_11.2: Core.Form = init_form %str [concrete = constants.%.b6b]
|
||||
@@ -194,12 +194,12 @@ fn StarstWith(a: str, b: str) -> bool {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: %StarstWith.decl: %StarstWith.type = fn_decl @StarstWith [concrete = constants.%StarstWith] {
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type.461 = value_binding_pattern a [concrete]
|
||||
// CHECK:STDOUT: %a.param_patt: %pattern_type.461 = value_param_pattern %a.patt [concrete]
|
||||
// CHECK:STDOUT: %b.patt: %pattern_type.461 = value_binding_pattern b [concrete]
|
||||
// CHECK:STDOUT: %b.param_patt: %pattern_type.461 = value_param_pattern %b.patt [concrete]
|
||||
// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt [concrete]
|
||||
// CHECK:STDOUT: %a.param_patt: %pattern_type.461 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %a.patt: %pattern_type.461 = at_binding_pattern a, %a.param_patt [concrete]
|
||||
// CHECK:STDOUT: %b.param_patt: %pattern_type.461 = value_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %b.patt: %pattern_type.461 = at_binding_pattern b, %b.param_patt [concrete]
|
||||
// CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern [concrete]
|
||||
// CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern %return.param_patt, %.loc7_34.1 [concrete]
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %.loc7_34.1: type = type_literal bool [concrete = bool]
|
||||
// CHECK:STDOUT: %.loc7_34.2: Core.Form = init_form %.loc7_34.1 [concrete = constants.%.f34]
|
||||
|
||||
Reference in New Issue
Block a user