@@ -1832,3 +1832,48 @@ while (arr[i]?.tag === "left") {
1832
1832
}
1833
1833
}
1834
1834
1835
+
1836
+ // Repro from #51941
1837
+
1838
+ type Test5 = {
1839
+ >Test5 : Symbol(Test5, Decl(controlFlowOptionalChain.ts, 588, 1))
1840
+
1841
+ main?: {
1842
+ >main : Symbol(main, Decl(controlFlowOptionalChain.ts, 593, 14))
1843
+
1844
+ childs: Record<string, Test5>;
1845
+ >childs : Symbol(childs, Decl(controlFlowOptionalChain.ts, 594, 10))
1846
+ >Record : Symbol(Record, Decl(lib.es5.d.ts, --, --))
1847
+ >Test5 : Symbol(Test5, Decl(controlFlowOptionalChain.ts, 588, 1))
1848
+
1849
+ };
1850
+ };
1851
+
1852
+ function f50(obj: Test5) {
1853
+ >f50 : Symbol(f50, Decl(controlFlowOptionalChain.ts, 597, 2))
1854
+ >obj : Symbol(obj, Decl(controlFlowOptionalChain.ts, 599, 13))
1855
+ >Test5 : Symbol(Test5, Decl(controlFlowOptionalChain.ts, 588, 1))
1856
+
1857
+ for (const key in obj.main?.childs) {
1858
+ >key : Symbol(key, Decl(controlFlowOptionalChain.ts, 600, 13))
1859
+ >obj.main?.childs : Symbol(childs, Decl(controlFlowOptionalChain.ts, 594, 10))
1860
+ >obj.main : Symbol(main, Decl(controlFlowOptionalChain.ts, 593, 14))
1861
+ >obj : Symbol(obj, Decl(controlFlowOptionalChain.ts, 599, 13))
1862
+ >main : Symbol(main, Decl(controlFlowOptionalChain.ts, 593, 14))
1863
+ >childs : Symbol(childs, Decl(controlFlowOptionalChain.ts, 594, 10))
1864
+
1865
+ if (obj.main.childs[key] === obj) {
1866
+ >obj.main.childs : Symbol(childs, Decl(controlFlowOptionalChain.ts, 594, 10))
1867
+ >obj.main : Symbol(main, Decl(controlFlowOptionalChain.ts, 593, 14))
1868
+ >obj : Symbol(obj, Decl(controlFlowOptionalChain.ts, 599, 13))
1869
+ >main : Symbol(main, Decl(controlFlowOptionalChain.ts, 593, 14))
1870
+ >childs : Symbol(childs, Decl(controlFlowOptionalChain.ts, 594, 10))
1871
+ >key : Symbol(key, Decl(controlFlowOptionalChain.ts, 600, 13))
1872
+ >obj : Symbol(obj, Decl(controlFlowOptionalChain.ts, 599, 13))
1873
+
1874
+ return obj;
1875
+ >obj : Symbol(obj, Decl(controlFlowOptionalChain.ts, 599, 13))
1876
+ }
1877
+ }
1878
+ return null;
1879
+ }
0 commit comments