Skip to content

Commit d82d736

Browse files
Azoyahoppen
authored andcommitted
Prepare for integer generics with new generic argument node
1 parent e671366 commit d82d736

File tree

1 file changed

+23
-14
lines changed

1 file changed

+23
-14
lines changed

Sources/SwiftFormat/Rules/UseShorthandTypeNames.swift

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -47,24 +47,28 @@ public final class UseShorthandTypeNames: SyntaxFormatRule {
4747

4848
switch node.name.text {
4949
case "Array":
50-
guard let typeArgument = genericArgumentList.firstAndOnly else {
50+
guard let argument = genericArgumentList.firstAndOnly,
51+
case .type(let typeArgument) = argument else {
5152
newNode = nil
5253
break
5354
}
55+
5456
newNode = shorthandArrayType(
55-
element: typeArgument.argument,
57+
element: typeArgument,
5658
leadingTrivia: leadingTrivia,
5759
trailingTrivia: trailingTrivia
5860
)
5961

6062
case "Dictionary":
61-
guard let typeArguments = exactlyTwoChildren(of: genericArgumentList) else {
63+
guard let arguments = exactlyTwoChildren(of: genericArgumentList),
64+
case .type(let type0Argument) = arguments.0.argument,
65+
caes .type(let type1Argument) = arguments.1.argument else {
6266
newNode = nil
6367
break
6468
}
6569
newNode = shorthandDictionaryType(
66-
key: typeArguments.0.argument,
67-
value: typeArguments.1.argument,
70+
key: type0Argument,
71+
value: type1Argument,
6872
leadingTrivia: leadingTrivia,
6973
trailingTrivia: trailingTrivia
7074
)
@@ -74,12 +78,13 @@ public final class UseShorthandTypeNames: SyntaxFormatRule {
7478
newNode = nil
7579
break
7680
}
77-
guard let typeArgument = genericArgumentList.firstAndOnly else {
81+
guard let argument = genericArgumentList.firstAndOnly,
82+
case .type(let typeArgument) = argument else {
7883
newNode = nil
7984
break
8085
}
8186
newNode = shorthandOptionalType(
82-
wrapping: typeArgument.argument,
87+
wrapping: typeArgument,
8388
leadingTrivia: leadingTrivia,
8489
trailingTrivia: trailingTrivia
8590
)
@@ -137,38 +142,42 @@ public final class UseShorthandTypeNames: SyntaxFormatRule {
137142

138143
switch expression.baseName.text {
139144
case "Array":
140-
guard let typeArgument = genericArgumentList.firstAndOnly else {
145+
guard let argument = genericArgumentList.firstAndOnly,
146+
case .type(let typeArgument) = argument else {
141147
newNode = nil
142148
break
143149
}
144150
let arrayTypeExpr = makeArrayTypeExpression(
145-
elementType: typeArgument.argument,
151+
elementType: typeArgument,
146152
leftSquare: TokenSyntax.leftSquareToken(leadingTrivia: leadingTrivia),
147153
rightSquare: TokenSyntax.rightSquareToken(trailingTrivia: trailingTrivia)
148154
)
149155
newNode = ExprSyntax(arrayTypeExpr)
150156

151157
case "Dictionary":
152-
guard let typeArguments = exactlyTwoChildren(of: genericArgumentList) else {
158+
guard let arguments = exactlyTwoChildren(of: genericArgumentList),
159+
case .type(let type0Argument) = arguments.0.argument,
160+
case .type(let type1Argument) = arguments.1.argument else {
153161
newNode = nil
154162
break
155163
}
156164
let dictTypeExpr = makeDictionaryTypeExpression(
157-
keyType: typeArguments.0.argument,
158-
valueType: typeArguments.1.argument,
165+
keyType: type0Argument,
166+
valueType: type1Argument,
159167
leftSquare: TokenSyntax.leftSquareToken(leadingTrivia: leadingTrivia),
160168
colon: TokenSyntax.colonToken(trailingTrivia: .spaces(1)),
161169
rightSquare: TokenSyntax.rightSquareToken(trailingTrivia: trailingTrivia)
162170
)
163171
newNode = ExprSyntax(dictTypeExpr)
164172

165173
case "Optional":
166-
guard let typeArgument = genericArgumentList.firstAndOnly else {
174+
guard let argument = genericArgumentList.firstAndOnly,
175+
case .type(let typeArgument) = argument else {
167176
newNode = nil
168177
break
169178
}
170179
let optionalTypeExpr = makeOptionalTypeExpression(
171-
wrapping: typeArgument.argument,
180+
wrapping: typeArgument,
172181
leadingTrivia: leadingTrivia,
173182
questionMark: TokenSyntax.postfixQuestionMarkToken(trailingTrivia: trailingTrivia)
174183
)

0 commit comments

Comments
 (0)