@@ -995,3 +995,51 @@ function x<T_AB extends AB>(x: T_AB & undefined, y: any) {
995
995
>T_AB : Symbol(T_AB, Decl(unknownControlFlow.ts, 425, 11))
996
996
}
997
997
998
+ // Repro from #51538
999
+
1000
+ type Left = 'left';
1001
+ >Left : Symbol(Left, Decl(unknownControlFlow.ts, 427, 1))
1002
+
1003
+ type Right = 'right' & { right: 'right' };
1004
+ >Right : Symbol(Right, Decl(unknownControlFlow.ts, 431, 19))
1005
+ >right : Symbol(right, Decl(unknownControlFlow.ts, 432, 24))
1006
+
1007
+ type Either = Left | Right;
1008
+ >Either : Symbol(Either, Decl(unknownControlFlow.ts, 432, 42))
1009
+ >Left : Symbol(Left, Decl(unknownControlFlow.ts, 427, 1))
1010
+ >Right : Symbol(Right, Decl(unknownControlFlow.ts, 431, 19))
1011
+
1012
+ function assertNever(v: never): never {
1013
+ >assertNever : Symbol(assertNever, Decl(unknownControlFlow.ts, 433, 27))
1014
+ >v : Symbol(v, Decl(unknownControlFlow.ts, 435, 21))
1015
+
1016
+ throw new Error('never');
1017
+ >Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
1018
+ }
1019
+
1020
+ function fx20(value: Either) {
1021
+ >fx20 : Symbol(fx20, Decl(unknownControlFlow.ts, 437, 1))
1022
+ >value : Symbol(value, Decl(unknownControlFlow.ts, 439, 14))
1023
+ >Either : Symbol(Either, Decl(unknownControlFlow.ts, 432, 42))
1024
+
1025
+ if (value === 'left') {
1026
+ >value : Symbol(value, Decl(unknownControlFlow.ts, 439, 14))
1027
+
1028
+ const foo: 'left' = value;
1029
+ >foo : Symbol(foo, Decl(unknownControlFlow.ts, 441, 13))
1030
+ >value : Symbol(value, Decl(unknownControlFlow.ts, 439, 14))
1031
+ }
1032
+ else if (value === 'right') {
1033
+ >value : Symbol(value, Decl(unknownControlFlow.ts, 439, 14))
1034
+
1035
+ const bar: 'right' = value;
1036
+ >bar : Symbol(bar, Decl(unknownControlFlow.ts, 444, 13))
1037
+ >value : Symbol(value, Decl(unknownControlFlow.ts, 439, 14))
1038
+ }
1039
+ else {
1040
+ assertNever(value);
1041
+ >assertNever : Symbol(assertNever, Decl(unknownControlFlow.ts, 433, 27))
1042
+ >value : Symbol(value, Decl(unknownControlFlow.ts, 439, 14))
1043
+ }
1044
+ }
1045
+
0 commit comments