Skip to content

Commit 837c3d5

Browse files
committed
Make visitor required in API
1 parent 129a69e commit 837c3d5

File tree

8 files changed

+61
-60
lines changed

8 files changed

+61
-60
lines changed

src/compiler/checker.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6637,7 +6637,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
66376637

66386638
function deepCloneOrReuseNodes(
66396639
nodes: NodeArray<Node> | undefined,
6640-
visitor: Visitor | undefined,
6640+
visitor: Visitor,
66416641
test?: (node: Node) => boolean,
66426642
start?: number,
66436643
count?: number,

src/compiler/transformers/destructuring.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ interface FlattenContext {
7474
createArrayBindingOrAssignmentPattern: (elements: BindingOrAssignmentElement[]) => ArrayBindingOrAssignmentPattern;
7575
createObjectBindingOrAssignmentPattern: (elements: BindingOrAssignmentElement[]) => ObjectBindingOrAssignmentPattern;
7676
createArrayBindingOrAssignmentElement: (node: Identifier) => BindingOrAssignmentElement;
77-
visitor?: (node: Node) => VisitResult<Node | undefined>;
77+
visitor: (node: Node) => VisitResult<Node | undefined>;
7878
}
7979

8080
/** @internal */
@@ -98,7 +98,7 @@ export const enum FlattenLevel {
9898
*/
9999
export function flattenDestructuringAssignment(
100100
node: VariableDeclaration | DestructuringAssignment,
101-
visitor: ((node: Node) => VisitResult<Node | undefined>) | undefined,
101+
visitor: ((node: Node) => VisitResult<Node | undefined>),
102102
context: TransformationContext,
103103
level: FlattenLevel,
104104
needsValue?: boolean,

src/compiler/transformers/module/module.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1573,7 +1573,7 @@ export function transformModule(context: TransformationContext): (x: SourceFile
15731573
if (isBindingPattern(node.name)) {
15741574
return flattenDestructuringAssignment(
15751575
visitNode(node, visitor, isInitializedVariable),
1576-
/*visitor*/ undefined,
1576+
visitor,
15771577
context,
15781578
FlattenLevel.All,
15791579
/*needsValue*/ false,

src/compiler/types.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9071,13 +9071,13 @@ export type Visitor<TIn extends Node = Node, TOut extends Node | undefined = TIn
90719071
export interface NodeVisitor {
90729072
<TIn extends Node | undefined, TVisited extends Node | undefined, TOut extends Node>(
90739073
node: TIn,
9074-
visitor: Visitor<NonNullable<TIn>, TVisited> | undefined,
9074+
visitor: Visitor<NonNullable<TIn>, TVisited>,
90759075
test: (node: Node) => node is TOut,
90769076
lift?: (node: readonly Node[]) => Node,
90779077
): TOut | (TIn & undefined) | (TVisited & undefined);
90789078
<TIn extends Node | undefined, TVisited extends Node | undefined>(
90799079
node: TIn,
9080-
visitor: Visitor<NonNullable<TIn>, TVisited> | undefined,
9080+
visitor: Visitor<NonNullable<TIn>, TVisited>,
90819081
test?: (node: Node) => boolean,
90829082
lift?: (node: readonly Node[]) => Node,
90839083
): Node | (TIn & undefined) | (TVisited & undefined);
@@ -9097,14 +9097,14 @@ export interface NodeVisitor {
90979097
export interface NodesVisitor {
90989098
<TIn extends Node, TInArray extends NodeArray<TIn> | undefined, TOut extends Node>(
90999099
nodes: TInArray,
9100-
visitor: Visitor<TIn, Node | undefined> | undefined,
9100+
visitor: Visitor<TIn, Node | undefined>,
91019101
test: (node: Node) => node is TOut,
91029102
start?: number,
91039103
count?: number,
91049104
): NodeArray<TOut> | (TInArray & undefined);
91059105
<TIn extends Node, TInArray extends NodeArray<TIn> | undefined>(
91069106
nodes: TInArray,
9107-
visitor: Visitor<TIn, Node | undefined> | undefined,
9107+
visitor: Visitor<TIn, Node | undefined>,
91089108
test?: (node: Node) => boolean,
91099109
start?: number,
91109110
count?: number,

src/compiler/visitorPublic.ts

Lines changed: 36 additions & 35 deletions
Large diffs are not rendered by default.

src/services/textChanges.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1344,7 +1344,7 @@ export function assignPositionsToNode(node: Node): Node {
13441344

13451345
function assignPositionsToNodeArray(
13461346
nodes: NodeArray<Node> | undefined,
1347-
visitor: Visitor | undefined,
1347+
visitor: Visitor,
13481348
test?: (node: Node) => boolean,
13491349
start?: number,
13501350
count?: number,

tests/baselines/reference/api/tsserverlibrary.d.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8205,8 +8205,8 @@ declare namespace ts {
82058205
* For the canonical implementation of this type, @see {visitNode}.
82068206
*/
82078207
interface NodeVisitor {
8208-
<TIn extends Node | undefined, TVisited extends Node | undefined, TOut extends Node>(node: TIn, visitor: Visitor<NonNullable<TIn>, TVisited> | undefined, test: (node: Node) => node is TOut, lift?: (node: readonly Node[]) => Node): TOut | (TIn & undefined) | (TVisited & undefined);
8209-
<TIn extends Node | undefined, TVisited extends Node | undefined>(node: TIn, visitor: Visitor<NonNullable<TIn>, TVisited> | undefined, test?: (node: Node) => boolean, lift?: (node: readonly Node[]) => Node): Node | (TIn & undefined) | (TVisited & undefined);
8208+
<TIn extends Node | undefined, TVisited extends Node | undefined, TOut extends Node>(node: TIn, visitor: Visitor<NonNullable<TIn>, TVisited>, test: (node: Node) => node is TOut, lift?: (node: readonly Node[]) => Node): TOut | (TIn & undefined) | (TVisited & undefined);
8209+
<TIn extends Node | undefined, TVisited extends Node | undefined>(node: TIn, visitor: Visitor<NonNullable<TIn>, TVisited>, test?: (node: Node) => boolean, lift?: (node: readonly Node[]) => Node): Node | (TIn & undefined) | (TVisited & undefined);
82108210
}
82118211
/**
82128212
* A function that walks a node array using the given visitor, returning an array whose contents satisfy the test.
@@ -8220,8 +8220,8 @@ declare namespace ts {
82208220
* For the canonical implementation of this type, @see {visitNodes}.
82218221
*/
82228222
interface NodesVisitor {
8223-
<TIn extends Node, TInArray extends NodeArray<TIn> | undefined, TOut extends Node>(nodes: TInArray, visitor: Visitor<TIn, Node | undefined> | undefined, test: (node: Node) => node is TOut, start?: number, count?: number): NodeArray<TOut> | (TInArray & undefined);
8224-
<TIn extends Node, TInArray extends NodeArray<TIn> | undefined>(nodes: TInArray, visitor: Visitor<TIn, Node | undefined> | undefined, test?: (node: Node) => boolean, start?: number, count?: number): NodeArray<Node> | (TInArray & undefined);
8223+
<TIn extends Node, TInArray extends NodeArray<TIn> | undefined, TOut extends Node>(nodes: TInArray, visitor: Visitor<TIn, Node | undefined>, test: (node: Node) => node is TOut, start?: number, count?: number): NodeArray<TOut> | (TInArray & undefined);
8224+
<TIn extends Node, TInArray extends NodeArray<TIn> | undefined>(nodes: TInArray, visitor: Visitor<TIn, Node | undefined>, test?: (node: Node) => boolean, start?: number, count?: number): NodeArray<Node> | (TInArray & undefined);
82258225
}
82268226
type VisitResult<T extends Node | undefined> = T | readonly Node[];
82278227
interface Printer {
@@ -9320,7 +9320,7 @@ declare namespace ts {
93209320
* @param test A callback to execute to verify the Node is valid.
93219321
* @param lift An optional callback to execute to lift a NodeArray into a valid Node.
93229322
*/
9323-
function visitNode<TIn extends Node | undefined, TVisited extends Node | undefined, TOut extends Node>(node: TIn, visitor: Visitor<NonNullable<TIn>, TVisited> | undefined, test: (node: Node) => node is TOut, lift?: (node: readonly Node[]) => Node): TOut | (TIn & undefined) | (TVisited & undefined);
9323+
function visitNode<TIn extends Node | undefined, TVisited extends Node | undefined, TOut extends Node>(node: TIn, visitor: Visitor<NonNullable<TIn>, TVisited>, test: (node: Node) => node is TOut, lift?: (node: readonly Node[]) => Node): TOut | (TIn & undefined) | (TVisited & undefined);
93249324
/**
93259325
* Visits a Node using the supplied visitor, possibly returning a new Node in its place.
93269326
*
@@ -9335,7 +9335,7 @@ declare namespace ts {
93359335
* @param test A callback to execute to verify the Node is valid.
93369336
* @param lift An optional callback to execute to lift a NodeArray into a valid Node.
93379337
*/
9338-
function visitNode<TIn extends Node | undefined, TVisited extends Node | undefined>(node: TIn, visitor: Visitor<NonNullable<TIn>, TVisited> | undefined, test?: (node: Node) => boolean, lift?: (node: readonly Node[]) => Node): Node | (TIn & undefined) | (TVisited & undefined);
9338+
function visitNode<TIn extends Node | undefined, TVisited extends Node | undefined>(node: TIn, visitor: Visitor<NonNullable<TIn>, TVisited>, test?: (node: Node) => boolean, lift?: (node: readonly Node[]) => Node): Node | (TIn & undefined) | (TVisited & undefined);
93399339
/**
93409340
* Visits a NodeArray using the supplied visitor, possibly returning a new NodeArray in its place.
93419341
*
@@ -9351,7 +9351,7 @@ declare namespace ts {
93519351
* @param start An optional value indicating the starting offset at which to start visiting.
93529352
* @param count An optional value indicating the maximum number of nodes to visit.
93539353
*/
9354-
function visitNodes<TIn extends Node, TInArray extends NodeArray<TIn> | undefined, TOut extends Node>(nodes: TInArray, visitor: Visitor<TIn, Node | undefined> | undefined, test: (node: Node) => node is TOut, start?: number, count?: number): NodeArray<TOut> | (TInArray & undefined);
9354+
function visitNodes<TIn extends Node, TInArray extends NodeArray<TIn> | undefined, TOut extends Node>(nodes: TInArray, visitor: Visitor<TIn, Node | undefined>, test: (node: Node) => node is TOut, start?: number, count?: number): NodeArray<TOut> | (TInArray & undefined);
93559355
/**
93569356
* Visits a NodeArray using the supplied visitor, possibly returning a new NodeArray in its place.
93579357
*
@@ -9367,7 +9367,7 @@ declare namespace ts {
93679367
* @param start An optional value indicating the starting offset at which to start visiting.
93689368
* @param count An optional value indicating the maximum number of nodes to visit.
93699369
*/
9370-
function visitNodes<TIn extends Node, TInArray extends NodeArray<TIn> | undefined>(nodes: TInArray, visitor: Visitor<TIn, Node | undefined> | undefined, test?: (node: Node) => boolean, start?: number, count?: number): NodeArray<Node> | (TInArray & undefined);
9370+
function visitNodes<TIn extends Node, TInArray extends NodeArray<TIn> | undefined>(nodes: TInArray, visitor: Visitor<TIn, Node | undefined>, test?: (node: Node) => boolean, start?: number, count?: number): NodeArray<Node> | (TInArray & undefined);
93719371
/**
93729372
* Starts a new lexical environment and visits a statement list, ending the lexical environment
93739373
* and merging hoisted declarations upon completion.

tests/baselines/reference/api/typescript.d.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4264,8 +4264,8 @@ declare namespace ts {
42644264
* For the canonical implementation of this type, @see {visitNode}.
42654265
*/
42664266
interface NodeVisitor {
4267-
<TIn extends Node | undefined, TVisited extends Node | undefined, TOut extends Node>(node: TIn, visitor: Visitor<NonNullable<TIn>, TVisited> | undefined, test: (node: Node) => node is TOut, lift?: (node: readonly Node[]) => Node): TOut | (TIn & undefined) | (TVisited & undefined);
4268-
<TIn extends Node | undefined, TVisited extends Node | undefined>(node: TIn, visitor: Visitor<NonNullable<TIn>, TVisited> | undefined, test?: (node: Node) => boolean, lift?: (node: readonly Node[]) => Node): Node | (TIn & undefined) | (TVisited & undefined);
4267+
<TIn extends Node | undefined, TVisited extends Node | undefined, TOut extends Node>(node: TIn, visitor: Visitor<NonNullable<TIn>, TVisited>, test: (node: Node) => node is TOut, lift?: (node: readonly Node[]) => Node): TOut | (TIn & undefined) | (TVisited & undefined);
4268+
<TIn extends Node | undefined, TVisited extends Node | undefined>(node: TIn, visitor: Visitor<NonNullable<TIn>, TVisited>, test?: (node: Node) => boolean, lift?: (node: readonly Node[]) => Node): Node | (TIn & undefined) | (TVisited & undefined);
42694269
}
42704270
/**
42714271
* A function that walks a node array using the given visitor, returning an array whose contents satisfy the test.
@@ -4279,8 +4279,8 @@ declare namespace ts {
42794279
* For the canonical implementation of this type, @see {visitNodes}.
42804280
*/
42814281
interface NodesVisitor {
4282-
<TIn extends Node, TInArray extends NodeArray<TIn> | undefined, TOut extends Node>(nodes: TInArray, visitor: Visitor<TIn, Node | undefined> | undefined, test: (node: Node) => node is TOut, start?: number, count?: number): NodeArray<TOut> | (TInArray & undefined);
4283-
<TIn extends Node, TInArray extends NodeArray<TIn> | undefined>(nodes: TInArray, visitor: Visitor<TIn, Node | undefined> | undefined, test?: (node: Node) => boolean, start?: number, count?: number): NodeArray<Node> | (TInArray & undefined);
4282+
<TIn extends Node, TInArray extends NodeArray<TIn> | undefined, TOut extends Node>(nodes: TInArray, visitor: Visitor<TIn, Node | undefined>, test: (node: Node) => node is TOut, start?: number, count?: number): NodeArray<TOut> | (TInArray & undefined);
4283+
<TIn extends Node, TInArray extends NodeArray<TIn> | undefined>(nodes: TInArray, visitor: Visitor<TIn, Node | undefined>, test?: (node: Node) => boolean, start?: number, count?: number): NodeArray<Node> | (TInArray & undefined);
42844284
}
42854285
type VisitResult<T extends Node | undefined> = T | readonly Node[];
42864286
interface Printer {
@@ -5379,7 +5379,7 @@ declare namespace ts {
53795379
* @param test A callback to execute to verify the Node is valid.
53805380
* @param lift An optional callback to execute to lift a NodeArray into a valid Node.
53815381
*/
5382-
function visitNode<TIn extends Node | undefined, TVisited extends Node | undefined, TOut extends Node>(node: TIn, visitor: Visitor<NonNullable<TIn>, TVisited> | undefined, test: (node: Node) => node is TOut, lift?: (node: readonly Node[]) => Node): TOut | (TIn & undefined) | (TVisited & undefined);
5382+
function visitNode<TIn extends Node | undefined, TVisited extends Node | undefined, TOut extends Node>(node: TIn, visitor: Visitor<NonNullable<TIn>, TVisited>, test: (node: Node) => node is TOut, lift?: (node: readonly Node[]) => Node): TOut | (TIn & undefined) | (TVisited & undefined);
53835383
/**
53845384
* Visits a Node using the supplied visitor, possibly returning a new Node in its place.
53855385
*
@@ -5394,7 +5394,7 @@ declare namespace ts {
53945394
* @param test A callback to execute to verify the Node is valid.
53955395
* @param lift An optional callback to execute to lift a NodeArray into a valid Node.
53965396
*/
5397-
function visitNode<TIn extends Node | undefined, TVisited extends Node | undefined>(node: TIn, visitor: Visitor<NonNullable<TIn>, TVisited> | undefined, test?: (node: Node) => boolean, lift?: (node: readonly Node[]) => Node): Node | (TIn & undefined) | (TVisited & undefined);
5397+
function visitNode<TIn extends Node | undefined, TVisited extends Node | undefined>(node: TIn, visitor: Visitor<NonNullable<TIn>, TVisited>, test?: (node: Node) => boolean, lift?: (node: readonly Node[]) => Node): Node | (TIn & undefined) | (TVisited & undefined);
53985398
/**
53995399
* Visits a NodeArray using the supplied visitor, possibly returning a new NodeArray in its place.
54005400
*
@@ -5410,7 +5410,7 @@ declare namespace ts {
54105410
* @param start An optional value indicating the starting offset at which to start visiting.
54115411
* @param count An optional value indicating the maximum number of nodes to visit.
54125412
*/
5413-
function visitNodes<TIn extends Node, TInArray extends NodeArray<TIn> | undefined, TOut extends Node>(nodes: TInArray, visitor: Visitor<TIn, Node | undefined> | undefined, test: (node: Node) => node is TOut, start?: number, count?: number): NodeArray<TOut> | (TInArray & undefined);
5413+
function visitNodes<TIn extends Node, TInArray extends NodeArray<TIn> | undefined, TOut extends Node>(nodes: TInArray, visitor: Visitor<TIn, Node | undefined>, test: (node: Node) => node is TOut, start?: number, count?: number): NodeArray<TOut> | (TInArray & undefined);
54145414
/**
54155415
* Visits a NodeArray using the supplied visitor, possibly returning a new NodeArray in its place.
54165416
*
@@ -5426,7 +5426,7 @@ declare namespace ts {
54265426
* @param start An optional value indicating the starting offset at which to start visiting.
54275427
* @param count An optional value indicating the maximum number of nodes to visit.
54285428
*/
5429-
function visitNodes<TIn extends Node, TInArray extends NodeArray<TIn> | undefined>(nodes: TInArray, visitor: Visitor<TIn, Node | undefined> | undefined, test?: (node: Node) => boolean, start?: number, count?: number): NodeArray<Node> | (TInArray & undefined);
5429+
function visitNodes<TIn extends Node, TInArray extends NodeArray<TIn> | undefined>(nodes: TInArray, visitor: Visitor<TIn, Node | undefined>, test?: (node: Node) => boolean, start?: number, count?: number): NodeArray<Node> | (TInArray & undefined);
54305430
/**
54315431
* Starts a new lexical environment and visits a statement list, ending the lexical environment
54325432
* and merging hoisted declarations upon completion.

0 commit comments

Comments
 (0)