Skip to content

Commit 966e732

Browse files
authored
Remove uses of visitNodes and visitNode in visitEachChild (#49992)
1 parent 6aefc1d commit 966e732

File tree

3 files changed

+70
-6
lines changed

3 files changed

+70
-6
lines changed

src/compiler/visitorPublic.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -616,7 +616,7 @@ namespace ts {
616616
nodeVisitor(node.argument, visitor, isTypeNode),
617617
nodeVisitor(node.assertions, visitor, isNode),
618618
nodeVisitor(node.qualifier, visitor, isEntityName),
619-
visitNodes(node.typeArguments, visitor, isTypeNode),
619+
nodesVisitor(node.typeArguments, visitor, isTypeNode),
620620
node.isTypeOf
621621
);
622622

@@ -630,10 +630,10 @@ namespace ts {
630630
case SyntaxKind.NamedTupleMember:
631631
Debug.type<NamedTupleMember>(node);
632632
return factory.updateNamedTupleMember(node,
633-
visitNode(node.dotDotDotToken, visitor, isDotDotDotToken),
634-
visitNode(node.name, visitor, isIdentifier),
635-
visitNode(node.questionToken, visitor, isQuestionToken),
636-
visitNode(node.type, visitor, isTypeNode),
633+
nodeVisitor(node.dotDotDotToken, visitor, isDotDotDotToken),
634+
nodeVisitor(node.name, visitor, isIdentifier),
635+
nodeVisitor(node.questionToken, visitor, isQuestionToken),
636+
nodeVisitor(node.type, visitor, isTypeNode),
637637
);
638638

639639
case SyntaxKind.ParenthesizedType:
@@ -761,7 +761,7 @@ namespace ts {
761761
Debug.type<TaggedTemplateExpression>(node);
762762
return factory.updateTaggedTemplateExpression(node,
763763
nodeVisitor(node.tag, visitor, isExpression),
764-
visitNodes(node.typeArguments, visitor, isTypeNode),
764+
nodesVisitor(node.typeArguments, visitor, isTypeNode),
765765
nodeVisitor(node.template, visitor, isTemplateLiteral));
766766

767767
case SyntaxKind.TypeAssertionExpression:

src/services/formatting/formatting.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -691,6 +691,7 @@ namespace ts.formatting {
691691
undecoratedParentStartLine: number,
692692
isListItem: boolean,
693693
isFirstListItem?: boolean): number {
694+
Debug.assert(!nodeIsSynthesized(child));
694695

695696
if (nodeIsMissing(child)) {
696697
return inheritedIndentation;
@@ -778,6 +779,7 @@ namespace ts.formatting {
778779
parentStartLine: number,
779780
parentDynamicIndentation: DynamicIndentation): void {
780781
Debug.assert(isNodeArray(nodes));
782+
Debug.assert(!nodeIsSynthesized(nodes));
781783

782784
const listStartToken = getOpenTokenForList(parent, nodes);
783785

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
/// <reference path="fourslash.ts" />
2+
3+
// @filename: /project/tsconfig.json
4+
//// {}
5+
6+
// @filename: /project/index.esm.d.ts
7+
//// export declare class Chart {
8+
//// constructor(config: ChartConfiguration);
9+
//// }
10+
////
11+
//// export interface ChartConfiguration {
12+
//// options?: Partial<TickOptions>;
13+
//// }
14+
////
15+
//// export interface TickOptions {
16+
//// callback: (this: Scale, tickValue: number | string) => string | string[] | number | number[] | null | undefined;
17+
//// }
18+
////
19+
//// export interface CoreScaleOptions {
20+
//// opt: boolean;
21+
//// }
22+
////
23+
//// export interface Scale<O extends CoreScaleOptions = CoreScaleOptions> {
24+
//// opts: O;
25+
//// getLabelForValue(value: number): string;
26+
//// }
27+
28+
// @filename: /project/options.ts
29+
//// import { Chart } from './index.esm';
30+
////
31+
//// const chart = new Chart({
32+
//// options: {
33+
//// callback(tickValue) {
34+
//// /*a*/const value = this.getLabelForValue(tickValue as number);/*b*/
35+
//// return '$' + value;
36+
//// }
37+
//// }
38+
//// });
39+
40+
goTo.file("/project/options.ts");
41+
verify.noErrors();
42+
goTo.select("a", "b");
43+
edit.applyRefactor({
44+
refactorName: "Extract Symbol",
45+
actionName: "function_scope_0",
46+
actionDescription: "Extract to inner function in method 'callback'",
47+
newContent:
48+
`import { Chart } from './index.esm';
49+
50+
const chart = new Chart({
51+
options: {
52+
callback(tickValue) {
53+
const value = /*RENAME*/newFunction.call(this);
54+
return '$' + value;
55+
56+
function newFunction(this: import("/project/index.esm").Scale<import("/project/index.esm").CoreScaleOptions>) {
57+
return this.getLabelForValue(tickValue as number);
58+
}
59+
}
60+
}
61+
});`
62+
});

0 commit comments

Comments
 (0)