@@ -15,16 +15,14 @@ extension RangeReplaceableCollection {
15
15
func _replacing< Ranges: Collection , Replacement: Collection > (
16
16
_ ranges: Ranges ,
17
17
with replacement: Replacement ,
18
- subrange: Range < Index > ,
19
18
maxReplacements: Int = . max
20
19
) -> Self where Ranges. Element == Range < Index > ,
21
20
Replacement. Element == Element
22
21
{
23
22
precondition ( maxReplacements >= 0 )
24
23
25
- var index = subrange. lowerBound
26
24
var result = Self ( )
27
- result . append ( contentsOf : self [ ..< index] )
25
+ var index = startIndex
28
26
29
27
for range in ranges. prefix ( maxReplacements) {
30
28
result. append ( contentsOf: self [ index..< range. lowerBound] )
@@ -36,20 +34,6 @@ extension RangeReplaceableCollection {
36
34
return result
37
35
}
38
36
39
- func _replacing< Ranges: Collection , Replacement: Collection > (
40
- _ ranges: Ranges ,
41
- with replacement: Replacement ,
42
- maxReplacements: Int = . max
43
- ) -> Self where Ranges. Element == Range < Index > ,
44
- Replacement. Element == Element
45
- {
46
- _replacing (
47
- ranges,
48
- with: replacement,
49
- subrange: startIndex..< endIndex,
50
- maxReplacements: maxReplacements)
51
- }
52
-
53
37
mutating func _replace<
54
38
Ranges: Collection , Replacement: Collection
55
39
> (
@@ -85,9 +69,8 @@ extension RangeReplaceableCollection where Element: Equatable {
85
69
maxReplacements: Int = . max
86
70
) -> Self where C. Element == Element , Replacement. Element == Element {
87
71
_replacing (
88
- _ranges ( of: other) ,
72
+ self [ subrange ] . _ranges ( of: other) ,
89
73
with: replacement,
90
- subrange: subrange,
91
74
maxReplacements: maxReplacements)
92
75
}
93
76
@@ -143,9 +126,8 @@ extension RangeReplaceableCollection
143
126
maxReplacements: Int = . max
144
127
) -> Self where C. Element == Element , Replacement. Element == Element {
145
128
_replacing (
146
- _ranges ( of: other) ,
129
+ self [ subrange ] . _ranges ( of: other) ,
147
130
with: replacement,
148
- subrange: subrange,
149
131
maxReplacements: maxReplacements)
150
132
}
151
133
@@ -195,9 +177,8 @@ extension RangeReplaceableCollection where SubSequence == Substring {
195
177
maxReplacements: Int = . max
196
178
) -> Self where Replacement. Element == Element {
197
179
_replacing (
198
- _ranges ( of: regex) ,
180
+ self [ subrange ] . _ranges ( of: regex) ,
199
181
with: replacement,
200
- subrange: subrange,
201
182
maxReplacements: maxReplacements)
202
183
}
203
184
0 commit comments