@@ -51,6 +51,7 @@ private func assertNameMatcherResult(
51
51
case . noArguments: argumentLabels = [ ]
52
52
case . call( let labels, _) : argumentLabels = labels
53
53
case . parameters( let labels) : argumentLabels = labels
54
+ case . enumCaseParameters( let labels) : argumentLabels = labels
54
55
case . noncollapsibleParameters( let labels) : argumentLabels = labels
55
56
case . selector( let labels) : argumentLabels = labels
56
57
}
@@ -75,6 +76,7 @@ private struct DeclNameLocationSpec {
75
76
case noArguments
76
77
case call
77
78
case parameters
79
+ case enumCaseParameters
78
80
case noncollapsibleParameters
79
81
case selector
80
82
@@ -83,6 +85,7 @@ private struct DeclNameLocationSpec {
83
85
case . noArguments: self = . noArguments
84
86
case . call: self = . call
85
87
case . parameters: self = . parameters
88
+ case . enumCaseParameters: self = . enumCaseParameters
86
89
case . noncollapsibleParameters: self = . noncollapsibleParameters
87
90
case . selector: self = . selector
88
91
}
@@ -326,4 +329,56 @@ class NameMatcherTests: XCTestCase {
326
329
]
327
330
)
328
331
}
332
+
333
+ func testEnumCaseParameterWithLabels( ) {
334
+ assertNameMatcherResult (
335
+ """
336
+ enum MyEnum {
337
+ case 1️⃣myCase(label: String)
338
+ }
339
+ """ ,
340
+ expected: [
341
+ DeclNameLocationSpec ( baseName: " myCase " , argumentLabels: [ " label " ] , type: . enumCaseParameters)
342
+ ]
343
+ )
344
+ }
345
+
346
+ func testEnumCaseParameterWithoutLabels( ) {
347
+ assertNameMatcherResult (
348
+ """
349
+ enum MyEnum {
350
+ case 1️⃣myCase(String)
351
+ }
352
+ """ ,
353
+ expected: [
354
+ DeclNameLocationSpec ( baseName: " myCase " , argumentLabels: [ " " ] , type: . enumCaseParameters)
355
+ ]
356
+ )
357
+ }
358
+
359
+ func testEnumCaseParameterWithoutAssociatedValues( ) {
360
+ assertNameMatcherResult (
361
+ """
362
+ enum MyEnum {
363
+ case 1️⃣myCase
364
+ }
365
+ """ ,
366
+ expected: [
367
+ DeclNameLocationSpec ( baseName: " myCase " , argumentLabels: [ ] , type: . noArguments)
368
+ ]
369
+ )
370
+ }
371
+
372
+ func testEnumCaseParameterWithoutWildcardAsExternalLabel( ) {
373
+ assertNameMatcherResult (
374
+ """
375
+ enum MyEnum {
376
+ case 1️⃣myCase(_ label: String)
377
+ }
378
+ """ ,
379
+ expected: [
380
+ DeclNameLocationSpec ( baseName: " myCase " , argumentLabels: [ " _ label " ] , type: . enumCaseParameters)
381
+ ]
382
+ )
383
+ }
329
384
}
0 commit comments