@@ -635,3 +635,34 @@ class SuperThrowable extends MyThrowable {
635
635
}
636
636
}
637
637
638
+ // Repro from #40346
639
+
640
+ interface Services {
641
+ >Services : Symbol(Services, Decl(neverReturningFunctions1.ts, 247, 1))
642
+
643
+ panic(message: string): never;
644
+ >panic : Symbol(Services.panic, Decl(neverReturningFunctions1.ts, 251, 20))
645
+ >message : Symbol(message, Decl(neverReturningFunctions1.ts, 252, 10))
646
+ }
647
+
648
+ function foo(services: Readonly<Services>, s: string | null): string {
649
+ >foo : Symbol(foo, Decl(neverReturningFunctions1.ts, 253, 1))
650
+ >services : Symbol(services, Decl(neverReturningFunctions1.ts, 255, 13))
651
+ >Readonly : Symbol(Readonly, Decl(lib.es5.d.ts, --, --))
652
+ >Services : Symbol(Services, Decl(neverReturningFunctions1.ts, 247, 1))
653
+ >s : Symbol(s, Decl(neverReturningFunctions1.ts, 255, 42))
654
+
655
+ if (s === null) {
656
+ >s : Symbol(s, Decl(neverReturningFunctions1.ts, 255, 42))
657
+
658
+ services.panic("ouch");
659
+ >services.panic : Symbol(panic, Decl(neverReturningFunctions1.ts, 251, 20))
660
+ >services : Symbol(services, Decl(neverReturningFunctions1.ts, 255, 13))
661
+ >panic : Symbol(panic, Decl(neverReturningFunctions1.ts, 251, 20))
662
+
663
+ } else {
664
+ return s;
665
+ >s : Symbol(s, Decl(neverReturningFunctions1.ts, 255, 42))
666
+ }
667
+ }
668
+
0 commit comments