Exhaustive Match
Compiler-Feature: Wer auf einen Union-Typ matcht, muss alle Varianten explizit behandeln. Rust match, Haskell-Case, TypeScript über den never-Trick. Garantiert, dass eine neue Variante überall eine Aktualisierung erzwingt – Refactoring-Sicherheit.
Rust: match status { Active => ..., Pending => ... } liefert einen Compile-Fehler, wenn eine Variante fehlt. Klassisches Muster für State Machines. TypeScript: Zuweisung an never im default-Zweig – sind alle Varianten behandelt, bleibt der never-Typ never; fehlt eine, schlägt die Typprüfung fehl. function assertNever(x: never): never { throw }. Java seit Version 21: Sealed Types plus Pattern Matching im switch. Eine moderne objektorientierte Alternative zum klassischen Visitor-Muster.