Skip to content

Commit bcd22b4

Browse files
authored
fix(50048): remove token name from id (#50051)
1 parent b5b02ee commit bcd22b4

File tree

2 files changed

+41
-3
lines changed

2 files changed

+41
-3
lines changed

src/services/codefixes/fixAddMissingConstraint.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,13 @@ namespace ts.codefix {
2626
fixIds: [fixId],
2727
getAllCodeActions: context => {
2828
const { program, preferences, host } = context;
29-
const seen = new Map<string, true>();
29+
const seen = new Map<number, true>();
3030

3131
return createCombinedCodeActions(textChanges.ChangeTracker.with(context, changes => {
3232
eachDiagnostic(context, errorCodes, diag => {
3333
const info = getInfo(program, diag.file, createTextSpan(diag.start, diag.length));
3434
if (info) {
35-
const id = getNodeId(info.declaration) + "#" + info.token.getText();
36-
if (addToSeen(seen, id)) {
35+
if (addToSeen(seen, getNodeId(info.declaration))) {
3736
return addMissingConstraint(changes, program, preferences, host, diag.file, info);
3837
}
3938
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/// <reference path="fourslash.ts" />
2+
3+
// @strict: true
4+
// @filename: /foo.ts
5+
////export interface RendererElement {
6+
//// [key: string]: any
7+
////}
8+
////
9+
////export interface VNode<HostElement extends RendererElement> {
10+
//// target: HostElement | null;
11+
////}
12+
////
13+
////export function cloneVNode<U>(vnode: VNode<U>): VNode<U> {
14+
//// const cloned: VNode<RendererElement> = {
15+
//// target: vnode.target,
16+
//// }
17+
//// return cloned;
18+
////}
19+
20+
goTo.file("/foo.ts");
21+
verify.codeFixAll({
22+
fixId: "addMissingConstraint",
23+
fixAllDescription: ts.Diagnostics.Add_extends_constraint_to_all_type_parameters.message,
24+
newFileContent:
25+
`export interface RendererElement {
26+
[key: string]: any
27+
}
28+
29+
export interface VNode<HostElement extends RendererElement> {
30+
target: HostElement | null;
31+
}
32+
33+
export function cloneVNode<U extends RendererElement>(vnode: VNode<U>): VNode<U> {
34+
const cloned: VNode<RendererElement> = {
35+
target: vnode.target,
36+
}
37+
return cloned;
38+
}`
39+
})

0 commit comments

Comments
 (0)