@@ -173,11 +173,8 @@ function referencesToThrough(references: Reference[], baseScope: Scope) {
173
173
* Add all references to array
174
174
*/
175
175
function addAllReferences ( list : Reference [ ] , elements : Reference [ ] ) : void {
176
- addElementsToSortedArray (
177
- list ,
178
- elements ,
179
- ( a , b ) => a . identifier . range ! [ 0 ] - b . identifier . range ! [ 0 ] ,
180
- )
176
+ list . push ( ...elements )
177
+ list . sort ( ( a , b ) => a . identifier . range ! [ 0 ] - b . identifier . range ! [ 0 ] )
181
178
}
182
179
183
180
/** Remove reference */
@@ -238,54 +235,3 @@ function removeScope(scopeManager: ScopeManager, scope: Scope): void {
238
235
scopeManager . scopes . splice ( index , 1 )
239
236
}
240
237
}
241
-
242
- /**
243
- * Add element to a sorted array
244
- */
245
- function addElementsToSortedArray < T > (
246
- array : T [ ] ,
247
- elements : T [ ] ,
248
- compare : ( a : T , b : T ) => number ,
249
- ) : void {
250
- if ( ! elements . length ) {
251
- return
252
- }
253
- let last = elements [ 0 ]
254
- let index = sortedLastIndex ( array , ( target ) => compare ( target , last ) )
255
- for ( const element of elements ) {
256
- if ( compare ( last , element ) > 0 ) {
257
- index = sortedLastIndex ( array , ( target ) => compare ( target , element ) )
258
- }
259
- let e = array [ index ]
260
- while ( e && compare ( e , element ) <= 0 ) {
261
- e = array [ ++ index ]
262
- }
263
- array . splice ( index , 0 , element )
264
- last = element
265
- }
266
- }
267
-
268
- /**
269
- * Uses a binary search to determine the highest index at which value should be inserted into array in order to maintain its sort order.
270
- */
271
- function sortedLastIndex < T > (
272
- array : T [ ] ,
273
- compare : ( target : T ) => number ,
274
- ) : number {
275
- let lower = 0
276
- let upper = array . length
277
-
278
- while ( lower < upper ) {
279
- const mid = Math . floor ( lower + ( upper - lower ) / 2 )
280
- const target = compare ( array [ mid ] )
281
- if ( target < 0 ) {
282
- lower = mid + 1
283
- } else if ( target > 0 ) {
284
- upper = mid
285
- } else {
286
- return mid + 1
287
- }
288
- }
289
-
290
- return upper
291
- }
0 commit comments