Skip to content

Subject: API design and hygiene anti-patterns

The change is technically compatible (or a correctly-labelled risk) but represents a design smell -- namespace pollution, an unnamed type in the public ABI, a polymorphic type with no virtual destructor, a deprecation announcement, or the experimental-API graduation/removal lifecycle.

6 case(s). ← back to all subjects

Cases

Case Title Verdict Category
case53_namespace_pollution Namespace Pollution (Generic Symbol Names) 🔴 BREAKING Breaking
case99_experimental_graduated Experimental to Stable Graduation (Compatible) 🟢 COMPATIBLE Addition (Compatible)
case100_experimental_removed_without_replacement Experimental Declaration Removed Without Replacement 🔴 BREAKING Breaking
case165_polymorphic_nonvirtual_dtor Polymorphic Type Without a Virtual Destructor (New Anti-Pattern) 🟡 COMPATIBLE_WITH_RISK Risk
case178_unnamed_type_in_public_abi Unnamed Type Leaks Into the Public ABI 🟡 COMPATIBLE_WITH_RISK Risk
case205_public_function_marked_deprecated Public Function Marked Deprecated 🟢 COMPATIBLE Quality (Compatible)