Skip to content

Commit 636d194

Browse files
committed
SILGen: This test passes nowadays
Swift SVN r32159
1 parent a0609ae commit 636d194

File tree

1 file changed

+13
-16
lines changed

1 file changed

+13
-16
lines changed

test/SILGen/closures.swift

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -80,31 +80,28 @@ func multiple_closure_refs(var x: Int) -> (() -> Int, () -> Int) {
8080
// CHECK: return [[RET]]
8181
}
8282

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
8584
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
8786

8887
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)
9188

9289
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)
9592

9693
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]]
10096
}
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):
10399

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]]
108105

109106
// CHECK-LABEL: sil hidden @_TF8closures22anon_read_only_capture
110107
func anon_read_only_capture(var x: Int) -> Int {

0 commit comments

Comments
 (0)