Skip to content

Commit 090f6bd

Browse files
Accepted baselines.
1 parent da7967a commit 090f6bd

6 files changed

Lines changed: 205 additions & 142 deletions

tests/baselines/reference/api/tsserverlibrary.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1050,6 +1050,7 @@ declare namespace ts {
10501050
interface TaggedTemplateExpression extends MemberExpression {
10511051
kind: SyntaxKind.TaggedTemplateExpression;
10521052
tag: LeftHandSideExpression;
1053+
typeArguments?: NodeArray<TypeNode>;
10531054
template: TemplateLiteral;
10541055
}
10551056
type CallLikeExpression = CallExpression | NewExpression | TaggedTemplateExpression | Decorator | JsxOpeningLikeElement;

tests/baselines/reference/api/typescript.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1050,6 +1050,7 @@ declare namespace ts {
10501050
interface TaggedTemplateExpression extends MemberExpression {
10511051
kind: SyntaxKind.TaggedTemplateExpression;
10521052
tag: LeftHandSideExpression;
1053+
typeArguments?: NodeArray<TypeNode>;
10531054
template: TemplateLiteral;
10541055
}
10551056
type CallLikeExpression = CallExpression | NewExpression | TaggedTemplateExpression | Decorator | JsxOpeningLikeElement;
Lines changed: 47 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
1-
tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments1.ts(9,18): error TS2365: Operator '>' cannot be applied to types 'boolean' and 'string'.
2-
tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments1.ts(9,20): error TS2693: 'Stuff' only refers to a type, but is being used as a value here.
3-
tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments1.ts(22,20): error TS2693: 'Stuff' only refers to a type, but is being used as a value here.
4-
tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments1.ts(22,50): error TS1005: ',' expected.
5-
tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments1.ts(39,18): error TS2365: Operator '>' cannot be applied to types 'boolean' and 'string'.
6-
tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments1.ts(39,30): error TS2693: 'Stuff' only refers to a type, but is being used as a value here.
7-
tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments1.ts(39,53): error TS1128: Declaration or statement expected.
8-
tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments1.ts(40,3): error TS2339: Property 'returnedProp' does not exist on type 'boolean'.
9-
tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments1.ts(41,3): error TS2339: Property 'returnedProp' does not exist on type 'boolean'.
10-
tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments1.ts(42,3): error TS2339: Property 'returnedProp' does not exist on type 'boolean'.
1+
tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments1.ts(11,22): error TS2339: Property 'x' does not exist on type '{}'.
2+
tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments1.ts(13,22): error TS2339: Property 'y' does not exist on type '{}'.
3+
tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments1.ts(15,22): error TS2339: Property 'z' does not exist on type '{}'.
4+
tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments1.ts(24,22): error TS2339: Property 'x' does not exist on type '{}'.
5+
tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments1.ts(26,22): error TS2339: Property 'y' does not exist on type '{}'.
6+
tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments1.ts(28,22): error TS2339: Property 'z' does not exist on type '{}'.
7+
tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments1.ts(38,19): error TS2339: Property 'x' does not exist on type '{}'.
8+
tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments1.ts(39,19): error TS2339: Property 'y' does not exist on type '{}'.
9+
tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments1.ts(40,19): error TS2339: Property 'z' does not exist on type '{}'.
10+
tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments1.ts(43,19): error TS2339: Property 'x' does not exist on type '{}'.
11+
tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments1.ts(44,19): error TS2339: Property 'y' does not exist on type '{}'.
12+
tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments1.ts(45,19): error TS2339: Property 'z' does not exist on type '{}'.
1113

1214

13-
==== tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments1.ts (10 errors) ====
15+
==== tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments1.ts (12 errors) ====
1416
declare function f<T>(strs: TemplateStringsArray, ...callbacks: Array<(x: T) => any>): void;
1517

1618
interface Stuff {
@@ -20,63 +22,63 @@ tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments1.ts(42,3)
2022
}
2123

2224
export const a = f<Stuff> `
23-
~~~~~~~~~~
24-
~~~~~
25-
!!! error TS2693: 'Stuff' only refers to a type, but is being used as a value here.
2625
hello
27-
~~~~~~~~~
2826
${stuff => stuff.x}
29-
~~~~~~~~~~~~~~~~~~~~~~~
27+
~
28+
!!! error TS2339: Property 'x' does not exist on type '{}'.
3029
brave
31-
~~~~~~~~~
3230
${stuff => stuff.y}
33-
~~~~~~~~~~~~~~~~~~~~~~~
31+
~
32+
!!! error TS2339: Property 'y' does not exist on type '{}'.
3433
world
35-
~~~~~~~~~
3634
${stuff => stuff.z}
37-
~~~~~~~~~~~~~~~~~~~~~~~
35+
~
36+
!!! error TS2339: Property 'z' does not exist on type '{}'.
3837
`;
39-
~
40-
!!! error TS2365: Operator '>' cannot be applied to types 'boolean' and 'string'.
4138

4239
declare function g<Input, T, U, V>(
4340
strs: TemplateStringsArray,
4441
t: (i: Input) => T, u: (i: Input) => U, v: (i: Input) => V): T | U | V;
4542

4643
export const b = g<Stuff, number, string, boolean> `
47-
~~~~~
48-
!!! error TS2693: 'Stuff' only refers to a type, but is being used as a value here.
49-
~
50-
!!! error TS1005: ',' expected.
5144
hello
5245
${stuff => stuff.x}
46+
~
47+
!!! error TS2339: Property 'x' does not exist on type '{}'.
5348
brave
5449
${stuff => stuff.y}
50+
~
51+
!!! error TS2339: Property 'y' does not exist on type '{}'.
5552
world
5653
${stuff => stuff.z}
54+
~
55+
!!! error TS2339: Property 'z' does not exist on type '{}'.
5756
`;
5857

5958
declare let obj: {
6059
prop: <T>(strs: TemplateStringsArray, x: (input: T) => T) => {
61-
returnedObjProp: {
62-
lastOne: T
63-
}
60+
returnedObjProp: T
6461
}
6562
}
6663

67-
export const c = obj["prop"]<Stuff> `${(input) => { ...input }}`
68-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
69-
!!! error TS2365: Operator '>' cannot be applied to types 'boolean' and 'string'.
70-
~~~~~
71-
!!! error TS2693: 'Stuff' only refers to a type, but is being used as a value here.
72-
~~~
73-
!!! error TS1128: Declaration or statement expected.
74-
c.returnedProp.x;
75-
~~~~~~~~~~~~
76-
!!! error TS2339: Property 'returnedProp' does not exist on type 'boolean'.
77-
c.returnedProp.y;
78-
~~~~~~~~~~~~
79-
!!! error TS2339: Property 'returnedProp' does not exist on type 'boolean'.
80-
c.returnedProp.z;
81-
~~~~~~~~~~~~
82-
!!! error TS2339: Property 'returnedProp' does not exist on type 'boolean'.
64+
export let c = obj["prop"]<Stuff> `${(input) => ({ ...input })}`
65+
c.returnedObjProp.x;
66+
~
67+
!!! error TS2339: Property 'x' does not exist on type '{}'.
68+
c.returnedObjProp.y;
69+
~
70+
!!! error TS2339: Property 'y' does not exist on type '{}'.
71+
c.returnedObjProp.z;
72+
~
73+
!!! error TS2339: Property 'z' does not exist on type '{}'.
74+
75+
c = obj.prop<Stuff> `${(input) => ({ ...input })}`
76+
c.returnedObjProp.x;
77+
~
78+
!!! error TS2339: Property 'x' does not exist on type '{}'.
79+
c.returnedObjProp.y;
80+
~
81+
!!! error TS2339: Property 'y' does not exist on type '{}'.
82+
c.returnedObjProp.z;
83+
~
84+
!!! error TS2339: Property 'z' does not exist on type '{}'.

tests/baselines/reference/taggedTemplatesWithTypeArguments1.js

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -31,36 +31,42 @@ export const b = g<Stuff, number, string, boolean> `
3131

3232
declare let obj: {
3333
prop: <T>(strs: TemplateStringsArray, x: (input: T) => T) => {
34-
returnedObjProp: {
35-
lastOne: T
36-
}
34+
returnedObjProp: T
3735
}
3836
}
3937

40-
export const c = obj["prop"]<Stuff> `${(input) => { ...input }}`
41-
c.returnedProp.x;
42-
c.returnedProp.y;
43-
c.returnedProp.z;
38+
export let c = obj["prop"]<Stuff> `${(input) => ({ ...input })}`
39+
c.returnedObjProp.x;
40+
c.returnedObjProp.y;
41+
c.returnedObjProp.z;
42+
43+
c = obj.prop<Stuff> `${(input) => ({ ...input })}`
44+
c.returnedObjProp.x;
45+
c.returnedObjProp.y;
46+
c.returnedObjProp.z;
4447

4548
//// [taggedTemplatesWithTypeArguments1.js]
46-
export const a = f < Stuff > `
49+
export const a = f<Stuff> `
4750
hello
4851
${stuff => stuff.x}
4952
brave
5053
${stuff => stuff.y}
5154
world
5255
${stuff => stuff.z}
5356
`;
54-
export const b = g < Stuff, number, string, boolean;
55-
> `
57+
export const b = g<Stuff, number, string, boolean> `
5658
hello
5759
${stuff => stuff.x}
5860
brave
5961
${stuff => stuff.y}
6062
world
6163
${stuff => stuff.z}
6264
`;
63-
export const c = obj["prop"] < Stuff > `${(input) => { input; }}`;
64-
c.returnedProp.x;
65-
c.returnedProp.y;
66-
c.returnedProp.z;
65+
export let c = obj["prop"]<Stuff> `${(input) => ({ ...input })}`;
66+
c.returnedObjProp.x;
67+
c.returnedObjProp.y;
68+
c.returnedObjProp.z;
69+
c = obj.prop<Stuff> `${(input) => ({ ...input })}`;
70+
c.returnedObjProp.x;
71+
c.returnedObjProp.y;
72+
c.returnedObjProp.z;

tests/baselines/reference/taggedTemplatesWithTypeArguments1.symbols

Lines changed: 44 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ interface Stuff {
2525
export const a = f<Stuff> `
2626
>a : Symbol(a, Decl(taggedTemplatesWithTypeArguments1.ts, 8, 12))
2727
>f : Symbol(f, Decl(taggedTemplatesWithTypeArguments1.ts, 0, 0))
28+
>Stuff : Symbol(Stuff, Decl(taggedTemplatesWithTypeArguments1.ts, 0, 92))
2829

2930
hello
3031
${stuff => stuff.x}
@@ -74,9 +75,7 @@ declare function g<Input, T, U, V>(
7475
export const b = g<Stuff, number, string, boolean> `
7576
>b : Symbol(b, Decl(taggedTemplatesWithTypeArguments1.ts, 21, 12))
7677
>g : Symbol(g, Decl(taggedTemplatesWithTypeArguments1.ts, 15, 2))
77-
>number : Symbol(number, Decl(taggedTemplatesWithTypeArguments1.ts, 21, 25))
78-
>string : Symbol(string, Decl(taggedTemplatesWithTypeArguments1.ts, 21, 33))
79-
>boolean : Symbol(boolean, Decl(taggedTemplatesWithTypeArguments1.ts, 21, 41))
78+
>Stuff : Symbol(Stuff, Decl(taggedTemplatesWithTypeArguments1.ts, 0, 92))
8079

8180
hello
8281
${stuff => stuff.x}
@@ -108,29 +107,56 @@ declare let obj: {
108107
>T : Symbol(T, Decl(taggedTemplatesWithTypeArguments1.ts, 31, 11))
109108
>T : Symbol(T, Decl(taggedTemplatesWithTypeArguments1.ts, 31, 11))
110109

111-
returnedObjProp: {
110+
returnedObjProp: T
112111
>returnedObjProp : Symbol(returnedObjProp, Decl(taggedTemplatesWithTypeArguments1.ts, 31, 66))
113-
114-
lastOne: T
115-
>lastOne : Symbol(lastOne, Decl(taggedTemplatesWithTypeArguments1.ts, 32, 26))
116112
>T : Symbol(T, Decl(taggedTemplatesWithTypeArguments1.ts, 31, 11))
117-
}
118113
}
119114
}
120115

121-
export const c = obj["prop"]<Stuff> `${(input) => { ...input }}`
122-
>c : Symbol(c, Decl(taggedTemplatesWithTypeArguments1.ts, 38, 12))
116+
export let c = obj["prop"]<Stuff> `${(input) => ({ ...input })}`
117+
>c : Symbol(c, Decl(taggedTemplatesWithTypeArguments1.ts, 36, 10))
123118
>obj : Symbol(obj, Decl(taggedTemplatesWithTypeArguments1.ts, 30, 11))
124119
>"prop" : Symbol(prop, Decl(taggedTemplatesWithTypeArguments1.ts, 30, 18))
125-
>input : Symbol(input, Decl(taggedTemplatesWithTypeArguments1.ts, 38, 40))
126-
>input : Symbol(input, Decl(taggedTemplatesWithTypeArguments1.ts, 38, 40))
120+
>Stuff : Symbol(Stuff, Decl(taggedTemplatesWithTypeArguments1.ts, 0, 92))
121+
>input : Symbol(input, Decl(taggedTemplatesWithTypeArguments1.ts, 36, 38))
122+
>input : Symbol(input, Decl(taggedTemplatesWithTypeArguments1.ts, 36, 38))
127123

128-
c.returnedProp.x;
129-
>c : Symbol(c, Decl(taggedTemplatesWithTypeArguments1.ts, 38, 12))
124+
c.returnedObjProp.x;
125+
>c.returnedObjProp : Symbol(returnedObjProp, Decl(taggedTemplatesWithTypeArguments1.ts, 31, 66))
126+
>c : Symbol(c, Decl(taggedTemplatesWithTypeArguments1.ts, 36, 10))
127+
>returnedObjProp : Symbol(returnedObjProp, Decl(taggedTemplatesWithTypeArguments1.ts, 31, 66))
130128

131-
c.returnedProp.y;
132-
>c : Symbol(c, Decl(taggedTemplatesWithTypeArguments1.ts, 38, 12))
129+
c.returnedObjProp.y;
130+
>c.returnedObjProp : Symbol(returnedObjProp, Decl(taggedTemplatesWithTypeArguments1.ts, 31, 66))
131+
>c : Symbol(c, Decl(taggedTemplatesWithTypeArguments1.ts, 36, 10))
132+
>returnedObjProp : Symbol(returnedObjProp, Decl(taggedTemplatesWithTypeArguments1.ts, 31, 66))
133+
134+
c.returnedObjProp.z;
135+
>c.returnedObjProp : Symbol(returnedObjProp, Decl(taggedTemplatesWithTypeArguments1.ts, 31, 66))
136+
>c : Symbol(c, Decl(taggedTemplatesWithTypeArguments1.ts, 36, 10))
137+
>returnedObjProp : Symbol(returnedObjProp, Decl(taggedTemplatesWithTypeArguments1.ts, 31, 66))
133138

134-
c.returnedProp.z;
135-
>c : Symbol(c, Decl(taggedTemplatesWithTypeArguments1.ts, 38, 12))
139+
c = obj.prop<Stuff> `${(input) => ({ ...input })}`
140+
>c : Symbol(c, Decl(taggedTemplatesWithTypeArguments1.ts, 36, 10))
141+
>obj.prop : Symbol(prop, Decl(taggedTemplatesWithTypeArguments1.ts, 30, 18))
142+
>obj : Symbol(obj, Decl(taggedTemplatesWithTypeArguments1.ts, 30, 11))
143+
>prop : Symbol(prop, Decl(taggedTemplatesWithTypeArguments1.ts, 30, 18))
144+
>Stuff : Symbol(Stuff, Decl(taggedTemplatesWithTypeArguments1.ts, 0, 92))
145+
>input : Symbol(input, Decl(taggedTemplatesWithTypeArguments1.ts, 41, 24))
146+
>input : Symbol(input, Decl(taggedTemplatesWithTypeArguments1.ts, 41, 24))
147+
148+
c.returnedObjProp.x;
149+
>c.returnedObjProp : Symbol(returnedObjProp, Decl(taggedTemplatesWithTypeArguments1.ts, 31, 66))
150+
>c : Symbol(c, Decl(taggedTemplatesWithTypeArguments1.ts, 36, 10))
151+
>returnedObjProp : Symbol(returnedObjProp, Decl(taggedTemplatesWithTypeArguments1.ts, 31, 66))
152+
153+
c.returnedObjProp.y;
154+
>c.returnedObjProp : Symbol(returnedObjProp, Decl(taggedTemplatesWithTypeArguments1.ts, 31, 66))
155+
>c : Symbol(c, Decl(taggedTemplatesWithTypeArguments1.ts, 36, 10))
156+
>returnedObjProp : Symbol(returnedObjProp, Decl(taggedTemplatesWithTypeArguments1.ts, 31, 66))
157+
158+
c.returnedObjProp.z;
159+
>c.returnedObjProp : Symbol(returnedObjProp, Decl(taggedTemplatesWithTypeArguments1.ts, 31, 66))
160+
>c : Symbol(c, Decl(taggedTemplatesWithTypeArguments1.ts, 36, 10))
161+
>returnedObjProp : Symbol(returnedObjProp, Decl(taggedTemplatesWithTypeArguments1.ts, 31, 66))
136162

0 commit comments

Comments
 (0)