# Не выполнена cleanup obligation

RuleID: lifetime.undischarged-resource-obligation@1.0.0
Status: recovery-required
Catalog snapshot: 4558458d

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

## V-LIFE-09 — Не выполнена cleanup obligation

Ошибка или ранний return может пропустить обязательное закрытие файла, дескриптора или другого ресурса.

Status: recovery-required

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

### Before (illustrative)

```swift
let resource = try openResource()
try process(resource)
resource.close()
```

### After (illustrative)

```swift
let resource = try openResource()
defer { resource.close() }
try process(resource)
```

Boundary: Defer, RAII и ownership transfer; cancel не исключение в любой строке

---
Language: ru
Canonical: https://docs.swift-analyzer.com/catalog/lifetime.undischarged-resource-obligation/
Source revision: 4558458d
