Skip to content

Commit 73acd03

Browse files
committed
Add test cases for indexedAccessWithFreshObjectLiteral
1 parent e775c2a commit 73acd03

4 files changed

+455
-0
lines changed
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
//// [indexedAccessWithFreshObjectLiteral.ts]
2+
// @strict: true
3+
4+
function foo (id: string) {
5+
return {
6+
a: 1,
7+
b: "",
8+
c: true
9+
}[id]
10+
}
11+
12+
function bar (id: 'a' | 'b') {
13+
return {
14+
a: 1,
15+
b: "",
16+
c: false
17+
}[id]
18+
}
19+
20+
function baz (id: '1' | '2') {
21+
return {
22+
1: 1,
23+
2: "",
24+
3: false
25+
}[id]
26+
}
27+
28+
function qux (id: 1 | 2) {
29+
return {
30+
1: 1,
31+
2: "",
32+
3: false
33+
}[id]
34+
}
35+
36+
function quux (id: 'a' | 'b' | 'z') {
37+
return {
38+
a: 1,
39+
b: "",
40+
c: false
41+
}[id]
42+
}
43+
44+
function corge(id: string) {
45+
return ({
46+
a: 123,
47+
b: ""
48+
} as Record<string, number | string>)[id]
49+
}
50+
51+
function grault(id: string) {
52+
return ({
53+
a: 123,
54+
b: ""
55+
} as { [k: string]: string | number})[id]
56+
}
57+
58+
59+
//// [indexedAccessWithFreshObjectLiteral.js]
60+
// @strict: true
61+
function foo(id) {
62+
return {
63+
a: 1,
64+
b: "",
65+
c: true
66+
}[id];
67+
}
68+
function bar(id) {
69+
return {
70+
a: 1,
71+
b: "",
72+
c: false
73+
}[id];
74+
}
75+
function baz(id) {
76+
return {
77+
1: 1,
78+
2: "",
79+
3: false
80+
}[id];
81+
}
82+
function qux(id) {
83+
return {
84+
1: 1,
85+
2: "",
86+
3: false
87+
}[id];
88+
}
89+
function quux(id) {
90+
return {
91+
a: 1,
92+
b: "",
93+
c: false
94+
}[id];
95+
}
96+
function corge(id) {
97+
return {
98+
a: 123,
99+
b: ""
100+
}[id];
101+
}
102+
function grault(id) {
103+
return {
104+
a: 123,
105+
b: ""
106+
}[id];
107+
}
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
=== tests/cases/compiler/indexedAccessWithFreshObjectLiteral.ts ===
2+
// @strict: true
3+
4+
function foo (id: string) {
5+
>foo : Symbol(foo, Decl(indexedAccessWithFreshObjectLiteral.ts, 0, 0))
6+
>id : Symbol(id, Decl(indexedAccessWithFreshObjectLiteral.ts, 2, 14))
7+
8+
return {
9+
a: 1,
10+
>a : Symbol(a, Decl(indexedAccessWithFreshObjectLiteral.ts, 3, 10))
11+
12+
b: "",
13+
>b : Symbol(b, Decl(indexedAccessWithFreshObjectLiteral.ts, 4, 11))
14+
15+
c: true
16+
>c : Symbol(c, Decl(indexedAccessWithFreshObjectLiteral.ts, 5, 12))
17+
18+
}[id]
19+
>id : Symbol(id, Decl(indexedAccessWithFreshObjectLiteral.ts, 2, 14))
20+
}
21+
22+
function bar (id: 'a' | 'b') {
23+
>bar : Symbol(bar, Decl(indexedAccessWithFreshObjectLiteral.ts, 8, 1))
24+
>id : Symbol(id, Decl(indexedAccessWithFreshObjectLiteral.ts, 10, 14))
25+
26+
return {
27+
a: 1,
28+
>a : Symbol(a, Decl(indexedAccessWithFreshObjectLiteral.ts, 11, 10))
29+
30+
b: "",
31+
>b : Symbol(b, Decl(indexedAccessWithFreshObjectLiteral.ts, 12, 11))
32+
33+
c: false
34+
>c : Symbol(c, Decl(indexedAccessWithFreshObjectLiteral.ts, 13, 12))
35+
36+
}[id]
37+
>id : Symbol(id, Decl(indexedAccessWithFreshObjectLiteral.ts, 10, 14))
38+
}
39+
40+
function baz (id: '1' | '2') {
41+
>baz : Symbol(baz, Decl(indexedAccessWithFreshObjectLiteral.ts, 16, 1))
42+
>id : Symbol(id, Decl(indexedAccessWithFreshObjectLiteral.ts, 18, 14))
43+
44+
return {
45+
1: 1,
46+
>1 : Symbol(1, Decl(indexedAccessWithFreshObjectLiteral.ts, 19, 10))
47+
48+
2: "",
49+
>2 : Symbol(2, Decl(indexedAccessWithFreshObjectLiteral.ts, 20, 11))
50+
51+
3: false
52+
>3 : Symbol(3, Decl(indexedAccessWithFreshObjectLiteral.ts, 21, 12))
53+
54+
}[id]
55+
>id : Symbol(id, Decl(indexedAccessWithFreshObjectLiteral.ts, 18, 14))
56+
}
57+
58+
function qux (id: 1 | 2) {
59+
>qux : Symbol(qux, Decl(indexedAccessWithFreshObjectLiteral.ts, 24, 1))
60+
>id : Symbol(id, Decl(indexedAccessWithFreshObjectLiteral.ts, 26, 14))
61+
62+
return {
63+
1: 1,
64+
>1 : Symbol(1, Decl(indexedAccessWithFreshObjectLiteral.ts, 27, 10))
65+
66+
2: "",
67+
>2 : Symbol(2, Decl(indexedAccessWithFreshObjectLiteral.ts, 28, 11))
68+
69+
3: false
70+
>3 : Symbol(3, Decl(indexedAccessWithFreshObjectLiteral.ts, 29, 12))
71+
72+
}[id]
73+
>id : Symbol(id, Decl(indexedAccessWithFreshObjectLiteral.ts, 26, 14))
74+
}
75+
76+
function quux (id: 'a' | 'b' | 'z') {
77+
>quux : Symbol(quux, Decl(indexedAccessWithFreshObjectLiteral.ts, 32, 1))
78+
>id : Symbol(id, Decl(indexedAccessWithFreshObjectLiteral.ts, 34, 15))
79+
80+
return {
81+
a: 1,
82+
>a : Symbol(a, Decl(indexedAccessWithFreshObjectLiteral.ts, 35, 10))
83+
84+
b: "",
85+
>b : Symbol(b, Decl(indexedAccessWithFreshObjectLiteral.ts, 36, 11))
86+
87+
c: false
88+
>c : Symbol(c, Decl(indexedAccessWithFreshObjectLiteral.ts, 37, 12))
89+
90+
}[id]
91+
>id : Symbol(id, Decl(indexedAccessWithFreshObjectLiteral.ts, 34, 15))
92+
}
93+
94+
function corge(id: string) {
95+
>corge : Symbol(corge, Decl(indexedAccessWithFreshObjectLiteral.ts, 40, 1))
96+
>id : Symbol(id, Decl(indexedAccessWithFreshObjectLiteral.ts, 42, 15))
97+
98+
return ({
99+
a: 123,
100+
>a : Symbol(a, Decl(indexedAccessWithFreshObjectLiteral.ts, 43, 11))
101+
102+
b: ""
103+
>b : Symbol(b, Decl(indexedAccessWithFreshObjectLiteral.ts, 44, 13))
104+
105+
} as Record<string, number | string>)[id]
106+
>Record : Symbol(Record, Decl(lib.es5.d.ts, --, --))
107+
>id : Symbol(id, Decl(indexedAccessWithFreshObjectLiteral.ts, 42, 15))
108+
}
109+
110+
function grault(id: string) {
111+
>grault : Symbol(grault, Decl(indexedAccessWithFreshObjectLiteral.ts, 47, 1))
112+
>id : Symbol(id, Decl(indexedAccessWithFreshObjectLiteral.ts, 49, 16))
113+
114+
return ({
115+
a: 123,
116+
>a : Symbol(a, Decl(indexedAccessWithFreshObjectLiteral.ts, 50, 11))
117+
118+
b: ""
119+
>b : Symbol(b, Decl(indexedAccessWithFreshObjectLiteral.ts, 51, 13))
120+
121+
} as { [k: string]: string | number})[id]
122+
>k : Symbol(k, Decl(indexedAccessWithFreshObjectLiteral.ts, 53, 10))
123+
>id : Symbol(id, Decl(indexedAccessWithFreshObjectLiteral.ts, 49, 16))
124+
}
125+

0 commit comments

Comments
 (0)