@@ -37,13 +37,8 @@ extension ModifierListSyntax {
37
37
38
38
/// Returns modifier list without the given modifier.
39
39
func remove( name: String ) -> ModifierListSyntax {
40
- guard has ( modifier: name) else { return self }
41
- for (index, mod) in self . enumerated ( ) {
42
- if mod. name. text == name {
43
- return removing ( childAt: index)
44
- }
45
- }
46
- return self
40
+ let newModifiers = filter { $0. name. text != name }
41
+ return ModifierListSyntax ( newModifiers)
47
42
}
48
43
49
44
/// Returns a formatted declaration modifier token with the given name.
@@ -71,9 +66,13 @@ extension ModifierListSyntax {
71
66
trailingTrivia: . spaces( 1 ) ) : modifier
72
67
73
68
if index == 0 {
74
- guard formatTrivia else { return inserting ( modifier, at: index) }
69
+ guard formatTrivia else {
70
+ newModifiers. insert ( modifier, at: index)
71
+ return ModifierListSyntax ( newModifiers)
72
+ }
75
73
guard let firstMod = first, let firstTok = firstMod. firstToken ( viewMode: . sourceAccurate) else {
76
- return inserting ( modifier, at: index)
74
+ newModifiers. insert ( modifier, at: index)
75
+ return ModifierListSyntax ( newModifiers)
77
76
}
78
77
let formattedMod = replaceTrivia (
79
78
on: modifier,
@@ -87,7 +86,8 @@ extension ModifierListSyntax {
87
86
newModifiers. insert ( formattedMod, at: 0 )
88
87
return ModifierListSyntax ( newModifiers)
89
88
} else {
90
- return inserting ( modifier, at: index)
89
+ newModifiers. insert ( modifier, at: index)
90
+ return ModifierListSyntax ( newModifiers)
91
91
}
92
92
}
93
93
0 commit comments