# Array используется как растущая FIFO со сдвигами

RuleID: performance.array-fifo-shifts@1.0.0
Status: recovery-required
Catalog snapshot: 4558458d

Accepted subset is bounded. If required evidence is incomplete, the affected result is unknown.

## V-PERF-04 — Array используется как растущая FIFO со сдвигами

Удаление первого элемента Array сдвигает оставшийся хвост. Повторение до опустошения даёт квадратичную работу.

Status: recovery-required

Scope notes: Source producer требует восстановления и квалификации. Если необходимые факты не получены, результат — unknown, а не «ошибки нет».

### Before (illustrative)

```swift
while !queue.isEmpty {
    process(queue.removeFirst())
}
```

### After (illustrative)

```swift
var head = 0
while head < queue.count {
    process(queue[head])
    head += 1
}
```

Boundary: Deque/ring buffer и фиксированная малая очередь

---
Language: ru
Canonical: https://docs.swift-analyzer.com/catalog/performance.array-fifo-shifts/
Source revision: 4558458d
