Skip to content

Commit d045f18

Browse files
authored
fix(54954): Javascript Intellisense adding "this." to function declaration (#55119)
1 parent 607d96f commit d045f18

File tree

3 files changed

+265
-0
lines changed

3 files changed

+265
-0
lines changed

src/services/completions.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5298,6 +5298,11 @@ function tryGetObjectTypeDeclarationCompletionContainer(sourceFile: SourceFile,
52985298
return cls;
52995299
}
53005300
break;
5301+
case SyntaxKind.PrivateIdentifier:
5302+
if (tryCast(location.parent, isPropertyDeclaration)) {
5303+
return findAncestor(location, isClassLike);
5304+
}
5305+
break;
53015306
case SyntaxKind.Identifier: {
53025307
const originalKeywordKind = identifierToKeywordKind(location as Identifier);
53035308
if (originalKeywordKind) {
Lines changed: 246 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,246 @@
1+
=== /a.js ===
2+
// class C1 {
3+
// async #fo
4+
// ^
5+
// | ----------------------------------------------------------------------
6+
// | accessor
7+
// | async
8+
// | constructor
9+
// | get
10+
// | set
11+
// | static
12+
// | (warning) C1
13+
// | (warning) C2
14+
// | (warning) fo
15+
// | ----------------------------------------------------------------------
16+
// }
17+
// class C2 {
18+
// async fo
19+
// ^^
20+
// | ----------------------------------------------------------------------
21+
// | accessor
22+
// | async
23+
// | constructor
24+
// | get
25+
// | set
26+
// | static
27+
// | (warning) C1
28+
// | (warning) C2
29+
// | ----------------------------------------------------------------------
30+
// }
31+
32+
[
33+
{
34+
"marker": {
35+
"fileName": "/a.js",
36+
"position": 24,
37+
"name": "a"
38+
},
39+
"item": {
40+
"flags": 0,
41+
"isGlobalCompletion": false,
42+
"isMemberCompletion": true,
43+
"isNewIdentifierLocation": true,
44+
"entries": [
45+
{
46+
"name": "accessor",
47+
"kind": "keyword",
48+
"kindModifiers": "",
49+
"sortText": "15",
50+
"displayParts": [
51+
{
52+
"text": "accessor",
53+
"kind": "keyword"
54+
}
55+
]
56+
},
57+
{
58+
"name": "async",
59+
"kind": "keyword",
60+
"kindModifiers": "",
61+
"sortText": "15",
62+
"displayParts": [
63+
{
64+
"text": "async",
65+
"kind": "keyword"
66+
}
67+
]
68+
},
69+
{
70+
"name": "constructor",
71+
"kind": "keyword",
72+
"kindModifiers": "",
73+
"sortText": "15",
74+
"displayParts": [
75+
{
76+
"text": "constructor",
77+
"kind": "keyword"
78+
}
79+
]
80+
},
81+
{
82+
"name": "get",
83+
"kind": "keyword",
84+
"kindModifiers": "",
85+
"sortText": "15",
86+
"displayParts": [
87+
{
88+
"text": "get",
89+
"kind": "keyword"
90+
}
91+
]
92+
},
93+
{
94+
"name": "set",
95+
"kind": "keyword",
96+
"kindModifiers": "",
97+
"sortText": "15",
98+
"displayParts": [
99+
{
100+
"text": "set",
101+
"kind": "keyword"
102+
}
103+
]
104+
},
105+
{
106+
"name": "static",
107+
"kind": "keyword",
108+
"kindModifiers": "",
109+
"sortText": "15",
110+
"displayParts": [
111+
{
112+
"text": "static",
113+
"kind": "keyword"
114+
}
115+
]
116+
},
117+
{
118+
"name": "C1",
119+
"kind": "warning",
120+
"kindModifiers": "",
121+
"sortText": "18",
122+
"isFromUncheckedFile": true
123+
},
124+
{
125+
"name": "C2",
126+
"kind": "warning",
127+
"kindModifiers": "",
128+
"sortText": "18",
129+
"isFromUncheckedFile": true
130+
},
131+
{
132+
"name": "fo",
133+
"kind": "warning",
134+
"kindModifiers": "",
135+
"sortText": "18",
136+
"isFromUncheckedFile": true
137+
}
138+
]
139+
}
140+
},
141+
{
142+
"marker": {
143+
"fileName": "/a.js",
144+
"position": 50,
145+
"name": "b"
146+
},
147+
"item": {
148+
"flags": 0,
149+
"isGlobalCompletion": false,
150+
"isMemberCompletion": true,
151+
"isNewIdentifierLocation": true,
152+
"optionalReplacementSpan": {
153+
"start": 48,
154+
"length": 2
155+
},
156+
"entries": [
157+
{
158+
"name": "accessor",
159+
"kind": "keyword",
160+
"kindModifiers": "",
161+
"sortText": "15",
162+
"displayParts": [
163+
{
164+
"text": "accessor",
165+
"kind": "keyword"
166+
}
167+
]
168+
},
169+
{
170+
"name": "async",
171+
"kind": "keyword",
172+
"kindModifiers": "",
173+
"sortText": "15",
174+
"displayParts": [
175+
{
176+
"text": "async",
177+
"kind": "keyword"
178+
}
179+
]
180+
},
181+
{
182+
"name": "constructor",
183+
"kind": "keyword",
184+
"kindModifiers": "",
185+
"sortText": "15",
186+
"displayParts": [
187+
{
188+
"text": "constructor",
189+
"kind": "keyword"
190+
}
191+
]
192+
},
193+
{
194+
"name": "get",
195+
"kind": "keyword",
196+
"kindModifiers": "",
197+
"sortText": "15",
198+
"displayParts": [
199+
{
200+
"text": "get",
201+
"kind": "keyword"
202+
}
203+
]
204+
},
205+
{
206+
"name": "set",
207+
"kind": "keyword",
208+
"kindModifiers": "",
209+
"sortText": "15",
210+
"displayParts": [
211+
{
212+
"text": "set",
213+
"kind": "keyword"
214+
}
215+
]
216+
},
217+
{
218+
"name": "static",
219+
"kind": "keyword",
220+
"kindModifiers": "",
221+
"sortText": "15",
222+
"displayParts": [
223+
{
224+
"text": "static",
225+
"kind": "keyword"
226+
}
227+
]
228+
},
229+
{
230+
"name": "C1",
231+
"kind": "warning",
232+
"kindModifiers": "",
233+
"sortText": "18",
234+
"isFromUncheckedFile": true
235+
},
236+
{
237+
"name": "C2",
238+
"kind": "warning",
239+
"kindModifiers": "",
240+
"sortText": "18",
241+
"isFromUncheckedFile": true
242+
}
243+
]
244+
}
245+
}
246+
]
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
/// <reference path="fourslash.ts" />
2+
3+
// @allowJs: true
4+
// @filename: /a.js
5+
////class C1 {
6+
//// async #fo/*a*/
7+
////}
8+
////class C2 {
9+
//// async fo/*b*/
10+
////}
11+
12+
verify.baselineCompletions({
13+
includeInsertTextCompletions: true,
14+
});

0 commit comments

Comments
 (0)