@@ -80,31 +80,28 @@ func multiple_closure_refs(var x: Int) -> (() -> Int, () -> Int) {
80
80
// CHECK: return [[RET]]
81
81
}
82
82
83
- /* TODO: Full support for references between local functions
84
- // C/HECK-LABEL: sil hidden @_TF8closures18capture_local_func
83
+ // CHECK-LABEL: sil hidden @_TF8closures18capture_local_func
85
84
func capture_local_func( var x: Int ) -> ( ) -> ( ) -> Int {
86
- // C/HECK : [[XBOX:%[0-9]+]] = alloc_box $Int
85
+ // CHECK : [[XBOX:%[0-9]+]] = alloc_box $Int
87
86
88
87
func aleph( ) -> Int { return x }
89
- // C/HECK: [[ALEPH_REF:%[0-9]+]] = function_ref @[[ALEPH_NAME:_TFF8closures18capture_local_func.*]] : $@convention(thin) (@owned @box Int, @inout Int) -> Int
90
- // C/HECK: [[ALEPH_CLOSURE:%[0-9]+]] = partial_apply [[ALEPH_REF]]([[XBOX]]#0, [[XBOX]]#1)
91
88
92
89
func beth( ) -> ( ) -> Int { return aleph }
93
- // C/HECK : [[BETH_REF:%[0-9]+]] = function_ref @[[BETH_NAME:_TFF8closures18capture_local_func.* ]] : $@convention(thin) (@owned @callee_owned () -> Int) -> @owned @callee_owned () -> Int
94
- // C/HECK : [[BETH_CLOSURE:%[0-9]+]] = partial_apply [[BETH_REF]]([[ALEPH_CLOSURE]] )
90
+ // CHECK : [[BETH_REF:%[0-9]+]] = function_ref @[[BETH_NAME:_TFF8closures18capture_local_funcFSiFT_FT_SiL_4bethfT_FT_Si ]] : $@convention(thin) (@owned @box Int, @inout Int) -> @owned @callee_owned () -> Int
91
+ // CHECK : [[BETH_CLOSURE:%[0-9]+]] = partial_apply [[BETH_REF]]([[XBOX]]#0, [[XBOX]]#1 )
95
92
96
93
return beth
97
- // C/HECK: release [[ALEPH_CLOSURE]]
98
- // C/HECK: release [[XBOX]]#0
99
- // C/HECK: return [[BETH_CLOSURE]]
94
+ // CHECK: release [[XBOX]]#0
95
+ // CHECK: return [[BETH_CLOSURE]]
100
96
}
101
- // C/HECK : sil shared @[[ALEPH_NAME]]
102
- // C/HECK : bb0([[XBOX:%[0-9]+]] : $@box Int, [[XADDR:%[0-9]+]] : $*Int):
97
+ // CHECK : sil shared @[[ALEPH_NAME:_TFF8closures18capture_local_funcFSiFT_FT_SiL_5alephfT_Si ]]
98
+ // CHECK : bb0([[XBOX:%[0-9]+]] : $@box Int, [[XADDR:%[0-9]+]] : $*Int):
103
99
104
- // C/HECK: sil shared @[[BETH_NAME]]
105
- // C/HECK: bb0([[ALEPH:%[0-9]+]] : $@callee_owned () -> Int):
106
- // C/HECK: return [[ALEPH]]
107
- */
100
+ // CHECK: sil shared @[[BETH_NAME]]
101
+ // CHECK: bb0([[XBOX:%[0-9]+]] : $@box Int, [[XADDR:%[0-9]+]] : $*Int):
102
+ // CHECK: [[ALEPH_REF:%[0-9]+]] = function_ref @[[ALEPH_NAME]] : $@convention(thin) (@owned @box Int, @inout Int) -> Int
103
+ // CHECK: [[ALEPH_CLOSURE:%[0-9]+]] = partial_apply [[ALEPH_REF]]([[XBOX]], [[XADDR]])
104
+ // CHECK: return [[ALEPH_CLOSURE]]
108
105
109
106
// CHECK-LABEL: sil hidden @_TF8closures22anon_read_only_capture
110
107
func anon_read_only_capture( var x: Int ) -> Int {
0 commit comments