Skip to content

Commit 38bc924

Browse files
authored
Non-optional XCTUnimplemented placeholder overloads (#29)
Fixes #26.
1 parent ef8e14e commit 38bc924

File tree

3 files changed

+169
-37
lines changed

3 files changed

+169
-37
lines changed
Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,29 @@
1-
# ``XCTestDynamicOverlay/XCTUnimplemented(_:placeholder:file:line:)-l4v2``
1+
# ``XCTestDynamicOverlay/XCTUnimplemented(_:placeholder:)-1ho66``
22

33
## Topics
44

55
### Overloads
66

7-
- ``XCTUnimplemented(_:placeholder:file:line:)-4cefg``
8-
- ``XCTUnimplemented(_:placeholder:file:line:)-50but``
9-
- ``XCTUnimplemented(_:placeholder:file:line:)-2jqzu``
10-
- ``XCTUnimplemented(_:placeholder:file:line:)-9mvva``
11-
- ``XCTUnimplemented(_:placeholder:file:line:)-92nev``
12-
- ``XCTUnimplemented(_:placeholder:file:line:)-6wlpq``
13-
- ``XCTUnimplemented(_:placeholder:file:line:)-97hr8``
14-
- ``XCTUnimplemented(_:placeholder:file:line:)-qhqq``
15-
- ``XCTUnimplemented(_:placeholder:file:line:)-4akkm``
16-
- ``XCTUnimplemented(_:placeholder:file:line:)-5i77i``
17-
- ``XCTUnimplemented(_:placeholder:file:line:)-4xhs3``
7+
- ``XCTUnimplemented(_:placeholder:)-2e3z9``
8+
- ``XCTUnimplemented(_:file:line:)-3d9bq``
9+
- ``XCTUnimplemented(_:placeholder:)-7zq1m``
10+
- ``XCTUnimplemented(_:file:line:)-2v7cw``
11+
- ``XCTUnimplemented(_:file:line:)-5k1u``
12+
- ``XCTUnimplemented(_:placeholder:)-f6km``
13+
- ``XCTUnimplemented(_:file:line:)-9nzey``
14+
- ``XCTUnimplemented(_:placeholder:)-55i4t``
15+
- ``XCTUnimplemented(_:file:line:)-3okct``
16+
- ``XCTUnimplemented(_:placeholder:)-8sn8``
17+
- ``XCTUnimplemented(_:file:line:)-s7bl``
18+
- ``XCTUnimplemented(_:placeholder:)-1nulk``
19+
- ``XCTUnimplemented(_:file:line:)-1x268``
20+
- ``XCTUnimplemented(_:placeholder:)-mbpz``
21+
- ``XCTUnimplemented(_:file:line:)-6qpy4``
22+
- ``XCTUnimplemented(_:placeholder:)-437q7``
23+
- ``XCTUnimplemented(_:file:line:)-8c1gm``
24+
- ``XCTUnimplemented(_:placeholder:)-k1by``
25+
- ``XCTUnimplemented(_:file:line:)-63m0r``
26+
- ``XCTUnimplemented(_:placeholder:)-r87l``
27+
- ``XCTUnimplemented(_:file:line:)-4njow``
28+
- ``XCTUnimplemented(_:placeholder:)-6e4ct``
29+
- ``XCTUnimplemented(_:file:line:)-8w02g``

Sources/XCTestDynamicOverlay/Documentation.docc/XCTestDynamicOverlay.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,5 @@ XCTest Dynamic Overlay provides APIs for invoking XCTest's `XCTFail` directly in
1919

2020
### Unimplemented Dependencies
2121

22-
- ``XCTUnimplemented(_:placeholder:file:line:)-l4v2``
22+
- ``XCTUnimplemented(_:placeholder:)-1ho66``
2323
- ``XCTUnimplemented(_:)-3obl5``

Sources/XCTestDynamicOverlay/XCTUnimplemented.swift

Lines changed: 144 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,24 @@
33
@_disfavoredOverload
44
public func XCTUnimplemented<Result>(
55
_ description: @autoclosure @escaping @Sendable () -> String = "",
6-
placeholder: @autoclosure @escaping @Sendable () -> Result? = nil,
6+
placeholder: @autoclosure @escaping @Sendable () -> Result
7+
) -> @Sendable () -> Result {
8+
return {
9+
_fail(description(), nil)
10+
return placeholder()
11+
}
12+
}
13+
14+
@_disfavoredOverload
15+
public func XCTUnimplemented<Result>(
16+
_ description: @autoclosure @escaping @Sendable () -> String = "",
717
file: StaticString = #file,
818
line: UInt = #line
919
) -> @Sendable () -> Result {
1020
return {
1121
let description = description()
1222
_fail(description, nil)
13-
guard let placeholder = placeholder() ?? _generatePlaceholder()
23+
guard let placeholder: Result = _generatePlaceholder()
1424
else { _unimplementedFatalError(description, file: file, line: line) }
1525
return placeholder
1626
}
@@ -19,14 +29,24 @@ public func XCTUnimplemented<Result>(
1929
@_disfavoredOverload
2030
public func XCTUnimplemented<A, Result>(
2131
_ description: @autoclosure @escaping @Sendable () -> String = "",
22-
placeholder: @autoclosure @escaping @Sendable () -> Result? = nil,
32+
placeholder: @autoclosure @escaping @Sendable () -> Result
33+
) -> @Sendable (A) -> Result {
34+
return {
35+
_fail(description(), $0)
36+
return placeholder()
37+
}
38+
}
39+
40+
@_disfavoredOverload
41+
public func XCTUnimplemented<A, Result>(
42+
_ description: @autoclosure @escaping @Sendable () -> String = "",
2343
file: StaticString = #file,
2444
line: UInt = #line
2545
) -> @Sendable (A) -> Result {
2646
return {
2747
let description = description()
2848
_fail(description, $0)
29-
guard let placeholder = placeholder() ?? _generatePlaceholder()
49+
guard let placeholder: Result = _generatePlaceholder()
3050
else { _unimplementedFatalError(description, file: file, line: line) }
3151
return placeholder
3252
}
@@ -35,14 +55,24 @@ public func XCTUnimplemented<A, Result>(
3555
@_disfavoredOverload
3656
public func XCTUnimplemented<A, B, Result>(
3757
_ description: @autoclosure @escaping @Sendable () -> String = "",
38-
placeholder: @autoclosure @escaping @Sendable () -> Result? = nil,
58+
placeholder: @autoclosure @escaping @Sendable () -> Result
59+
) -> @Sendable (A, B) -> Result {
60+
return {
61+
_fail(description(), ($0, $1))
62+
return placeholder()
63+
}
64+
}
65+
66+
@_disfavoredOverload
67+
public func XCTUnimplemented<A, B, Result>(
68+
_ description: @autoclosure @escaping @Sendable () -> String = "",
3969
file: StaticString = #file,
4070
line: UInt = #line
4171
) -> @Sendable (A, B) -> Result {
4272
return {
4373
let description = description()
4474
_fail(description, ($0, $1))
45-
guard let placeholder = placeholder() ?? _generatePlaceholder()
75+
guard let placeholder: Result = _generatePlaceholder()
4676
else { _unimplementedFatalError(description, file: file, line: line) }
4777
return placeholder
4878
}
@@ -51,14 +81,24 @@ public func XCTUnimplemented<A, B, Result>(
5181
@_disfavoredOverload
5282
public func XCTUnimplemented<A, B, C, Result>(
5383
_ description: @autoclosure @escaping @Sendable () -> String = "",
54-
placeholder: @autoclosure @escaping @Sendable () -> Result? = nil,
84+
placeholder: @autoclosure @escaping @Sendable () -> Result
85+
) -> @Sendable (A, B, C) -> Result {
86+
return {
87+
_fail(description(), ($0, $1, $2))
88+
return placeholder()
89+
}
90+
}
91+
92+
@_disfavoredOverload
93+
public func XCTUnimplemented<A, B, C, Result>(
94+
_ description: @autoclosure @escaping @Sendable () -> String = "",
5595
file: StaticString = #file,
5696
line: UInt = #line
5797
) -> @Sendable (A, B, C) -> Result {
5898
return {
5999
let description = description()
60100
_fail(description, ($0, $1, $2))
61-
guard let placeholder = placeholder() ?? _generatePlaceholder()
101+
guard let placeholder: Result = _generatePlaceholder()
62102
else { _unimplementedFatalError(description, file: file, line: line) }
63103
return placeholder
64104
}
@@ -67,14 +107,24 @@ public func XCTUnimplemented<A, B, C, Result>(
67107
@_disfavoredOverload
68108
public func XCTUnimplemented<A, B, C, D, Result>(
69109
_ description: @autoclosure @escaping @Sendable () -> String = "",
70-
placeholder: @autoclosure @escaping @Sendable () -> Result? = nil,
110+
placeholder: @autoclosure @escaping @Sendable () -> Result
111+
) -> @Sendable (A, B, C, D) -> Result {
112+
return {
113+
_fail(description(), ($0, $1, $2, $3))
114+
return placeholder()
115+
}
116+
}
117+
118+
@_disfavoredOverload
119+
public func XCTUnimplemented<A, B, C, D, Result>(
120+
_ description: @autoclosure @escaping @Sendable () -> String = "",
71121
file: StaticString = #file,
72122
line: UInt = #line
73123
) -> @Sendable (A, B, C, D) -> Result {
74124
return {
75125
let description = description()
76126
_fail(description, ($0, $1, $2, $3))
77-
guard let placeholder = placeholder() ?? _generatePlaceholder()
127+
guard let placeholder: Result = _generatePlaceholder()
78128
else { _unimplementedFatalError(description, file: file, line: line) }
79129
return placeholder
80130
}
@@ -83,14 +133,24 @@ public func XCTUnimplemented<A, B, C, D, Result>(
83133
@_disfavoredOverload
84134
public func XCTUnimplemented<A, B, C, D, E, Result>(
85135
_ description: @autoclosure @escaping @Sendable () -> String = "",
86-
placeholder: @autoclosure @escaping @Sendable () -> Result? = nil,
136+
placeholder: @autoclosure @escaping @Sendable () -> Result
137+
) -> @Sendable (A, B, C, D, E) -> Result {
138+
return {
139+
_fail(description(), ($0, $1, $2, $3, $4))
140+
return placeholder()
141+
}
142+
}
143+
144+
@_disfavoredOverload
145+
public func XCTUnimplemented<A, B, C, D, E, Result>(
146+
_ description: @autoclosure @escaping @Sendable () -> String = "",
87147
file: StaticString = #file,
88148
line: UInt = #line
89149
) -> @Sendable (A, B, C, D, E) -> Result {
90150
return {
91151
let description = description()
92152
_fail(description, ($0, $1, $2, $3, $4))
93-
guard let placeholder = placeholder() ?? _generatePlaceholder()
153+
guard let placeholder: Result = _generatePlaceholder()
94154
else { _unimplementedFatalError(description, file: file, line: line) }
95155
return placeholder
96156
}
@@ -163,14 +223,24 @@ public func XCTUnimplemented<A, B, C, D, E, Result>(
163223
@_disfavoredOverload
164224
public func XCTUnimplemented<Result>(
165225
_ description: @autoclosure @escaping @Sendable () -> String = "",
166-
placeholder: @autoclosure @escaping @Sendable () -> Result? = nil,
226+
placeholder: @autoclosure @escaping @Sendable () -> Result
227+
) -> @Sendable () async -> Result {
228+
return {
229+
_fail(description(), nil)
230+
return placeholder()
231+
}
232+
}
233+
234+
@_disfavoredOverload
235+
public func XCTUnimplemented<Result>(
236+
_ description: @autoclosure @escaping @Sendable () -> String = "",
167237
file: StaticString = #file,
168238
line: UInt = #line
169239
) -> @Sendable () async -> Result {
170240
return {
171241
let description = description()
172242
_fail(description, nil)
173-
guard let placeholder = placeholder() ?? _generatePlaceholder()
243+
guard let placeholder: Result = _generatePlaceholder()
174244
else { _unimplementedFatalError(description, file: file, line: line) }
175245
return placeholder
176246
}
@@ -188,14 +258,24 @@ public func XCTUnimplemented<Result>(
188258
@_disfavoredOverload
189259
public func XCTUnimplemented<A, Result>(
190260
_ description: @autoclosure @escaping @Sendable () -> String = "",
191-
placeholder: @autoclosure @escaping @Sendable () -> Result? = nil,
261+
placeholder: @autoclosure @escaping @Sendable () -> Result
262+
) -> @Sendable (A) async -> Result {
263+
return {
264+
_fail(description(), $0)
265+
return placeholder()
266+
}
267+
}
268+
269+
@_disfavoredOverload
270+
public func XCTUnimplemented<A, Result>(
271+
_ description: @autoclosure @escaping @Sendable () -> String = "",
192272
file: StaticString = #file,
193273
line: UInt = #line
194274
) -> @Sendable (A) async -> Result {
195275
return {
196276
let description = description()
197277
_fail(description, $0)
198-
guard let placeholder = placeholder() ?? _generatePlaceholder()
278+
guard let placeholder: Result = _generatePlaceholder()
199279
else { _unimplementedFatalError(description, file: file, line: line) }
200280
return placeholder
201281
}
@@ -204,14 +284,24 @@ public func XCTUnimplemented<A, Result>(
204284
@_disfavoredOverload
205285
public func XCTUnimplemented<A, B, Result>(
206286
_ description: @autoclosure @escaping @Sendable () -> String = "",
207-
placeholder: @autoclosure @escaping @Sendable () -> Result? = nil,
287+
placeholder: @autoclosure @escaping @Sendable () -> Result
288+
) -> @Sendable (A, B) async -> Result {
289+
return {
290+
_fail(description(), ($0, $1))
291+
return placeholder()
292+
}
293+
}
294+
295+
@_disfavoredOverload
296+
public func XCTUnimplemented<A, B, Result>(
297+
_ description: @autoclosure @escaping @Sendable () -> String = "",
208298
file: StaticString = #file,
209299
line: UInt = #line
210300
) -> @Sendable (A, B) async -> Result {
211301
return {
212302
let description = description()
213303
_fail(description, ($0, $1))
214-
guard let placeholder = placeholder() ?? _generatePlaceholder()
304+
guard let placeholder: Result = _generatePlaceholder()
215305
else { _unimplementedFatalError(description, file: file, line: line) }
216306
return placeholder
217307
}
@@ -220,14 +310,24 @@ public func XCTUnimplemented<A, B, Result>(
220310
@_disfavoredOverload
221311
public func XCTUnimplemented<A, B, C, Result>(
222312
_ description: @autoclosure @escaping @Sendable () -> String = "",
223-
placeholder: @autoclosure @escaping @Sendable () -> Result? = nil,
313+
placeholder: @autoclosure @escaping @Sendable () -> Result
314+
) -> @Sendable (A, B, C) async -> Result {
315+
return {
316+
_fail(description(), ($0, $1, $2))
317+
return placeholder()
318+
}
319+
}
320+
321+
@_disfavoredOverload
322+
public func XCTUnimplemented<A, B, C, Result>(
323+
_ description: @autoclosure @escaping @Sendable () -> String = "",
224324
file: StaticString = #file,
225325
line: UInt = #line
226326
) -> @Sendable (A, B, C) async -> Result {
227327
return {
228328
let description = description()
229329
_fail(description, ($0, $1, $2))
230-
guard let placeholder = placeholder() ?? _generatePlaceholder()
330+
guard let placeholder: Result = _generatePlaceholder()
231331
else { _unimplementedFatalError(description, file: file, line: line) }
232332
return placeholder
233333
}
@@ -236,14 +336,24 @@ public func XCTUnimplemented<A, B, C, Result>(
236336
@_disfavoredOverload
237337
public func XCTUnimplemented<A, B, C, D, Result>(
238338
_ description: @autoclosure @escaping @Sendable () -> String = "",
239-
placeholder: @autoclosure @escaping @Sendable () -> Result? = nil,
339+
placeholder: @autoclosure @escaping @Sendable () -> Result
340+
) -> @Sendable (A, B, C, D) async -> Result {
341+
return {
342+
_fail(description(), ($0, $1, $2, $3))
343+
return placeholder()
344+
}
345+
}
346+
347+
@_disfavoredOverload
348+
public func XCTUnimplemented<A, B, C, D, Result>(
349+
_ description: @autoclosure @escaping @Sendable () -> String = "",
240350
file: StaticString = #file,
241351
line: UInt = #line
242352
) -> @Sendable (A, B, C, D) async -> Result {
243353
return {
244354
let description = description()
245355
_fail(description, ($0, $1, $2, $3))
246-
guard let placeholder = placeholder() ?? _generatePlaceholder()
356+
guard let placeholder: Result = _generatePlaceholder()
247357
else { _unimplementedFatalError(description, file: file, line: line) }
248358
return placeholder
249359
}
@@ -252,14 +362,24 @@ public func XCTUnimplemented<A, B, C, D, Result>(
252362
@_disfavoredOverload
253363
public func XCTUnimplemented<A, B, C, D, E, Result>(
254364
_ description: @autoclosure @escaping @Sendable () -> String = "",
255-
placeholder: @autoclosure @escaping @Sendable () -> Result? = nil,
365+
placeholder: @autoclosure @escaping @Sendable () -> Result
366+
) -> @Sendable (A, B, C, D, E) async -> Result {
367+
return {
368+
_fail(description(), ($0, $1, $2, $3, $4))
369+
return placeholder()
370+
}
371+
}
372+
373+
@_disfavoredOverload
374+
public func XCTUnimplemented<A, B, C, D, E, Result>(
375+
_ description: @autoclosure @escaping @Sendable () -> String = "",
256376
file: StaticString = #file,
257377
line: UInt = #line
258378
) -> @Sendable (A, B, C, D, E) async -> Result {
259379
return {
260380
let description = description()
261381
_fail(description, ($0, $1, $2, $3, $4))
262-
guard let placeholder = placeholder() ?? _generatePlaceholder()
382+
guard let placeholder: Result = _generatePlaceholder()
263383
else { _unimplementedFatalError(description, file: file, line: line) }
264384
return placeholder
265385
}

0 commit comments

Comments
 (0)