# Equality и hashing противоречат друг другу

RuleID: correctness.equality-hash-contract@1.0.0
Status: accepted-subset
Catalog snapshot: 4558458d

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

## V-COR-01 — Equality и hashing противоречат друг другу

Set и Dictionary предполагают согласованность equality и hashing. Если равные значения получают разные хеш-входы, membership может вести себя неожиданно.

Status: accepted-subset

Scope notes: Принят bounded source subset по контракту задачи. Подтверждение распространяется только на допущенные source forms, профиль сборки, positive/negative и unknown-границы из приёмки.

### Before (illustrative)

```swift
// a == b сравнивает только id.
// hash(into:) комбинирует id и изменяемую метку.
```

### After (illustrative)

```swift
// Использовать одинаковые существенные поля
// в == и hash(into:).
```

Boundary: Разные имена полей не proof; collisions не нарушение

---
Language: ru
Canonical: https://docs.swift-analyzer.com/catalog/correctness.equality-hash-contract/
Source revision: 4558458d
