@@ -47,24 +47,26 @@ public final class UseShorthandTypeNames: SyntaxFormatRule {
47
47
48
48
switch node. name. text {
49
49
case " Array " :
50
- guard let typeArgument = genericArgumentList. firstAndOnly else {
50
+ guard case . type ( let typeArgument) = genericArgumentList. firstAndOnly? . argument else {
51
51
newNode = nil
52
52
break
53
53
}
54
54
newNode = shorthandArrayType (
55
- element: typeArgument. argument ,
55
+ element: typeArgument,
56
56
leadingTrivia: leadingTrivia,
57
57
trailingTrivia: trailingTrivia
58
58
)
59
59
60
60
case " Dictionary " :
61
- guard let typeArguments = exactlyTwoChildren ( of: genericArgumentList) else {
61
+ guard let arguments = exactlyTwoChildren ( of: genericArgumentList) ,
62
+ case ( . type( let type0Argument) , . type( let type1Argument) ) = ( arguments. 0 . argument, arguments. 1 . argument)
63
+ else {
62
64
newNode = nil
63
65
break
64
66
}
65
67
newNode = shorthandDictionaryType (
66
- key: typeArguments . 0 . argument ,
67
- value: typeArguments . 1 . argument ,
68
+ key: type0Argument ,
69
+ value: type1Argument ,
68
70
leadingTrivia: leadingTrivia,
69
71
trailingTrivia: trailingTrivia
70
72
)
@@ -74,12 +76,12 @@ public final class UseShorthandTypeNames: SyntaxFormatRule {
74
76
newNode = nil
75
77
break
76
78
}
77
- guard let typeArgument = genericArgumentList. firstAndOnly else {
79
+ guard case . type ( let typeArgument) = genericArgumentList. firstAndOnly? . argument else {
78
80
newNode = nil
79
81
break
80
82
}
81
83
newNode = shorthandOptionalType (
82
- wrapping: typeArgument. argument ,
84
+ wrapping: typeArgument,
83
85
leadingTrivia: leadingTrivia,
84
86
trailingTrivia: trailingTrivia
85
87
)
@@ -137,38 +139,40 @@ public final class UseShorthandTypeNames: SyntaxFormatRule {
137
139
138
140
switch expression. baseName. text {
139
141
case " Array " :
140
- guard let typeArgument = genericArgumentList. firstAndOnly else {
142
+ guard case . type ( let typeArgument) = genericArgumentList. firstAndOnly? . argument else {
141
143
newNode = nil
142
144
break
143
145
}
144
146
let arrayTypeExpr = makeArrayTypeExpression (
145
- elementType: typeArgument. argument ,
147
+ elementType: typeArgument,
146
148
leftSquare: TokenSyntax . leftSquareToken ( leadingTrivia: leadingTrivia) ,
147
149
rightSquare: TokenSyntax . rightSquareToken ( trailingTrivia: trailingTrivia)
148
150
)
149
151
newNode = ExprSyntax ( arrayTypeExpr)
150
152
151
153
case " Dictionary " :
152
- guard let typeArguments = exactlyTwoChildren ( of: genericArgumentList) else {
154
+ guard let arguments = exactlyTwoChildren ( of: genericArgumentList) ,
155
+ case ( . type( let type0Argument) , . type( let type1Argument) ) = ( arguments. 0 . argument, arguments. 1 . argument)
156
+ else {
153
157
newNode = nil
154
158
break
155
159
}
156
160
let dictTypeExpr = makeDictionaryTypeExpression (
157
- keyType: typeArguments . 0 . argument ,
158
- valueType: typeArguments . 1 . argument ,
161
+ keyType: type0Argument ,
162
+ valueType: type1Argument ,
159
163
leftSquare: TokenSyntax . leftSquareToken ( leadingTrivia: leadingTrivia) ,
160
164
colon: TokenSyntax . colonToken ( trailingTrivia: . spaces( 1 ) ) ,
161
165
rightSquare: TokenSyntax . rightSquareToken ( trailingTrivia: trailingTrivia)
162
166
)
163
167
newNode = ExprSyntax ( dictTypeExpr)
164
168
165
169
case " Optional " :
166
- guard let typeArgument = genericArgumentList. firstAndOnly else {
170
+ guard case . type ( let typeArgument) = genericArgumentList. firstAndOnly? . argument else {
167
171
newNode = nil
168
172
break
169
173
}
170
174
let optionalTypeExpr = makeOptionalTypeExpression (
171
- wrapping: typeArgument. argument ,
175
+ wrapping: typeArgument,
172
176
leadingTrivia: leadingTrivia,
173
177
questionMark: TokenSyntax . postfixQuestionMarkToken ( trailingTrivia: trailingTrivia)
174
178
)
0 commit comments