Skip to content

Commit 33af4ea

Browse files
authored
assertNever no longer crashes on string input (microsoft#29764)
1 parent 4505eea commit 33af4ea

2 files changed

Lines changed: 4 additions & 1 deletion

File tree

src/compiler/core.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1652,7 +1652,7 @@ namespace ts {
16521652
}
16531653

16541654
export function assertNever(member: never, message = "Illegal value:", stackCrawlMark?: AnyFunction): never {
1655-
const detail = "kind" in member && "pos" in member ? "SyntaxKind: " + showSyntaxKind(member as Node) : JSON.stringify(member);
1655+
const detail = typeof member === "object" && "kind" in member && "pos" in member ? "SyntaxKind: " + showSyntaxKind(member as Node) : JSON.stringify(member);
16561656
return fail(`${message} ${detail}`, stackCrawlMark || assertNever);
16571657
}
16581658

src/testRunner/unittests/asserts.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,8 @@ namespace ts {
55
assert.throws(() => assert.deepEqual(createNodeArray([], /*hasTrailingComma*/ true), createNodeArray([], /*hasTrailingComma*/ false)));
66
assert.deepEqual(createNodeArray([createIdentifier("A")], /*hasTrailingComma*/ true), createNodeArray([createIdentifier("A")], /*hasTrailingComma*/ true));
77
});
8+
it("assertNever on string has correct error", () => {
9+
assert.throws(() => Debug.assertNever("hi" as never), "Debug Failure. Illegal value: \"hi\"");
10+
});
811
});
912
}

0 commit comments

Comments
 (0)