@@ -114,3 +114,36 @@ var i:I1 = function (n) {return n;}
114114>n : Symbol(n, Decl(gettersAndSetters.ts, 38, 21))
115115>n : Symbol(n, Decl(gettersAndSetters.ts, 38, 21))
116116
117+ // Repro from #45006
118+ const x: string | number = Math.random() < 0.5 ? "str" : 123;
119+ >x : Symbol(x, Decl(gettersAndSetters.ts, 41, 5))
120+ >Math.random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --))
121+ >Math : Symbol(Math, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
122+ >random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --))
123+
124+ if (typeof x === "string") {
125+ >x : Symbol(x, Decl(gettersAndSetters.ts, 41, 5))
126+
127+ let obj = {
128+ >obj : Symbol(obj, Decl(gettersAndSetters.ts, 43, 5))
129+
130+ set prop(_: any) { x.toUpperCase(); },
131+ >prop : Symbol(prop, Decl(gettersAndSetters.ts, 43, 13), Decl(gettersAndSetters.ts, 44, 42))
132+ >_ : Symbol(_, Decl(gettersAndSetters.ts, 44, 13))
133+ >x.toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --))
134+ >x : Symbol(x, Decl(gettersAndSetters.ts, 41, 5))
135+ >toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --))
136+
137+ get prop() { return x.toUpperCase() },
138+ >prop : Symbol(prop, Decl(gettersAndSetters.ts, 43, 13), Decl(gettersAndSetters.ts, 44, 42))
139+ >x.toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --))
140+ >x : Symbol(x, Decl(gettersAndSetters.ts, 41, 5))
141+ >toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --))
142+
143+ method() { return x.toUpperCase() }
144+ >method : Symbol(method, Decl(gettersAndSetters.ts, 45, 42))
145+ >x.toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --))
146+ >x : Symbol(x, Decl(gettersAndSetters.ts, 41, 5))
147+ >toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --))
148+ }
149+ }
0 commit comments