@@ -23,134 +23,134 @@ fileprivate final class AddModifierRewriter: SyntaxRewriter {
23
23
override func visit( _ node: VariableDeclSyntax ) -> DeclSyntax {
24
24
// Check for modifiers, and, if none, insert the modifier and relocate trivia from the displaced
25
25
// token.
26
- guard let modifiers = node. modifiers else {
27
- let nodeWithModifier = node. addModifier ( modifierKeyword)
26
+ guard var modifiers = node. modifiers else {
27
+ let nodeWithModifier = node. with ( \ . modifiers , . init ( [ modifierKeyword] ) )
28
28
let result = nodeByRelocatingTrivia ( in: nodeWithModifier) { $0. modifiers }
29
29
return DeclSyntax ( result)
30
30
}
31
31
// If variable already has an accessor keyword, skip (do not overwrite)
32
32
guard modifiers. accessLevelModifier == nil else { return DeclSyntax ( node) }
33
33
34
34
// Put accessor keyword before the first modifier keyword in the declaration
35
- let newModifiers = modifiers. prepend ( modifier : modifierKeyword )
36
- return DeclSyntax ( node. with ( \. modifiers, newModifiers ) )
35
+ modifiers. triviaPreservingInsert ( modifierKeyword , at : modifiers . startIndex )
36
+ return DeclSyntax ( node. with ( \. modifiers, modifiers ) )
37
37
}
38
38
39
39
override func visit( _ node: FunctionDeclSyntax ) -> DeclSyntax {
40
40
// Check for modifiers, and, if none, insert the modifier and relocate trivia from the displaced
41
41
// token.
42
- guard let modifiers = node. modifiers else {
43
- let nodeWithModifier = node. addModifier ( modifierKeyword)
42
+ guard var modifiers = node. modifiers else {
43
+ let nodeWithModifier = node. with ( \ . modifiers , . init ( [ modifierKeyword] ) )
44
44
let result = nodeByRelocatingTrivia ( in: nodeWithModifier) { $0. modifiers }
45
45
return DeclSyntax ( result)
46
46
}
47
47
guard modifiers. accessLevelModifier == nil else { return DeclSyntax ( node) }
48
- let newModifiers = modifiers. prepend ( modifier : modifierKeyword )
49
- return DeclSyntax ( node. with ( \. modifiers, newModifiers ) )
48
+ modifiers. triviaPreservingInsert ( modifierKeyword , at : modifiers . startIndex )
49
+ return DeclSyntax ( node. with ( \. modifiers, modifiers ) )
50
50
}
51
51
52
52
override func visit( _ node: AssociatedTypeDeclSyntax ) -> DeclSyntax {
53
53
// Check for modifiers, and, if none, insert the modifier and relocate trivia from the displaced
54
54
// token.
55
- guard let modifiers = node. modifiers else {
56
- let nodeWithModifier = node. addModifier ( modifierKeyword)
55
+ guard var modifiers = node. modifiers else {
56
+ let nodeWithModifier = node. with ( \ . modifiers , . init ( [ modifierKeyword] ) )
57
57
let result = nodeByRelocatingTrivia ( in: nodeWithModifier) { $0. modifiers }
58
58
return DeclSyntax ( result)
59
59
}
60
60
guard modifiers. accessLevelModifier == nil else { return DeclSyntax ( node) }
61
- let newModifiers = modifiers. prepend ( modifier : modifierKeyword )
62
- return DeclSyntax ( node. with ( \. modifiers, newModifiers ) )
61
+ modifiers. triviaPreservingInsert ( modifierKeyword , at : modifiers . startIndex )
62
+ return DeclSyntax ( node. with ( \. modifiers, modifiers ) )
63
63
}
64
64
65
65
override func visit( _ node: ClassDeclSyntax ) -> DeclSyntax {
66
66
// Check for modifiers, and, if none, insert the modifier and relocate trivia from the displaced
67
67
// token.
68
- guard let modifiers = node. modifiers else {
69
- let nodeWithModifier = node. addModifier ( modifierKeyword)
68
+ guard var modifiers = node. modifiers else {
69
+ let nodeWithModifier = node. with ( \ . modifiers , . init ( [ modifierKeyword] ) )
70
70
let result = nodeByRelocatingTrivia ( in: nodeWithModifier) { $0. modifiers }
71
71
return DeclSyntax ( result)
72
72
}
73
73
guard modifiers. accessLevelModifier == nil else { return DeclSyntax ( node) }
74
- let newModifiers = modifiers. prepend ( modifier : modifierKeyword )
75
- return DeclSyntax ( node. with ( \. modifiers, newModifiers ) )
74
+ modifiers. triviaPreservingInsert ( modifierKeyword , at : modifiers . startIndex )
75
+ return DeclSyntax ( node. with ( \. modifiers, modifiers ) )
76
76
}
77
77
78
78
override func visit( _ node: EnumDeclSyntax ) -> DeclSyntax {
79
79
// Check for modifiers, and, if none, insert the modifier and relocate trivia from the displaced
80
80
// token.
81
- guard let modifiers = node. modifiers else {
82
- let nodeWithModifier = node. addModifier ( modifierKeyword)
81
+ guard var modifiers = node. modifiers else {
82
+ let nodeWithModifier = node. with ( \ . modifiers , . init ( [ modifierKeyword] ) )
83
83
let result = nodeByRelocatingTrivia ( in: nodeWithModifier) { $0. modifiers }
84
84
return DeclSyntax ( result)
85
85
}
86
86
guard modifiers. accessLevelModifier == nil else { return DeclSyntax ( node) }
87
- let newModifiers = modifiers. prepend ( modifier : modifierKeyword )
88
- return DeclSyntax ( node. with ( \. modifiers, newModifiers ) )
87
+ modifiers. triviaPreservingInsert ( modifierKeyword , at : modifiers . startIndex )
88
+ return DeclSyntax ( node. with ( \. modifiers, modifiers ) )
89
89
}
90
90
91
91
override func visit( _ node: ProtocolDeclSyntax ) -> DeclSyntax {
92
92
// Check for modifiers, and, if none, insert the modifier and relocate trivia from the displaced
93
93
// token.
94
- guard let modifiers = node. modifiers else {
95
- let nodeWithModifier = node. addModifier ( modifierKeyword)
94
+ guard var modifiers = node. modifiers else {
95
+ let nodeWithModifier = node. with ( \ . modifiers , . init ( [ modifierKeyword] ) )
96
96
let result = nodeByRelocatingTrivia ( in: nodeWithModifier) { $0. modifiers }
97
97
return DeclSyntax ( result)
98
98
}
99
99
guard modifiers. accessLevelModifier == nil else { return DeclSyntax ( node) }
100
- let newModifiers = modifiers. prepend ( modifier : modifierKeyword )
101
- return DeclSyntax ( node. with ( \. modifiers, newModifiers ) )
100
+ modifiers. triviaPreservingInsert ( modifierKeyword , at : modifiers . startIndex )
101
+ return DeclSyntax ( node. with ( \. modifiers, modifiers ) )
102
102
}
103
103
104
104
override func visit( _ node: StructDeclSyntax ) -> DeclSyntax {
105
105
// Check for modifiers, and, if none, insert the modifier and relocate trivia from the displaced
106
106
// token.
107
- guard let modifiers = node. modifiers else {
108
- let nodeWithModifier = node. addModifier ( modifierKeyword)
107
+ guard var modifiers = node. modifiers else {
108
+ let nodeWithModifier = node. with ( \ . modifiers , . init ( [ modifierKeyword] ) )
109
109
let result = nodeByRelocatingTrivia ( in: nodeWithModifier) { $0. modifiers }
110
110
return DeclSyntax ( result)
111
111
}
112
112
guard modifiers. accessLevelModifier == nil else { return DeclSyntax ( node) }
113
- let newModifiers = modifiers. prepend ( modifier : modifierKeyword )
114
- return DeclSyntax ( node. with ( \. modifiers, newModifiers ) )
113
+ modifiers. triviaPreservingInsert ( modifierKeyword , at : modifiers . startIndex )
114
+ return DeclSyntax ( node. with ( \. modifiers, modifiers ) )
115
115
}
116
116
117
117
override func visit( _ node: TypeAliasDeclSyntax ) -> DeclSyntax {
118
118
// Check for modifiers, and, if none, insert the modifier and relocate trivia from the displaced
119
119
// token.
120
- guard let modifiers = node. modifiers else {
121
- let nodeWithModifier = node. addModifier ( modifierKeyword)
120
+ guard var modifiers = node. modifiers else {
121
+ let nodeWithModifier = node. with ( \ . modifiers , . init ( [ modifierKeyword] ) )
122
122
let result = nodeByRelocatingTrivia ( in: nodeWithModifier) { $0. modifiers }
123
123
return DeclSyntax ( result)
124
124
}
125
125
guard modifiers. accessLevelModifier == nil else { return DeclSyntax ( node) }
126
- let newModifiers = modifiers. prepend ( modifier : modifierKeyword )
127
- return DeclSyntax ( node. with ( \. modifiers, newModifiers ) )
126
+ modifiers. triviaPreservingInsert ( modifierKeyword , at : modifiers . startIndex )
127
+ return DeclSyntax ( node. with ( \. modifiers, modifiers ) )
128
128
}
129
129
130
130
override func visit( _ node: InitializerDeclSyntax ) -> DeclSyntax {
131
131
// Check for modifiers, and, if none, insert the modifier and relocate trivia from the displaced
132
132
// token.
133
- guard let modifiers = node. modifiers else {
134
- let nodeWithModifier = node. addModifier ( modifierKeyword)
133
+ guard var modifiers = node. modifiers else {
134
+ let nodeWithModifier = node. with ( \ . modifiers , . init ( [ modifierKeyword] ) )
135
135
let result = nodeByRelocatingTrivia ( in: nodeWithModifier) { $0. modifiers }
136
136
return DeclSyntax ( result)
137
137
}
138
138
guard modifiers. accessLevelModifier == nil else { return DeclSyntax ( node) }
139
- let newModifiers = modifiers. prepend ( modifier : modifierKeyword )
140
- return DeclSyntax ( node. with ( \. modifiers, newModifiers ) )
139
+ modifiers. triviaPreservingInsert ( modifierKeyword , at : modifiers . startIndex )
140
+ return DeclSyntax ( node. with ( \. modifiers, modifiers ) )
141
141
}
142
142
143
143
override func visit( _ node: SubscriptDeclSyntax ) -> DeclSyntax {
144
144
// Check for modifiers, and, if none, insert the modifier and relocate trivia from the displaced
145
145
// token.
146
- guard let modifiers = node. modifiers else {
147
- let nodeWithModifier = node. addModifier ( modifierKeyword)
146
+ guard var modifiers = node. modifiers else {
147
+ let nodeWithModifier = node. with ( \ . modifiers , . init ( [ modifierKeyword] ) )
148
148
let result = nodeByRelocatingTrivia ( in: nodeWithModifier) { $0. modifiers }
149
149
return DeclSyntax ( result)
150
150
}
151
151
guard modifiers. accessLevelModifier == nil else { return DeclSyntax ( node) }
152
- let newModifiers = modifiers. prepend ( modifier : modifierKeyword )
153
- return DeclSyntax ( node. with ( \. modifiers, newModifiers ) )
152
+ modifiers. triviaPreservingInsert ( modifierKeyword , at : modifiers . startIndex )
153
+ return DeclSyntax ( node. with ( \. modifiers, modifiers ) )
154
154
}
155
155
156
156
/// Moves trivia in the given node to correct the placement of potentially displaced trivia in the
0 commit comments