@@ -229,68 +229,96 @@ function ft13(s: string, cond: boolean) {
229229type T0 = string | `${number}px`;
230230>T0 : Symbol(T0, Decl(templateLiteralTypes2.ts, 60, 1))
231231
232+ function ft14(t: `foo${number}`) {
233+ >ft14 : Symbol(ft14, Decl(templateLiteralTypes2.ts, 62, 33))
234+ >t : Symbol(t, Decl(templateLiteralTypes2.ts, 64, 14))
235+
236+ let x1: string = t;
237+ >x1 : Symbol(x1, Decl(templateLiteralTypes2.ts, 65, 7))
238+ >t : Symbol(t, Decl(templateLiteralTypes2.ts, 64, 14))
239+
240+ let x2: String = t;
241+ >x2 : Symbol(x2, Decl(templateLiteralTypes2.ts, 66, 7))
242+ >String : Symbol(String, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
243+ >t : Symbol(t, Decl(templateLiteralTypes2.ts, 64, 14))
244+
245+ let x3: Object = t;
246+ >x3 : Symbol(x3, Decl(templateLiteralTypes2.ts, 67, 7))
247+ >Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
248+ >t : Symbol(t, Decl(templateLiteralTypes2.ts, 64, 14))
249+
250+ let x4: {} = t;
251+ >x4 : Symbol(x4, Decl(templateLiteralTypes2.ts, 68, 7))
252+ >t : Symbol(t, Decl(templateLiteralTypes2.ts, 64, 14))
253+
254+ let x6: { length: number } = t;
255+ >x6 : Symbol(x6, Decl(templateLiteralTypes2.ts, 69, 7))
256+ >length : Symbol(length, Decl(templateLiteralTypes2.ts, 69, 13))
257+ >t : Symbol(t, Decl(templateLiteralTypes2.ts, 64, 14))
258+ }
259+
232260// Repro from #41631
233261
234262declare function takesLiteral<T extends string>(literal: T): T extends `foo.bar.${infer R}` ? R : unknown;
235- >takesLiteral : Symbol(takesLiteral, Decl(templateLiteralTypes2.ts, 62, 33 ))
236- >T : Symbol(T, Decl(templateLiteralTypes2.ts, 66 , 30))
237- >literal : Symbol(literal, Decl(templateLiteralTypes2.ts, 66 , 48))
238- >T : Symbol(T, Decl(templateLiteralTypes2.ts, 66 , 30))
239- >T : Symbol(T, Decl(templateLiteralTypes2.ts, 66 , 30))
240- >R : Symbol(R, Decl(templateLiteralTypes2.ts, 66 , 87))
241- >R : Symbol(R, Decl(templateLiteralTypes2.ts, 66 , 87))
263+ >takesLiteral : Symbol(takesLiteral, Decl(templateLiteralTypes2.ts, 70, 1 ))
264+ >T : Symbol(T, Decl(templateLiteralTypes2.ts, 74 , 30))
265+ >literal : Symbol(literal, Decl(templateLiteralTypes2.ts, 74 , 48))
266+ >T : Symbol(T, Decl(templateLiteralTypes2.ts, 74 , 30))
267+ >T : Symbol(T, Decl(templateLiteralTypes2.ts, 74 , 30))
268+ >R : Symbol(R, Decl(templateLiteralTypes2.ts, 74 , 87))
269+ >R : Symbol(R, Decl(templateLiteralTypes2.ts, 74 , 87))
242270
243271const t1 = takesLiteral("foo.bar.baz"); // "baz"
244- >t1 : Symbol(t1, Decl(templateLiteralTypes2.ts, 68 , 5))
245- >takesLiteral : Symbol(takesLiteral, Decl(templateLiteralTypes2.ts, 62, 33 ))
272+ >t1 : Symbol(t1, Decl(templateLiteralTypes2.ts, 76 , 5))
273+ >takesLiteral : Symbol(takesLiteral, Decl(templateLiteralTypes2.ts, 70, 1 ))
246274
247275const id2 = "foo.bar.baz";
248- >id2 : Symbol(id2, Decl(templateLiteralTypes2.ts, 69 , 5))
276+ >id2 : Symbol(id2, Decl(templateLiteralTypes2.ts, 77 , 5))
249277
250278const t2 = takesLiteral(id2); // "baz"
251- >t2 : Symbol(t2, Decl(templateLiteralTypes2.ts, 70 , 5))
252- >takesLiteral : Symbol(takesLiteral, Decl(templateLiteralTypes2.ts, 62, 33 ))
253- >id2 : Symbol(id2, Decl(templateLiteralTypes2.ts, 69 , 5))
279+ >t2 : Symbol(t2, Decl(templateLiteralTypes2.ts, 78 , 5))
280+ >takesLiteral : Symbol(takesLiteral, Decl(templateLiteralTypes2.ts, 70, 1 ))
281+ >id2 : Symbol(id2, Decl(templateLiteralTypes2.ts, 77 , 5))
254282
255283declare const someString: string;
256- >someString : Symbol(someString, Decl(templateLiteralTypes2.ts, 72 , 13))
284+ >someString : Symbol(someString, Decl(templateLiteralTypes2.ts, 80 , 13))
257285
258286const t3 = takesLiteral(`foo.bar.${someString}`); // string
259- >t3 : Symbol(t3, Decl(templateLiteralTypes2.ts, 73 , 5))
260- >takesLiteral : Symbol(takesLiteral, Decl(templateLiteralTypes2.ts, 62, 33 ))
261- >someString : Symbol(someString, Decl(templateLiteralTypes2.ts, 72 , 13))
287+ >t3 : Symbol(t3, Decl(templateLiteralTypes2.ts, 81 , 5))
288+ >takesLiteral : Symbol(takesLiteral, Decl(templateLiteralTypes2.ts, 70, 1 ))
289+ >someString : Symbol(someString, Decl(templateLiteralTypes2.ts, 80 , 13))
262290
263291const id4 = `foo.bar.${someString}`;
264- >id4 : Symbol(id4, Decl(templateLiteralTypes2.ts, 75 , 5))
265- >someString : Symbol(someString, Decl(templateLiteralTypes2.ts, 72 , 13))
292+ >id4 : Symbol(id4, Decl(templateLiteralTypes2.ts, 83 , 5))
293+ >someString : Symbol(someString, Decl(templateLiteralTypes2.ts, 80 , 13))
266294
267295const t4 = takesLiteral(id4); // string
268- >t4 : Symbol(t4, Decl(templateLiteralTypes2.ts, 76 , 5))
269- >takesLiteral : Symbol(takesLiteral, Decl(templateLiteralTypes2.ts, 62, 33 ))
270- >id4 : Symbol(id4, Decl(templateLiteralTypes2.ts, 75 , 5))
296+ >t4 : Symbol(t4, Decl(templateLiteralTypes2.ts, 84 , 5))
297+ >takesLiteral : Symbol(takesLiteral, Decl(templateLiteralTypes2.ts, 70, 1 ))
298+ >id4 : Symbol(id4, Decl(templateLiteralTypes2.ts, 83 , 5))
271299
272300declare const someUnion: 'abc' | 'def' | 'ghi';
273- >someUnion : Symbol(someUnion, Decl(templateLiteralTypes2.ts, 78 , 13))
301+ >someUnion : Symbol(someUnion, Decl(templateLiteralTypes2.ts, 86 , 13))
274302
275303const t5 = takesLiteral(`foo.bar.${someUnion}`); // "abc" | "def" | "ghi"
276- >t5 : Symbol(t5, Decl(templateLiteralTypes2.ts, 79 , 5))
277- >takesLiteral : Symbol(takesLiteral, Decl(templateLiteralTypes2.ts, 62, 33 ))
278- >someUnion : Symbol(someUnion, Decl(templateLiteralTypes2.ts, 78 , 13))
304+ >t5 : Symbol(t5, Decl(templateLiteralTypes2.ts, 87 , 5))
305+ >takesLiteral : Symbol(takesLiteral, Decl(templateLiteralTypes2.ts, 70, 1 ))
306+ >someUnion : Symbol(someUnion, Decl(templateLiteralTypes2.ts, 86 , 13))
279307
280308// Repro from #41732
281309
282310const pixelValue: number = 22;
283- >pixelValue : Symbol(pixelValue, Decl(templateLiteralTypes2.ts, 83 , 5))
311+ >pixelValue : Symbol(pixelValue, Decl(templateLiteralTypes2.ts, 91 , 5))
284312
285313type PixelValueType = `${number}px`;
286- >PixelValueType : Symbol(PixelValueType, Decl(templateLiteralTypes2.ts, 83 , 30))
314+ >PixelValueType : Symbol(PixelValueType, Decl(templateLiteralTypes2.ts, 91 , 30))
287315
288316const pixelString: PixelValueType = `22px`;
289- >pixelString : Symbol(pixelString, Decl(templateLiteralTypes2.ts, 87 , 5))
290- >PixelValueType : Symbol(PixelValueType, Decl(templateLiteralTypes2.ts, 83 , 30))
317+ >pixelString : Symbol(pixelString, Decl(templateLiteralTypes2.ts, 95 , 5))
318+ >PixelValueType : Symbol(PixelValueType, Decl(templateLiteralTypes2.ts, 91 , 30))
291319
292320const pixelStringWithTemplate: PixelValueType = `${pixelValue}px`;
293- >pixelStringWithTemplate : Symbol(pixelStringWithTemplate, Decl(templateLiteralTypes2.ts, 89 , 5))
294- >PixelValueType : Symbol(PixelValueType, Decl(templateLiteralTypes2.ts, 83 , 30))
295- >pixelValue : Symbol(pixelValue, Decl(templateLiteralTypes2.ts, 83 , 5))
321+ >pixelStringWithTemplate : Symbol(pixelStringWithTemplate, Decl(templateLiteralTypes2.ts, 97 , 5))
322+ >PixelValueType : Symbol(PixelValueType, Decl(templateLiteralTypes2.ts, 91 , 30))
323+ >pixelValue : Symbol(pixelValue, Decl(templateLiteralTypes2.ts, 91 , 5))
296324
0 commit comments