@@ -51,6 +51,7 @@ private func assertNameMatcherResult(
5151 case . noArguments: argumentLabels = [ ]
5252 case . call( let labels, _) : argumentLabels = labels
5353 case . parameters( let labels) : argumentLabels = labels
54+ case . enumCaseParameters( let labels) : argumentLabels = labels
5455 case . noncollapsibleParameters( let labels) : argumentLabels = labels
5556 case . selector( let labels) : argumentLabels = labels
5657 }
@@ -75,6 +76,7 @@ private struct DeclNameLocationSpec {
7576 case noArguments
7677 case call
7778 case parameters
79+ case enumCaseParameters
7880 case noncollapsibleParameters
7981 case selector
8082
@@ -83,6 +85,7 @@ private struct DeclNameLocationSpec {
8385 case . noArguments: self = . noArguments
8486 case . call: self = . call
8587 case . parameters: self = . parameters
88+ case . enumCaseParameters: self = . enumCaseParameters
8689 case . noncollapsibleParameters: self = . noncollapsibleParameters
8790 case . selector: self = . selector
8891 }
@@ -326,4 +329,56 @@ class NameMatcherTests: XCTestCase {
326329 ]
327330 )
328331 }
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+ }
329384}
0 commit comments