1+ // === /tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts ===
2+ // const obj = { /*FIND ALL REFS*/[|a|]: 1, b: 2 };
3+ // const filtered: { [P in keyof typeof obj as P extends 'b' ? never : P]: 0; } = { [|a|]: 0 };
4+ // filtered.[|a|];
5+
6+ [
7+ {
8+ "definition" : {
9+ "containerKind" : " " ,
10+ "containerName" : " " ,
11+ "fileName" : " /tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts" ,
12+ "kind" : " property" ,
13+ "name" : " (property) a: number" ,
14+ "textSpan" : {
15+ "start" : 14 ,
16+ "length" : 1
17+ },
18+ "displayParts" : [
19+ {
20+ "text" : " (" ,
21+ "kind" : " punctuation"
22+ },
23+ {
24+ "text" : " property" ,
25+ "kind" : " text"
26+ },
27+ {
28+ "text" : " )" ,
29+ "kind" : " punctuation"
30+ },
31+ {
32+ "text" : " " ,
33+ "kind" : " space"
34+ },
35+ {
36+ "text" : " a" ,
37+ "kind" : " propertyName"
38+ },
39+ {
40+ "text" : " :" ,
41+ "kind" : " punctuation"
42+ },
43+ {
44+ "text" : " " ,
45+ "kind" : " space"
46+ },
47+ {
48+ "text" : " number" ,
49+ "kind" : " keyword"
50+ }
51+ ],
52+ "contextSpan" : {
53+ "start" : 14 ,
54+ "length" : 4
55+ }
56+ },
57+ "references" : [
58+ {
59+ "textSpan" : {
60+ "start" : 14 ,
61+ "length" : 1
62+ },
63+ "fileName" : " /tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts" ,
64+ "contextSpan" : {
65+ "start" : 14 ,
66+ "length" : 4
67+ },
68+ "isWriteAccess" : true ,
69+ "isDefinition" : true
70+ },
71+ {
72+ "textSpan" : {
73+ "start" : 109 ,
74+ "length" : 1
75+ },
76+ "fileName" : " /tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts" ,
77+ "contextSpan" : {
78+ "start" : 109 ,
79+ "length" : 4
80+ },
81+ "isWriteAccess" : true ,
82+ "isDefinition" : false
83+ },
84+ {
85+ "textSpan" : {
86+ "start" : 126 ,
87+ "length" : 1
88+ },
89+ "fileName" : " /tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts" ,
90+ "isWriteAccess" : false ,
91+ "isDefinition" : false
92+ }
93+ ]
94+ }
95+ ]
96+
97+ // === /tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts ===
98+ // const obj = { [|a|]: 1, b: 2 };
99+ // const filtered: { [P in keyof typeof obj as P extends 'b' ? never : P]: 0; } = { /*FIND ALL REFS*/[|a|]: 0 };
100+ // filtered.[|a|];
101+
102+ [
103+ {
104+ "definition" : {
105+ "containerKind" : " " ,
106+ "containerName" : " " ,
107+ "fileName" : " /tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts" ,
108+ "kind" : " property" ,
109+ "name" : " (property) a: number" ,
110+ "textSpan" : {
111+ "start" : 14 ,
112+ "length" : 1
113+ },
114+ "displayParts" : [
115+ {
116+ "text" : " (" ,
117+ "kind" : " punctuation"
118+ },
119+ {
120+ "text" : " property" ,
121+ "kind" : " text"
122+ },
123+ {
124+ "text" : " )" ,
125+ "kind" : " punctuation"
126+ },
127+ {
128+ "text" : " " ,
129+ "kind" : " space"
130+ },
131+ {
132+ "text" : " a" ,
133+ "kind" : " propertyName"
134+ },
135+ {
136+ "text" : " :" ,
137+ "kind" : " punctuation"
138+ },
139+ {
140+ "text" : " " ,
141+ "kind" : " space"
142+ },
143+ {
144+ "text" : " number" ,
145+ "kind" : " keyword"
146+ }
147+ ],
148+ "contextSpan" : {
149+ "start" : 14 ,
150+ "length" : 4
151+ }
152+ },
153+ "references" : [
154+ {
155+ "textSpan" : {
156+ "start" : 14 ,
157+ "length" : 1
158+ },
159+ "fileName" : " /tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts" ,
160+ "contextSpan" : {
161+ "start" : 14 ,
162+ "length" : 4
163+ },
164+ "isWriteAccess" : true ,
165+ "isDefinition" : false
166+ },
167+ {
168+ "textSpan" : {
169+ "start" : 109 ,
170+ "length" : 1
171+ },
172+ "fileName" : " /tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts" ,
173+ "contextSpan" : {
174+ "start" : 109 ,
175+ "length" : 4
176+ },
177+ "isWriteAccess" : true ,
178+ "isDefinition" : true
179+ },
180+ {
181+ "textSpan" : {
182+ "start" : 126 ,
183+ "length" : 1
184+ },
185+ "fileName" : " /tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts" ,
186+ "isWriteAccess" : false ,
187+ "isDefinition" : false
188+ }
189+ ]
190+ }
191+ ]
192+
193+ // === /tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts ===
194+ // const obj = { [|a|]: 1, b: 2 };
195+ // const filtered: { [P in keyof typeof obj as P extends 'b' ? never : P]: 0; } = { [|a|]: 0 };
196+ // filtered./*FIND ALL REFS*/[|a|];
197+
198+ [
199+ {
200+ "definition" : {
201+ "containerKind" : " " ,
202+ "containerName" : " " ,
203+ "fileName" : " /tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts" ,
204+ "kind" : " property" ,
205+ "name" : " (property) a: number" ,
206+ "textSpan" : {
207+ "start" : 14 ,
208+ "length" : 1
209+ },
210+ "displayParts" : [
211+ {
212+ "text" : " (" ,
213+ "kind" : " punctuation"
214+ },
215+ {
216+ "text" : " property" ,
217+ "kind" : " text"
218+ },
219+ {
220+ "text" : " )" ,
221+ "kind" : " punctuation"
222+ },
223+ {
224+ "text" : " " ,
225+ "kind" : " space"
226+ },
227+ {
228+ "text" : " a" ,
229+ "kind" : " propertyName"
230+ },
231+ {
232+ "text" : " :" ,
233+ "kind" : " punctuation"
234+ },
235+ {
236+ "text" : " " ,
237+ "kind" : " space"
238+ },
239+ {
240+ "text" : " number" ,
241+ "kind" : " keyword"
242+ }
243+ ],
244+ "contextSpan" : {
245+ "start" : 14 ,
246+ "length" : 4
247+ }
248+ },
249+ "references" : [
250+ {
251+ "textSpan" : {
252+ "start" : 14 ,
253+ "length" : 1
254+ },
255+ "fileName" : " /tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts" ,
256+ "contextSpan" : {
257+ "start" : 14 ,
258+ "length" : 4
259+ },
260+ "isWriteAccess" : true
261+ },
262+ {
263+ "textSpan" : {
264+ "start" : 109 ,
265+ "length" : 1
266+ },
267+ "fileName" : " /tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts" ,
268+ "contextSpan" : {
269+ "start" : 109 ,
270+ "length" : 4
271+ },
272+ "isWriteAccess" : true
273+ },
274+ {
275+ "textSpan" : {
276+ "start" : 126 ,
277+ "length" : 1
278+ },
279+ "fileName" : " /tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts" ,
280+ "isWriteAccess" : false
281+ }
282+ ]
283+ }
284+ ]
0 commit comments