From 6b93bf0fc651d936bde98e95297148f99b90f451 Mon Sep 17 00:00:00 2001 From: sfja Date: Wed, 11 Mar 2026 12:37:46 +0100 Subject: [PATCH] use default --- docs/tagged_union_pattern_in_typescript.md | 11 +++++++---- src/mir_interpreter.ts | 3 ++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/docs/tagged_union_pattern_in_typescript.md b/docs/tagged_union_pattern_in_typescript.md index 59238b9..0ab3a63 100644 --- a/docs/tagged_union_pattern_in_typescript.md +++ b/docs/tagged_union_pattern_in_typescript.md @@ -94,8 +94,10 @@ class Expr { return k.value; case "Add": return k.right.eval() + k.left.eval(); + default: + k satisfies never; // compile time exhaustiveness check + throw new Error("unexhausted"): // run time exhaustiveness check } - k satisfies never; // compile time exhaustiveness check } // ... } @@ -195,13 +197,14 @@ class Expr { const k = this.kind; switch (k.tag) { case "Int": - return; + break; case "Add": k.left.visit(v); k.right.visit(v); - return + break; + default: + k satisfies never; } - k satisfies never; } // ... } diff --git a/src/mir_interpreter.ts b/src/mir_interpreter.ts index 9b5e4ba..54c98ec 100644 --- a/src/mir_interpreter.ts +++ b/src/mir_interpreter.ts @@ -157,8 +157,9 @@ class Val { return `${k.value}`; case "Fn": return `<${k.fn.ty.pretty()}>`; + default: + k satisfies never; } - k satisfies never; } }