case110 — experimental:: removed without replacement (API break)¶
| Field | Value |
|---|---|
| Verdict | 🔴 BREAKING |
| Category | Breaking |
| Platforms | Linux, macOS, Windows |
| Flags | ABI break, API break |
Detected ChangeKinds |
experimental_removed_without_replacement, func_removed |
| Source files | browse on GitHub |
What this case demonstrates¶
A library deletes a declaration that only ever lived under
experimental:: and does not republish it at a stable name. The
consumer relied on the experimental spelling; against v2 it does not
compile.
| v1 declares | v2 declares |
|---|---|
lib::experimental::bar |
(nothing with leaf bar) |
Why a generic func_removed is not enough¶
func_removed describes what disappeared, but at the
namespace-shape level the question every reviewer asks is "is there a
migration target?". The dedicated EXPERIMENTAL_REMOVED_WITHOUT_REPLACEMENT
finding answers that question explicitly: the detector looked for a
stable twin and didn't find one.
Expected verdict¶
API_BREAK — source-level break for any consumer that named the
experimental declaration. The mangled symbol disappears too, so the
underlying func_removed is also reported as BREAKING; the
namespace-level finding is the human-readable framing.
Source files¶
See also: Examples overview · All BREAKING cases · Category: Breaking.