hermes-estree 0.18.0 → 0.18.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,7 +5,6 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
7
  * @flow strict-local
8
- * @format
9
8
  * @generated
10
9
  */
11
10
 
@@ -21,1233 +20,1594 @@
21
20
 
22
21
  'use strict';
23
22
 
24
- import type {ESNode, Token} from 'hermes-estree';
23
+ /*::
24
+ import type {
25
+ ESNode,
26
+ Token,
27
+ Identifier,
28
+ JSXIdentifier,
29
+ JSXText,
30
+ AnyTypeAnnotation,
31
+ ArrayExpression,
32
+ ArrayPattern,
33
+ ArrayTypeAnnotation,
34
+ ArrowFunctionExpression,
35
+ AsExpression,
36
+ AssignmentExpression,
37
+ AssignmentPattern,
38
+ AwaitExpression,
39
+ BigIntLiteralTypeAnnotation,
40
+ BigIntTypeAnnotation,
41
+ BinaryExpression,
42
+ BlockStatement,
43
+ BooleanLiteralTypeAnnotation,
44
+ BooleanTypeAnnotation,
45
+ BreakStatement,
46
+ CallExpression,
47
+ CatchClause,
48
+ ChainExpression,
49
+ ClassBody,
50
+ ClassDeclaration,
51
+ ClassExpression,
52
+ ClassImplements,
53
+ ComponentDeclaration,
54
+ ComponentParameter,
55
+ ComponentTypeAnnotation,
56
+ ComponentTypeParameter,
57
+ ConditionalExpression,
58
+ ConditionalTypeAnnotation,
59
+ ContinueStatement,
60
+ DebuggerStatement,
61
+ DeclareClass,
62
+ DeclareComponent,
63
+ DeclaredPredicate,
64
+ DeclareEnum,
65
+ DeclareExportAllDeclaration,
66
+ DeclareExportDeclaration,
67
+ DeclareFunction,
68
+ DeclareInterface,
69
+ DeclareModule,
70
+ DeclareModuleExports,
71
+ DeclareOpaqueType,
72
+ DeclareTypeAlias,
73
+ DeclareVariable,
74
+ DoWhileStatement,
75
+ EmptyStatement,
76
+ EmptyTypeAnnotation,
77
+ EnumBooleanBody,
78
+ EnumBooleanMember,
79
+ EnumDeclaration,
80
+ EnumDefaultedMember,
81
+ EnumNumberBody,
82
+ EnumNumberMember,
83
+ EnumStringBody,
84
+ EnumStringMember,
85
+ EnumSymbolBody,
86
+ ExistsTypeAnnotation,
87
+ ExportAllDeclaration,
88
+ ExportDefaultDeclaration,
89
+ ExportNamedDeclaration,
90
+ ExportSpecifier,
91
+ ExpressionStatement,
92
+ ForInStatement,
93
+ ForOfStatement,
94
+ ForStatement,
95
+ FunctionDeclaration,
96
+ FunctionExpression,
97
+ FunctionTypeAnnotation,
98
+ FunctionTypeParam,
99
+ GenericTypeAnnotation,
100
+ IfStatement,
101
+ ImportAttribute,
102
+ ImportDeclaration,
103
+ ImportDefaultSpecifier,
104
+ ImportExpression,
105
+ ImportNamespaceSpecifier,
106
+ ImportSpecifier,
107
+ IndexedAccessType,
108
+ InferredPredicate,
109
+ InferTypeAnnotation,
110
+ InterfaceDeclaration,
111
+ InterfaceExtends,
112
+ InterfaceTypeAnnotation,
113
+ IntersectionTypeAnnotation,
114
+ JSXAttribute,
115
+ JSXClosingElement,
116
+ JSXClosingFragment,
117
+ JSXElement,
118
+ JSXEmptyExpression,
119
+ JSXExpressionContainer,
120
+ JSXFragment,
121
+ JSXMemberExpression,
122
+ JSXNamespacedName,
123
+ JSXOpeningElement,
124
+ JSXOpeningFragment,
125
+ JSXSpreadAttribute,
126
+ JSXSpreadChild,
127
+ KeyofTypeAnnotation,
128
+ LabeledStatement,
129
+ LogicalExpression,
130
+ MemberExpression,
131
+ MetaProperty,
132
+ MethodDefinition,
133
+ MixedTypeAnnotation,
134
+ NewExpression,
135
+ NullableTypeAnnotation,
136
+ NullLiteralTypeAnnotation,
137
+ NumberLiteralTypeAnnotation,
138
+ NumberTypeAnnotation,
139
+ ObjectExpression,
140
+ ObjectPattern,
141
+ ObjectTypeAnnotation,
142
+ ObjectTypeCallProperty,
143
+ ObjectTypeIndexer,
144
+ ObjectTypeInternalSlot,
145
+ ObjectTypeMappedTypeProperty,
146
+ ObjectTypeProperty,
147
+ ObjectTypeSpreadProperty,
148
+ OpaqueType,
149
+ OptionalIndexedAccessType,
150
+ PrivateIdentifier,
151
+ Property,
152
+ PropertyDefinition,
153
+ QualifiedTypeIdentifier,
154
+ QualifiedTypeofIdentifier,
155
+ RestElement,
156
+ ReturnStatement,
157
+ SequenceExpression,
158
+ SpreadElement,
159
+ StringLiteralTypeAnnotation,
160
+ StringTypeAnnotation,
161
+ Super,
162
+ SwitchCase,
163
+ SwitchStatement,
164
+ SymbolTypeAnnotation,
165
+ TaggedTemplateExpression,
166
+ TemplateElement,
167
+ TemplateLiteral,
168
+ ThisExpression,
169
+ ThisTypeAnnotation,
170
+ ThrowStatement,
171
+ TryStatement,
172
+ TupleTypeAnnotation,
173
+ TupleTypeLabeledElement,
174
+ TupleTypeSpreadElement,
175
+ TypeAlias,
176
+ TypeAnnotation,
177
+ TypeCastExpression,
178
+ TypeofTypeAnnotation,
179
+ TypeOperator,
180
+ TypeParameter,
181
+ TypeParameterDeclaration,
182
+ TypeParameterInstantiation,
183
+ TypePredicate,
184
+ UnaryExpression,
185
+ UnionTypeAnnotation,
186
+ UpdateExpression,
187
+ VariableDeclaration,
188
+ VariableDeclarator,
189
+ Variance,
190
+ VoidTypeAnnotation,
191
+ WhileStatement,
192
+ WithStatement,
193
+ YieldExpression,
194
+ Literal,
195
+ LineComment,
196
+ BlockComment,
197
+ MostTokens,
198
+ } from 'hermes-estree';
199
+ */
200
+
201
+
202
+ export function isIdentifier(node /*: ESNode | Token */) /*: node is (Identifier | MostTokens) */ {
203
+ return node.type === 'Identifier';
204
+ }
205
+
206
+
207
+ export function isJSXIdentifier(node /*: ESNode | Token */) /*: node is (JSXIdentifier | MostTokens) */ {
208
+ return node.type === 'JSXIdentifier';
209
+ }
210
+
25
211
 
26
- export function isAnyTypeAnnotation(node: ESNode | Token): boolean %checks {
212
+ export function isJSXText(node /*: ESNode | Token */) /*: node is (JSXText | MostTokens) */ {
213
+ return node.type === 'JSXText';
214
+ }
215
+
216
+
217
+ export function isAnyTypeAnnotation(node /*: ESNode | Token */) /*: node is AnyTypeAnnotation */ {
27
218
  return node.type === 'AnyTypeAnnotation';
28
219
  }
220
+
29
221
 
30
- export function isArrayExpression(node: ESNode | Token): boolean %checks {
222
+ export function isArrayExpression(node /*: ESNode | Token */) /*: node is ArrayExpression */ {
31
223
  return node.type === 'ArrayExpression';
32
224
  }
225
+
33
226
 
34
- export function isArrayPattern(node: ESNode | Token): boolean %checks {
227
+ export function isArrayPattern(node /*: ESNode | Token */) /*: node is ArrayPattern */ {
35
228
  return node.type === 'ArrayPattern';
36
229
  }
230
+
37
231
 
38
- export function isArrayTypeAnnotation(node: ESNode | Token): boolean %checks {
232
+ export function isArrayTypeAnnotation(node /*: ESNode | Token */) /*: node is ArrayTypeAnnotation */ {
39
233
  return node.type === 'ArrayTypeAnnotation';
40
234
  }
235
+
41
236
 
42
- export function isArrowFunctionExpression(
43
- node: ESNode | Token,
44
- ): boolean %checks {
237
+ export function isArrowFunctionExpression(node /*: ESNode | Token */) /*: node is ArrowFunctionExpression */ {
45
238
  return node.type === 'ArrowFunctionExpression';
46
239
  }
240
+
47
241
 
48
- export function isAsExpression(node: ESNode | Token): boolean %checks {
242
+ export function isAsExpression(node /*: ESNode | Token */) /*: node is AsExpression */ {
49
243
  return node.type === 'AsExpression';
50
244
  }
245
+
51
246
 
52
- export function isAssignmentExpression(node: ESNode | Token): boolean %checks {
247
+ export function isAssignmentExpression(node /*: ESNode | Token */) /*: node is AssignmentExpression */ {
53
248
  return node.type === 'AssignmentExpression';
54
249
  }
250
+
55
251
 
56
- export function isAssignmentPattern(node: ESNode | Token): boolean %checks {
252
+ export function isAssignmentPattern(node /*: ESNode | Token */) /*: node is AssignmentPattern */ {
57
253
  return node.type === 'AssignmentPattern';
58
254
  }
255
+
59
256
 
60
- export function isAwaitExpression(node: ESNode | Token): boolean %checks {
257
+ export function isAwaitExpression(node /*: ESNode | Token */) /*: node is AwaitExpression */ {
61
258
  return node.type === 'AwaitExpression';
62
259
  }
260
+
63
261
 
64
- export function isBigIntLiteralTypeAnnotation(
65
- node: ESNode | Token,
66
- ): boolean %checks {
262
+ export function isBigIntLiteralTypeAnnotation(node /*: ESNode | Token */) /*: node is BigIntLiteralTypeAnnotation */ {
67
263
  return node.type === 'BigIntLiteralTypeAnnotation';
68
264
  }
265
+
69
266
 
70
- export function isBigIntTypeAnnotation(node: ESNode | Token): boolean %checks {
267
+ export function isBigIntTypeAnnotation(node /*: ESNode | Token */) /*: node is BigIntTypeAnnotation */ {
71
268
  return node.type === 'BigIntTypeAnnotation';
72
269
  }
270
+
73
271
 
74
- export function isBinaryExpression(node: ESNode | Token): boolean %checks {
272
+ export function isBinaryExpression(node /*: ESNode | Token */) /*: node is BinaryExpression */ {
75
273
  return node.type === 'BinaryExpression';
76
274
  }
275
+
77
276
 
78
- export function isBlockStatement(node: ESNode | Token): boolean %checks {
277
+ export function isBlockStatement(node /*: ESNode | Token */) /*: node is BlockStatement */ {
79
278
  return node.type === 'BlockStatement';
80
279
  }
280
+
81
281
 
82
- export function isBooleanLiteralTypeAnnotation(
83
- node: ESNode | Token,
84
- ): boolean %checks {
282
+ export function isBooleanLiteralTypeAnnotation(node /*: ESNode | Token */) /*: node is BooleanLiteralTypeAnnotation */ {
85
283
  return node.type === 'BooleanLiteralTypeAnnotation';
86
284
  }
285
+
87
286
 
88
- export function isBooleanTypeAnnotation(node: ESNode | Token): boolean %checks {
287
+ export function isBooleanTypeAnnotation(node /*: ESNode | Token */) /*: node is BooleanTypeAnnotation */ {
89
288
  return node.type === 'BooleanTypeAnnotation';
90
289
  }
290
+
91
291
 
92
- export function isBreakStatement(node: ESNode | Token): boolean %checks {
292
+ export function isBreakStatement(node /*: ESNode | Token */) /*: node is BreakStatement */ {
93
293
  return node.type === 'BreakStatement';
94
294
  }
295
+
95
296
 
96
- export function isCallExpression(node: ESNode | Token): boolean %checks {
297
+ export function isCallExpression(node /*: ESNode | Token */) /*: node is CallExpression */ {
97
298
  return node.type === 'CallExpression';
98
299
  }
300
+
99
301
 
100
- export function isCatchClause(node: ESNode | Token): boolean %checks {
302
+ export function isCatchClause(node /*: ESNode | Token */) /*: node is CatchClause */ {
101
303
  return node.type === 'CatchClause';
102
304
  }
305
+
103
306
 
104
- export function isChainExpression(node: ESNode | Token): boolean %checks {
307
+ export function isChainExpression(node /*: ESNode | Token */) /*: node is ChainExpression */ {
105
308
  return node.type === 'ChainExpression';
106
309
  }
310
+
107
311
 
108
- export function isClassBody(node: ESNode | Token): boolean %checks {
312
+ export function isClassBody(node /*: ESNode | Token */) /*: node is ClassBody */ {
109
313
  return node.type === 'ClassBody';
110
314
  }
315
+
111
316
 
112
- export function isClassDeclaration(node: ESNode | Token): boolean %checks {
317
+ export function isClassDeclaration(node /*: ESNode | Token */) /*: node is ClassDeclaration */ {
113
318
  return node.type === 'ClassDeclaration';
114
319
  }
320
+
115
321
 
116
- export function isClassExpression(node: ESNode | Token): boolean %checks {
322
+ export function isClassExpression(node /*: ESNode | Token */) /*: node is ClassExpression */ {
117
323
  return node.type === 'ClassExpression';
118
324
  }
325
+
119
326
 
120
- export function isClassImplements(node: ESNode | Token): boolean %checks {
327
+ export function isClassImplements(node /*: ESNode | Token */) /*: node is ClassImplements */ {
121
328
  return node.type === 'ClassImplements';
122
329
  }
330
+
123
331
 
124
- export function isComponentDeclaration(node: ESNode | Token): boolean %checks {
332
+ export function isComponentDeclaration(node /*: ESNode | Token */) /*: node is ComponentDeclaration */ {
125
333
  return node.type === 'ComponentDeclaration';
126
334
  }
335
+
127
336
 
128
- export function isComponentParameter(node: ESNode | Token): boolean %checks {
337
+ export function isComponentParameter(node /*: ESNode | Token */) /*: node is ComponentParameter */ {
129
338
  return node.type === 'ComponentParameter';
130
339
  }
340
+
131
341
 
132
- export function isComponentTypeAnnotation(
133
- node: ESNode | Token,
134
- ): boolean %checks {
342
+ export function isComponentTypeAnnotation(node /*: ESNode | Token */) /*: node is ComponentTypeAnnotation */ {
135
343
  return node.type === 'ComponentTypeAnnotation';
136
344
  }
345
+
137
346
 
138
- export function isComponentTypeParameter(
139
- node: ESNode | Token,
140
- ): boolean %checks {
347
+ export function isComponentTypeParameter(node /*: ESNode | Token */) /*: node is ComponentTypeParameter */ {
141
348
  return node.type === 'ComponentTypeParameter';
142
349
  }
350
+
143
351
 
144
- export function isConditionalExpression(node: ESNode | Token): boolean %checks {
352
+ export function isConditionalExpression(node /*: ESNode | Token */) /*: node is ConditionalExpression */ {
145
353
  return node.type === 'ConditionalExpression';
146
354
  }
355
+
147
356
 
148
- export function isConditionalTypeAnnotation(
149
- node: ESNode | Token,
150
- ): boolean %checks {
357
+ export function isConditionalTypeAnnotation(node /*: ESNode | Token */) /*: node is ConditionalTypeAnnotation */ {
151
358
  return node.type === 'ConditionalTypeAnnotation';
152
359
  }
360
+
153
361
 
154
- export function isContinueStatement(node: ESNode | Token): boolean %checks {
362
+ export function isContinueStatement(node /*: ESNode | Token */) /*: node is ContinueStatement */ {
155
363
  return node.type === 'ContinueStatement';
156
364
  }
365
+
157
366
 
158
- export function isDebuggerStatement(node: ESNode | Token): boolean %checks {
367
+ export function isDebuggerStatement(node /*: ESNode | Token */) /*: node is DebuggerStatement */ {
159
368
  return node.type === 'DebuggerStatement';
160
369
  }
370
+
161
371
 
162
- export function isDeclareClass(node: ESNode | Token): boolean %checks {
372
+ export function isDeclareClass(node /*: ESNode | Token */) /*: node is DeclareClass */ {
163
373
  return node.type === 'DeclareClass';
164
374
  }
375
+
165
376
 
166
- export function isDeclareComponent(node: ESNode | Token): boolean %checks {
377
+ export function isDeclareComponent(node /*: ESNode | Token */) /*: node is DeclareComponent */ {
167
378
  return node.type === 'DeclareComponent';
168
379
  }
380
+
169
381
 
170
- export function isDeclaredPredicate(node: ESNode | Token): boolean %checks {
382
+ export function isDeclaredPredicate(node /*: ESNode | Token */) /*: node is DeclaredPredicate */ {
171
383
  return node.type === 'DeclaredPredicate';
172
384
  }
385
+
173
386
 
174
- export function isDeclareEnum(node: ESNode | Token): boolean %checks {
387
+ export function isDeclareEnum(node /*: ESNode | Token */) /*: node is DeclareEnum */ {
175
388
  return node.type === 'DeclareEnum';
176
389
  }
390
+
177
391
 
178
- export function isDeclareExportAllDeclaration(
179
- node: ESNode | Token,
180
- ): boolean %checks {
392
+ export function isDeclareExportAllDeclaration(node /*: ESNode | Token */) /*: node is DeclareExportAllDeclaration */ {
181
393
  return node.type === 'DeclareExportAllDeclaration';
182
394
  }
395
+
183
396
 
184
- export function isDeclareExportDeclaration(
185
- node: ESNode | Token,
186
- ): boolean %checks {
397
+ export function isDeclareExportDeclaration(node /*: ESNode | Token */) /*: node is DeclareExportDeclaration */ {
187
398
  return node.type === 'DeclareExportDeclaration';
188
399
  }
400
+
189
401
 
190
- export function isDeclareFunction(node: ESNode | Token): boolean %checks {
402
+ export function isDeclareFunction(node /*: ESNode | Token */) /*: node is DeclareFunction */ {
191
403
  return node.type === 'DeclareFunction';
192
404
  }
405
+
193
406
 
194
- export function isDeclareInterface(node: ESNode | Token): boolean %checks {
407
+ export function isDeclareInterface(node /*: ESNode | Token */) /*: node is DeclareInterface */ {
195
408
  return node.type === 'DeclareInterface';
196
409
  }
410
+
197
411
 
198
- export function isDeclareModule(node: ESNode | Token): boolean %checks {
412
+ export function isDeclareModule(node /*: ESNode | Token */) /*: node is DeclareModule */ {
199
413
  return node.type === 'DeclareModule';
200
414
  }
415
+
201
416
 
202
- export function isDeclareModuleExports(node: ESNode | Token): boolean %checks {
417
+ export function isDeclareModuleExports(node /*: ESNode | Token */) /*: node is DeclareModuleExports */ {
203
418
  return node.type === 'DeclareModuleExports';
204
419
  }
420
+
205
421
 
206
- export function isDeclareOpaqueType(node: ESNode | Token): boolean %checks {
422
+ export function isDeclareOpaqueType(node /*: ESNode | Token */) /*: node is DeclareOpaqueType */ {
207
423
  return node.type === 'DeclareOpaqueType';
208
424
  }
425
+
209
426
 
210
- export function isDeclareTypeAlias(node: ESNode | Token): boolean %checks {
427
+ export function isDeclareTypeAlias(node /*: ESNode | Token */) /*: node is DeclareTypeAlias */ {
211
428
  return node.type === 'DeclareTypeAlias';
212
429
  }
430
+
213
431
 
214
- export function isDeclareVariable(node: ESNode | Token): boolean %checks {
432
+ export function isDeclareVariable(node /*: ESNode | Token */) /*: node is DeclareVariable */ {
215
433
  return node.type === 'DeclareVariable';
216
434
  }
435
+
217
436
 
218
- export function isDoWhileStatement(node: ESNode | Token): boolean %checks {
437
+ export function isDoWhileStatement(node /*: ESNode | Token */) /*: node is DoWhileStatement */ {
219
438
  return node.type === 'DoWhileStatement';
220
439
  }
440
+
221
441
 
222
- export function isEmptyStatement(node: ESNode | Token): boolean %checks {
442
+ export function isEmptyStatement(node /*: ESNode | Token */) /*: node is EmptyStatement */ {
223
443
  return node.type === 'EmptyStatement';
224
444
  }
445
+
225
446
 
226
- export function isEmptyTypeAnnotation(node: ESNode | Token): boolean %checks {
447
+ export function isEmptyTypeAnnotation(node /*: ESNode | Token */) /*: node is EmptyTypeAnnotation */ {
227
448
  return node.type === 'EmptyTypeAnnotation';
228
449
  }
450
+
229
451
 
230
- export function isEnumBooleanBody(node: ESNode | Token): boolean %checks {
452
+ export function isEnumBooleanBody(node /*: ESNode | Token */) /*: node is EnumBooleanBody */ {
231
453
  return node.type === 'EnumBooleanBody';
232
454
  }
455
+
233
456
 
234
- export function isEnumBooleanMember(node: ESNode | Token): boolean %checks {
457
+ export function isEnumBooleanMember(node /*: ESNode | Token */) /*: node is EnumBooleanMember */ {
235
458
  return node.type === 'EnumBooleanMember';
236
459
  }
460
+
237
461
 
238
- export function isEnumDeclaration(node: ESNode | Token): boolean %checks {
462
+ export function isEnumDeclaration(node /*: ESNode | Token */) /*: node is EnumDeclaration */ {
239
463
  return node.type === 'EnumDeclaration';
240
464
  }
465
+
241
466
 
242
- export function isEnumDefaultedMember(node: ESNode | Token): boolean %checks {
467
+ export function isEnumDefaultedMember(node /*: ESNode | Token */) /*: node is EnumDefaultedMember */ {
243
468
  return node.type === 'EnumDefaultedMember';
244
469
  }
470
+
245
471
 
246
- export function isEnumNumberBody(node: ESNode | Token): boolean %checks {
472
+ export function isEnumNumberBody(node /*: ESNode | Token */) /*: node is EnumNumberBody */ {
247
473
  return node.type === 'EnumNumberBody';
248
474
  }
475
+
249
476
 
250
- export function isEnumNumberMember(node: ESNode | Token): boolean %checks {
477
+ export function isEnumNumberMember(node /*: ESNode | Token */) /*: node is EnumNumberMember */ {
251
478
  return node.type === 'EnumNumberMember';
252
479
  }
480
+
253
481
 
254
- export function isEnumStringBody(node: ESNode | Token): boolean %checks {
482
+ export function isEnumStringBody(node /*: ESNode | Token */) /*: node is EnumStringBody */ {
255
483
  return node.type === 'EnumStringBody';
256
484
  }
485
+
257
486
 
258
- export function isEnumStringMember(node: ESNode | Token): boolean %checks {
487
+ export function isEnumStringMember(node /*: ESNode | Token */) /*: node is EnumStringMember */ {
259
488
  return node.type === 'EnumStringMember';
260
489
  }
490
+
261
491
 
262
- export function isEnumSymbolBody(node: ESNode | Token): boolean %checks {
492
+ export function isEnumSymbolBody(node /*: ESNode | Token */) /*: node is EnumSymbolBody */ {
263
493
  return node.type === 'EnumSymbolBody';
264
494
  }
495
+
265
496
 
266
- export function isExistsTypeAnnotation(node: ESNode | Token): boolean %checks {
497
+ export function isExistsTypeAnnotation(node /*: ESNode | Token */) /*: node is ExistsTypeAnnotation */ {
267
498
  return node.type === 'ExistsTypeAnnotation';
268
499
  }
500
+
269
501
 
270
- export function isExportAllDeclaration(node: ESNode | Token): boolean %checks {
502
+ export function isExportAllDeclaration(node /*: ESNode | Token */) /*: node is ExportAllDeclaration */ {
271
503
  return node.type === 'ExportAllDeclaration';
272
504
  }
505
+
273
506
 
274
- export function isExportDefaultDeclaration(
275
- node: ESNode | Token,
276
- ): boolean %checks {
507
+ export function isExportDefaultDeclaration(node /*: ESNode | Token */) /*: node is ExportDefaultDeclaration */ {
277
508
  return node.type === 'ExportDefaultDeclaration';
278
509
  }
510
+
279
511
 
280
- export function isExportNamedDeclaration(
281
- node: ESNode | Token,
282
- ): boolean %checks {
512
+ export function isExportNamedDeclaration(node /*: ESNode | Token */) /*: node is ExportNamedDeclaration */ {
283
513
  return node.type === 'ExportNamedDeclaration';
284
514
  }
515
+
285
516
 
286
- export function isExportSpecifier(node: ESNode | Token): boolean %checks {
517
+ export function isExportSpecifier(node /*: ESNode | Token */) /*: node is ExportSpecifier */ {
287
518
  return node.type === 'ExportSpecifier';
288
519
  }
520
+
289
521
 
290
- export function isExpressionStatement(node: ESNode | Token): boolean %checks {
522
+ export function isExpressionStatement(node /*: ESNode | Token */) /*: node is ExpressionStatement */ {
291
523
  return node.type === 'ExpressionStatement';
292
524
  }
525
+
293
526
 
294
- export function isForInStatement(node: ESNode | Token): boolean %checks {
527
+ export function isForInStatement(node /*: ESNode | Token */) /*: node is ForInStatement */ {
295
528
  return node.type === 'ForInStatement';
296
529
  }
530
+
297
531
 
298
- export function isForOfStatement(node: ESNode | Token): boolean %checks {
532
+ export function isForOfStatement(node /*: ESNode | Token */) /*: node is ForOfStatement */ {
299
533
  return node.type === 'ForOfStatement';
300
534
  }
535
+
301
536
 
302
- export function isForStatement(node: ESNode | Token): boolean %checks {
537
+ export function isForStatement(node /*: ESNode | Token */) /*: node is ForStatement */ {
303
538
  return node.type === 'ForStatement';
304
539
  }
540
+
305
541
 
306
- export function isFunctionDeclaration(node: ESNode | Token): boolean %checks {
542
+ export function isFunctionDeclaration(node /*: ESNode | Token */) /*: node is FunctionDeclaration */ {
307
543
  return node.type === 'FunctionDeclaration';
308
544
  }
545
+
309
546
 
310
- export function isFunctionExpression(node: ESNode | Token): boolean %checks {
547
+ export function isFunctionExpression(node /*: ESNode | Token */) /*: node is FunctionExpression */ {
311
548
  return node.type === 'FunctionExpression';
312
549
  }
550
+
313
551
 
314
- export function isFunctionTypeAnnotation(
315
- node: ESNode | Token,
316
- ): boolean %checks {
552
+ export function isFunctionTypeAnnotation(node /*: ESNode | Token */) /*: node is FunctionTypeAnnotation */ {
317
553
  return node.type === 'FunctionTypeAnnotation';
318
554
  }
555
+
319
556
 
320
- export function isFunctionTypeParam(node: ESNode | Token): boolean %checks {
557
+ export function isFunctionTypeParam(node /*: ESNode | Token */) /*: node is FunctionTypeParam */ {
321
558
  return node.type === 'FunctionTypeParam';
322
559
  }
560
+
323
561
 
324
- export function isGenericTypeAnnotation(node: ESNode | Token): boolean %checks {
562
+ export function isGenericTypeAnnotation(node /*: ESNode | Token */) /*: node is GenericTypeAnnotation */ {
325
563
  return node.type === 'GenericTypeAnnotation';
326
564
  }
565
+
327
566
 
328
- export function isIdentifier(node: ESNode | Token): boolean %checks {
329
- return node.type === 'Identifier';
330
- }
331
-
332
- export function isIfStatement(node: ESNode | Token): boolean %checks {
567
+ export function isIfStatement(node /*: ESNode | Token */) /*: node is IfStatement */ {
333
568
  return node.type === 'IfStatement';
334
569
  }
570
+
335
571
 
336
- export function isImportAttribute(node: ESNode | Token): boolean %checks {
572
+ export function isImportAttribute(node /*: ESNode | Token */) /*: node is ImportAttribute */ {
337
573
  return node.type === 'ImportAttribute';
338
574
  }
575
+
339
576
 
340
- export function isImportDeclaration(node: ESNode | Token): boolean %checks {
577
+ export function isImportDeclaration(node /*: ESNode | Token */) /*: node is ImportDeclaration */ {
341
578
  return node.type === 'ImportDeclaration';
342
579
  }
580
+
343
581
 
344
- export function isImportDefaultSpecifier(
345
- node: ESNode | Token,
346
- ): boolean %checks {
582
+ export function isImportDefaultSpecifier(node /*: ESNode | Token */) /*: node is ImportDefaultSpecifier */ {
347
583
  return node.type === 'ImportDefaultSpecifier';
348
584
  }
585
+
349
586
 
350
- export function isImportExpression(node: ESNode | Token): boolean %checks {
587
+ export function isImportExpression(node /*: ESNode | Token */) /*: node is ImportExpression */ {
351
588
  return node.type === 'ImportExpression';
352
589
  }
590
+
353
591
 
354
- export function isImportNamespaceSpecifier(
355
- node: ESNode | Token,
356
- ): boolean %checks {
592
+ export function isImportNamespaceSpecifier(node /*: ESNode | Token */) /*: node is ImportNamespaceSpecifier */ {
357
593
  return node.type === 'ImportNamespaceSpecifier';
358
594
  }
595
+
359
596
 
360
- export function isImportSpecifier(node: ESNode | Token): boolean %checks {
597
+ export function isImportSpecifier(node /*: ESNode | Token */) /*: node is ImportSpecifier */ {
361
598
  return node.type === 'ImportSpecifier';
362
599
  }
600
+
363
601
 
364
- export function isIndexedAccessType(node: ESNode | Token): boolean %checks {
602
+ export function isIndexedAccessType(node /*: ESNode | Token */) /*: node is IndexedAccessType */ {
365
603
  return node.type === 'IndexedAccessType';
366
604
  }
605
+
367
606
 
368
- export function isInferredPredicate(node: ESNode | Token): boolean %checks {
607
+ export function isInferredPredicate(node /*: ESNode | Token */) /*: node is InferredPredicate */ {
369
608
  return node.type === 'InferredPredicate';
370
609
  }
610
+
371
611
 
372
- export function isInferTypeAnnotation(node: ESNode | Token): boolean %checks {
612
+ export function isInferTypeAnnotation(node /*: ESNode | Token */) /*: node is InferTypeAnnotation */ {
373
613
  return node.type === 'InferTypeAnnotation';
374
614
  }
615
+
375
616
 
376
- export function isInterfaceDeclaration(node: ESNode | Token): boolean %checks {
617
+ export function isInterfaceDeclaration(node /*: ESNode | Token */) /*: node is InterfaceDeclaration */ {
377
618
  return node.type === 'InterfaceDeclaration';
378
619
  }
620
+
379
621
 
380
- export function isInterfaceExtends(node: ESNode | Token): boolean %checks {
622
+ export function isInterfaceExtends(node /*: ESNode | Token */) /*: node is InterfaceExtends */ {
381
623
  return node.type === 'InterfaceExtends';
382
624
  }
625
+
383
626
 
384
- export function isInterfaceTypeAnnotation(
385
- node: ESNode | Token,
386
- ): boolean %checks {
627
+ export function isInterfaceTypeAnnotation(node /*: ESNode | Token */) /*: node is InterfaceTypeAnnotation */ {
387
628
  return node.type === 'InterfaceTypeAnnotation';
388
629
  }
630
+
389
631
 
390
- export function isIntersectionTypeAnnotation(
391
- node: ESNode | Token,
392
- ): boolean %checks {
632
+ export function isIntersectionTypeAnnotation(node /*: ESNode | Token */) /*: node is IntersectionTypeAnnotation */ {
393
633
  return node.type === 'IntersectionTypeAnnotation';
394
634
  }
635
+
395
636
 
396
- export function isJSXAttribute(node: ESNode | Token): boolean %checks {
637
+ export function isJSXAttribute(node /*: ESNode | Token */) /*: node is JSXAttribute */ {
397
638
  return node.type === 'JSXAttribute';
398
639
  }
640
+
399
641
 
400
- export function isJSXClosingElement(node: ESNode | Token): boolean %checks {
642
+ export function isJSXClosingElement(node /*: ESNode | Token */) /*: node is JSXClosingElement */ {
401
643
  return node.type === 'JSXClosingElement';
402
644
  }
645
+
403
646
 
404
- export function isJSXClosingFragment(node: ESNode | Token): boolean %checks {
647
+ export function isJSXClosingFragment(node /*: ESNode | Token */) /*: node is JSXClosingFragment */ {
405
648
  return node.type === 'JSXClosingFragment';
406
649
  }
650
+
407
651
 
408
- export function isJSXElement(node: ESNode | Token): boolean %checks {
652
+ export function isJSXElement(node /*: ESNode | Token */) /*: node is JSXElement */ {
409
653
  return node.type === 'JSXElement';
410
654
  }
655
+
411
656
 
412
- export function isJSXEmptyExpression(node: ESNode | Token): boolean %checks {
657
+ export function isJSXEmptyExpression(node /*: ESNode | Token */) /*: node is JSXEmptyExpression */ {
413
658
  return node.type === 'JSXEmptyExpression';
414
659
  }
660
+
415
661
 
416
- export function isJSXExpressionContainer(
417
- node: ESNode | Token,
418
- ): boolean %checks {
662
+ export function isJSXExpressionContainer(node /*: ESNode | Token */) /*: node is JSXExpressionContainer */ {
419
663
  return node.type === 'JSXExpressionContainer';
420
664
  }
665
+
421
666
 
422
- export function isJSXFragment(node: ESNode | Token): boolean %checks {
667
+ export function isJSXFragment(node /*: ESNode | Token */) /*: node is JSXFragment */ {
423
668
  return node.type === 'JSXFragment';
424
669
  }
670
+
425
671
 
426
- export function isJSXIdentifier(node: ESNode | Token): boolean %checks {
427
- return node.type === 'JSXIdentifier';
428
- }
429
-
430
- export function isJSXMemberExpression(node: ESNode | Token): boolean %checks {
672
+ export function isJSXMemberExpression(node /*: ESNode | Token */) /*: node is JSXMemberExpression */ {
431
673
  return node.type === 'JSXMemberExpression';
432
674
  }
675
+
433
676
 
434
- export function isJSXNamespacedName(node: ESNode | Token): boolean %checks {
677
+ export function isJSXNamespacedName(node /*: ESNode | Token */) /*: node is JSXNamespacedName */ {
435
678
  return node.type === 'JSXNamespacedName';
436
679
  }
680
+
437
681
 
438
- export function isJSXOpeningElement(node: ESNode | Token): boolean %checks {
682
+ export function isJSXOpeningElement(node /*: ESNode | Token */) /*: node is JSXOpeningElement */ {
439
683
  return node.type === 'JSXOpeningElement';
440
684
  }
685
+
441
686
 
442
- export function isJSXOpeningFragment(node: ESNode | Token): boolean %checks {
687
+ export function isJSXOpeningFragment(node /*: ESNode | Token */) /*: node is JSXOpeningFragment */ {
443
688
  return node.type === 'JSXOpeningFragment';
444
689
  }
690
+
445
691
 
446
- export function isJSXSpreadAttribute(node: ESNode | Token): boolean %checks {
692
+ export function isJSXSpreadAttribute(node /*: ESNode | Token */) /*: node is JSXSpreadAttribute */ {
447
693
  return node.type === 'JSXSpreadAttribute';
448
694
  }
695
+
449
696
 
450
- export function isJSXSpreadChild(node: ESNode | Token): boolean %checks {
697
+ export function isJSXSpreadChild(node /*: ESNode | Token */) /*: node is JSXSpreadChild */ {
451
698
  return node.type === 'JSXSpreadChild';
452
699
  }
700
+
453
701
 
454
- export function isJSXText(node: ESNode | Token): boolean %checks {
455
- return node.type === 'JSXText';
456
- }
457
-
458
- export function isKeyofTypeAnnotation(node: ESNode | Token): boolean %checks {
702
+ export function isKeyofTypeAnnotation(node /*: ESNode | Token */) /*: node is KeyofTypeAnnotation */ {
459
703
  return node.type === 'KeyofTypeAnnotation';
460
704
  }
705
+
461
706
 
462
- export function isLabeledStatement(node: ESNode | Token): boolean %checks {
707
+ export function isLabeledStatement(node /*: ESNode | Token */) /*: node is LabeledStatement */ {
463
708
  return node.type === 'LabeledStatement';
464
709
  }
710
+
465
711
 
466
- export function isLogicalExpression(node: ESNode | Token): boolean %checks {
712
+ export function isLogicalExpression(node /*: ESNode | Token */) /*: node is LogicalExpression */ {
467
713
  return node.type === 'LogicalExpression';
468
714
  }
715
+
469
716
 
470
- export function isMemberExpression(node: ESNode | Token): boolean %checks {
717
+ export function isMemberExpression(node /*: ESNode | Token */) /*: node is MemberExpression */ {
471
718
  return node.type === 'MemberExpression';
472
719
  }
720
+
473
721
 
474
- export function isMetaProperty(node: ESNode | Token): boolean %checks {
722
+ export function isMetaProperty(node /*: ESNode | Token */) /*: node is MetaProperty */ {
475
723
  return node.type === 'MetaProperty';
476
724
  }
725
+
477
726
 
478
- export function isMethodDefinition(node: ESNode | Token): boolean %checks {
727
+ export function isMethodDefinition(node /*: ESNode | Token */) /*: node is MethodDefinition */ {
479
728
  return node.type === 'MethodDefinition';
480
729
  }
730
+
481
731
 
482
- export function isMixedTypeAnnotation(node: ESNode | Token): boolean %checks {
732
+ export function isMixedTypeAnnotation(node /*: ESNode | Token */) /*: node is MixedTypeAnnotation */ {
483
733
  return node.type === 'MixedTypeAnnotation';
484
734
  }
735
+
485
736
 
486
- export function isNewExpression(node: ESNode | Token): boolean %checks {
737
+ export function isNewExpression(node /*: ESNode | Token */) /*: node is NewExpression */ {
487
738
  return node.type === 'NewExpression';
488
739
  }
740
+
489
741
 
490
- export function isNullableTypeAnnotation(
491
- node: ESNode | Token,
492
- ): boolean %checks {
742
+ export function isNullableTypeAnnotation(node /*: ESNode | Token */) /*: node is NullableTypeAnnotation */ {
493
743
  return node.type === 'NullableTypeAnnotation';
494
744
  }
745
+
495
746
 
496
- export function isNullLiteralTypeAnnotation(
497
- node: ESNode | Token,
498
- ): boolean %checks {
747
+ export function isNullLiteralTypeAnnotation(node /*: ESNode | Token */) /*: node is NullLiteralTypeAnnotation */ {
499
748
  return node.type === 'NullLiteralTypeAnnotation';
500
749
  }
750
+
501
751
 
502
- export function isNumberLiteralTypeAnnotation(
503
- node: ESNode | Token,
504
- ): boolean %checks {
752
+ export function isNumberLiteralTypeAnnotation(node /*: ESNode | Token */) /*: node is NumberLiteralTypeAnnotation */ {
505
753
  return node.type === 'NumberLiteralTypeAnnotation';
506
754
  }
755
+
507
756
 
508
- export function isNumberTypeAnnotation(node: ESNode | Token): boolean %checks {
757
+ export function isNumberTypeAnnotation(node /*: ESNode | Token */) /*: node is NumberTypeAnnotation */ {
509
758
  return node.type === 'NumberTypeAnnotation';
510
759
  }
760
+
511
761
 
512
- export function isObjectExpression(node: ESNode | Token): boolean %checks {
762
+ export function isObjectExpression(node /*: ESNode | Token */) /*: node is ObjectExpression */ {
513
763
  return node.type === 'ObjectExpression';
514
764
  }
765
+
515
766
 
516
- export function isObjectPattern(node: ESNode | Token): boolean %checks {
767
+ export function isObjectPattern(node /*: ESNode | Token */) /*: node is ObjectPattern */ {
517
768
  return node.type === 'ObjectPattern';
518
769
  }
770
+
519
771
 
520
- export function isObjectTypeAnnotation(node: ESNode | Token): boolean %checks {
772
+ export function isObjectTypeAnnotation(node /*: ESNode | Token */) /*: node is ObjectTypeAnnotation */ {
521
773
  return node.type === 'ObjectTypeAnnotation';
522
774
  }
775
+
523
776
 
524
- export function isObjectTypeCallProperty(
525
- node: ESNode | Token,
526
- ): boolean %checks {
777
+ export function isObjectTypeCallProperty(node /*: ESNode | Token */) /*: node is ObjectTypeCallProperty */ {
527
778
  return node.type === 'ObjectTypeCallProperty';
528
779
  }
780
+
529
781
 
530
- export function isObjectTypeIndexer(node: ESNode | Token): boolean %checks {
782
+ export function isObjectTypeIndexer(node /*: ESNode | Token */) /*: node is ObjectTypeIndexer */ {
531
783
  return node.type === 'ObjectTypeIndexer';
532
784
  }
785
+
533
786
 
534
- export function isObjectTypeInternalSlot(
535
- node: ESNode | Token,
536
- ): boolean %checks {
787
+ export function isObjectTypeInternalSlot(node /*: ESNode | Token */) /*: node is ObjectTypeInternalSlot */ {
537
788
  return node.type === 'ObjectTypeInternalSlot';
538
789
  }
790
+
539
791
 
540
- export function isObjectTypeMappedTypeProperty(
541
- node: ESNode | Token,
542
- ): boolean %checks {
792
+ export function isObjectTypeMappedTypeProperty(node /*: ESNode | Token */) /*: node is ObjectTypeMappedTypeProperty */ {
543
793
  return node.type === 'ObjectTypeMappedTypeProperty';
544
794
  }
795
+
545
796
 
546
- export function isObjectTypeProperty(node: ESNode | Token): boolean %checks {
797
+ export function isObjectTypeProperty(node /*: ESNode | Token */) /*: node is ObjectTypeProperty */ {
547
798
  return node.type === 'ObjectTypeProperty';
548
799
  }
800
+
549
801
 
550
- export function isObjectTypeSpreadProperty(
551
- node: ESNode | Token,
552
- ): boolean %checks {
802
+ export function isObjectTypeSpreadProperty(node /*: ESNode | Token */) /*: node is ObjectTypeSpreadProperty */ {
553
803
  return node.type === 'ObjectTypeSpreadProperty';
554
804
  }
805
+
555
806
 
556
- export function isOpaqueType(node: ESNode | Token): boolean %checks {
807
+ export function isOpaqueType(node /*: ESNode | Token */) /*: node is OpaqueType */ {
557
808
  return node.type === 'OpaqueType';
558
809
  }
810
+
559
811
 
560
- export function isOptionalIndexedAccessType(
561
- node: ESNode | Token,
562
- ): boolean %checks {
812
+ export function isOptionalIndexedAccessType(node /*: ESNode | Token */) /*: node is OptionalIndexedAccessType */ {
563
813
  return node.type === 'OptionalIndexedAccessType';
564
814
  }
815
+
565
816
 
566
- export function isPrivateIdentifier(node: ESNode | Token): boolean %checks {
817
+ export function isPrivateIdentifier(node /*: ESNode | Token */) /*: node is PrivateIdentifier */ {
567
818
  return node.type === 'PrivateIdentifier';
568
819
  }
820
+
569
821
 
570
- export function isProperty(node: ESNode | Token): boolean %checks {
822
+ export function isProperty(node /*: ESNode | Token */) /*: node is Property */ {
571
823
  return node.type === 'Property';
572
824
  }
825
+
573
826
 
574
- export function isPropertyDefinition(node: ESNode | Token): boolean %checks {
827
+ export function isPropertyDefinition(node /*: ESNode | Token */) /*: node is PropertyDefinition */ {
575
828
  return node.type === 'PropertyDefinition';
576
829
  }
830
+
577
831
 
578
- export function isQualifiedTypeIdentifier(
579
- node: ESNode | Token,
580
- ): boolean %checks {
832
+ export function isQualifiedTypeIdentifier(node /*: ESNode | Token */) /*: node is QualifiedTypeIdentifier */ {
581
833
  return node.type === 'QualifiedTypeIdentifier';
582
834
  }
835
+
583
836
 
584
- export function isQualifiedTypeofIdentifier(
585
- node: ESNode | Token,
586
- ): boolean %checks {
837
+ export function isQualifiedTypeofIdentifier(node /*: ESNode | Token */) /*: node is QualifiedTypeofIdentifier */ {
587
838
  return node.type === 'QualifiedTypeofIdentifier';
588
839
  }
840
+
589
841
 
590
- export function isRestElement(node: ESNode | Token): boolean %checks {
842
+ export function isRestElement(node /*: ESNode | Token */) /*: node is RestElement */ {
591
843
  return node.type === 'RestElement';
592
844
  }
845
+
593
846
 
594
- export function isReturnStatement(node: ESNode | Token): boolean %checks {
847
+ export function isReturnStatement(node /*: ESNode | Token */) /*: node is ReturnStatement */ {
595
848
  return node.type === 'ReturnStatement';
596
849
  }
850
+
597
851
 
598
- export function isSequenceExpression(node: ESNode | Token): boolean %checks {
852
+ export function isSequenceExpression(node /*: ESNode | Token */) /*: node is SequenceExpression */ {
599
853
  return node.type === 'SequenceExpression';
600
854
  }
855
+
601
856
 
602
- export function isSpreadElement(node: ESNode | Token): boolean %checks {
857
+ export function isSpreadElement(node /*: ESNode | Token */) /*: node is SpreadElement */ {
603
858
  return node.type === 'SpreadElement';
604
859
  }
860
+
605
861
 
606
- export function isStringLiteralTypeAnnotation(
607
- node: ESNode | Token,
608
- ): boolean %checks {
862
+ export function isStringLiteralTypeAnnotation(node /*: ESNode | Token */) /*: node is StringLiteralTypeAnnotation */ {
609
863
  return node.type === 'StringLiteralTypeAnnotation';
610
864
  }
865
+
611
866
 
612
- export function isStringTypeAnnotation(node: ESNode | Token): boolean %checks {
867
+ export function isStringTypeAnnotation(node /*: ESNode | Token */) /*: node is StringTypeAnnotation */ {
613
868
  return node.type === 'StringTypeAnnotation';
614
869
  }
870
+
615
871
 
616
- export function isSuper(node: ESNode | Token): boolean %checks {
872
+ export function isSuper(node /*: ESNode | Token */) /*: node is Super */ {
617
873
  return node.type === 'Super';
618
874
  }
875
+
619
876
 
620
- export function isSwitchCase(node: ESNode | Token): boolean %checks {
877
+ export function isSwitchCase(node /*: ESNode | Token */) /*: node is SwitchCase */ {
621
878
  return node.type === 'SwitchCase';
622
879
  }
880
+
623
881
 
624
- export function isSwitchStatement(node: ESNode | Token): boolean %checks {
882
+ export function isSwitchStatement(node /*: ESNode | Token */) /*: node is SwitchStatement */ {
625
883
  return node.type === 'SwitchStatement';
626
884
  }
885
+
627
886
 
628
- export function isSymbolTypeAnnotation(node: ESNode | Token): boolean %checks {
887
+ export function isSymbolTypeAnnotation(node /*: ESNode | Token */) /*: node is SymbolTypeAnnotation */ {
629
888
  return node.type === 'SymbolTypeAnnotation';
630
889
  }
890
+
631
891
 
632
- export function isTaggedTemplateExpression(
633
- node: ESNode | Token,
634
- ): boolean %checks {
892
+ export function isTaggedTemplateExpression(node /*: ESNode | Token */) /*: node is TaggedTemplateExpression */ {
635
893
  return node.type === 'TaggedTemplateExpression';
636
894
  }
895
+
637
896
 
638
- export function isTemplateElement(node: ESNode | Token): boolean %checks {
897
+ export function isTemplateElement(node /*: ESNode | Token */) /*: node is TemplateElement */ {
639
898
  return node.type === 'TemplateElement';
640
899
  }
900
+
641
901
 
642
- export function isTemplateLiteral(node: ESNode | Token): boolean %checks {
902
+ export function isTemplateLiteral(node /*: ESNode | Token */) /*: node is TemplateLiteral */ {
643
903
  return node.type === 'TemplateLiteral';
644
904
  }
905
+
645
906
 
646
- export function isThisExpression(node: ESNode | Token): boolean %checks {
907
+ export function isThisExpression(node /*: ESNode | Token */) /*: node is ThisExpression */ {
647
908
  return node.type === 'ThisExpression';
648
909
  }
910
+
649
911
 
650
- export function isThisTypeAnnotation(node: ESNode | Token): boolean %checks {
912
+ export function isThisTypeAnnotation(node /*: ESNode | Token */) /*: node is ThisTypeAnnotation */ {
651
913
  return node.type === 'ThisTypeAnnotation';
652
914
  }
915
+
653
916
 
654
- export function isThrowStatement(node: ESNode | Token): boolean %checks {
917
+ export function isThrowStatement(node /*: ESNode | Token */) /*: node is ThrowStatement */ {
655
918
  return node.type === 'ThrowStatement';
656
919
  }
920
+
657
921
 
658
- export function isTryStatement(node: ESNode | Token): boolean %checks {
922
+ export function isTryStatement(node /*: ESNode | Token */) /*: node is TryStatement */ {
659
923
  return node.type === 'TryStatement';
660
924
  }
925
+
661
926
 
662
- export function isTupleTypeAnnotation(node: ESNode | Token): boolean %checks {
927
+ export function isTupleTypeAnnotation(node /*: ESNode | Token */) /*: node is TupleTypeAnnotation */ {
663
928
  return node.type === 'TupleTypeAnnotation';
664
929
  }
930
+
665
931
 
666
- export function isTupleTypeLabeledElement(
667
- node: ESNode | Token,
668
- ): boolean %checks {
932
+ export function isTupleTypeLabeledElement(node /*: ESNode | Token */) /*: node is TupleTypeLabeledElement */ {
669
933
  return node.type === 'TupleTypeLabeledElement';
670
934
  }
935
+
671
936
 
672
- export function isTupleTypeSpreadElement(
673
- node: ESNode | Token,
674
- ): boolean %checks {
937
+ export function isTupleTypeSpreadElement(node /*: ESNode | Token */) /*: node is TupleTypeSpreadElement */ {
675
938
  return node.type === 'TupleTypeSpreadElement';
676
939
  }
940
+
677
941
 
678
- export function isTypeAlias(node: ESNode | Token): boolean %checks {
942
+ export function isTypeAlias(node /*: ESNode | Token */) /*: node is TypeAlias */ {
679
943
  return node.type === 'TypeAlias';
680
944
  }
945
+
681
946
 
682
- export function isTypeAnnotation(node: ESNode | Token): boolean %checks {
947
+ export function isTypeAnnotation(node /*: ESNode | Token */) /*: node is TypeAnnotation */ {
683
948
  return node.type === 'TypeAnnotation';
684
949
  }
950
+
685
951
 
686
- export function isTypeCastExpression(node: ESNode | Token): boolean %checks {
952
+ export function isTypeCastExpression(node /*: ESNode | Token */) /*: node is TypeCastExpression */ {
687
953
  return node.type === 'TypeCastExpression';
688
954
  }
955
+
689
956
 
690
- export function isTypeofTypeAnnotation(node: ESNode | Token): boolean %checks {
957
+ export function isTypeofTypeAnnotation(node /*: ESNode | Token */) /*: node is TypeofTypeAnnotation */ {
691
958
  return node.type === 'TypeofTypeAnnotation';
692
959
  }
960
+
693
961
 
694
- export function isTypeOperator(node: ESNode | Token): boolean %checks {
962
+ export function isTypeOperator(node /*: ESNode | Token */) /*: node is TypeOperator */ {
695
963
  return node.type === 'TypeOperator';
696
964
  }
965
+
697
966
 
698
- export function isTypeParameter(node: ESNode | Token): boolean %checks {
967
+ export function isTypeParameter(node /*: ESNode | Token */) /*: node is TypeParameter */ {
699
968
  return node.type === 'TypeParameter';
700
969
  }
970
+
701
971
 
702
- export function isTypeParameterDeclaration(
703
- node: ESNode | Token,
704
- ): boolean %checks {
972
+ export function isTypeParameterDeclaration(node /*: ESNode | Token */) /*: node is TypeParameterDeclaration */ {
705
973
  return node.type === 'TypeParameterDeclaration';
706
974
  }
975
+
707
976
 
708
- export function isTypeParameterInstantiation(
709
- node: ESNode | Token,
710
- ): boolean %checks {
977
+ export function isTypeParameterInstantiation(node /*: ESNode | Token */) /*: node is TypeParameterInstantiation */ {
711
978
  return node.type === 'TypeParameterInstantiation';
712
979
  }
980
+
713
981
 
714
- export function isTypePredicate(node: ESNode | Token): boolean %checks {
982
+ export function isTypePredicate(node /*: ESNode | Token */) /*: node is TypePredicate */ {
715
983
  return node.type === 'TypePredicate';
716
984
  }
985
+
717
986
 
718
- export function isUnaryExpression(node: ESNode | Token): boolean %checks {
987
+ export function isUnaryExpression(node /*: ESNode | Token */) /*: node is UnaryExpression */ {
719
988
  return node.type === 'UnaryExpression';
720
989
  }
990
+
721
991
 
722
- export function isUnionTypeAnnotation(node: ESNode | Token): boolean %checks {
992
+ export function isUnionTypeAnnotation(node /*: ESNode | Token */) /*: node is UnionTypeAnnotation */ {
723
993
  return node.type === 'UnionTypeAnnotation';
724
994
  }
995
+
725
996
 
726
- export function isUpdateExpression(node: ESNode | Token): boolean %checks {
997
+ export function isUpdateExpression(node /*: ESNode | Token */) /*: node is UpdateExpression */ {
727
998
  return node.type === 'UpdateExpression';
728
999
  }
1000
+
729
1001
 
730
- export function isVariableDeclaration(node: ESNode | Token): boolean %checks {
1002
+ export function isVariableDeclaration(node /*: ESNode | Token */) /*: node is VariableDeclaration */ {
731
1003
  return node.type === 'VariableDeclaration';
732
1004
  }
1005
+
733
1006
 
734
- export function isVariableDeclarator(node: ESNode | Token): boolean %checks {
1007
+ export function isVariableDeclarator(node /*: ESNode | Token */) /*: node is VariableDeclarator */ {
735
1008
  return node.type === 'VariableDeclarator';
736
1009
  }
1010
+
737
1011
 
738
- export function isVariance(node: ESNode | Token): boolean %checks {
1012
+ export function isVariance(node /*: ESNode | Token */) /*: node is Variance */ {
739
1013
  return node.type === 'Variance';
740
1014
  }
1015
+
741
1016
 
742
- export function isVoidTypeAnnotation(node: ESNode | Token): boolean %checks {
1017
+ export function isVoidTypeAnnotation(node /*: ESNode | Token */) /*: node is VoidTypeAnnotation */ {
743
1018
  return node.type === 'VoidTypeAnnotation';
744
1019
  }
1020
+
745
1021
 
746
- export function isWhileStatement(node: ESNode | Token): boolean %checks {
1022
+ export function isWhileStatement(node /*: ESNode | Token */) /*: node is WhileStatement */ {
747
1023
  return node.type === 'WhileStatement';
748
1024
  }
1025
+
749
1026
 
750
- export function isWithStatement(node: ESNode | Token): boolean %checks {
1027
+ export function isWithStatement(node /*: ESNode | Token */) /*: node is WithStatement */ {
751
1028
  return node.type === 'WithStatement';
752
1029
  }
1030
+
753
1031
 
754
- export function isYieldExpression(node: ESNode | Token): boolean %checks {
1032
+ export function isYieldExpression(node /*: ESNode | Token */) /*: node is YieldExpression */ {
755
1033
  return node.type === 'YieldExpression';
756
1034
  }
1035
+
757
1036
 
758
- export function isLiteral(node: ESNode | Token): boolean %checks {
1037
+ export function isLiteral(node /*: ESNode | Token */) /*: node is Literal */ {
759
1038
  return node.type === 'Literal';
760
1039
  }
1040
+
761
1041
 
762
- export function isLineComment(node: ESNode | Token): boolean %checks {
1042
+ export function isLineComment(node /*: ESNode | Token */) /*: node is (MostTokens | LineComment) */ {
763
1043
  return node.type === 'Line';
764
1044
  }
1045
+
765
1046
 
766
- export function isBlockComment(node: ESNode | Token): boolean %checks {
1047
+ export function isBlockComment(node /*: ESNode | Token */) /*: node is (MostTokens | BlockComment) */ {
767
1048
  return node.type === 'Block';
768
1049
  }
1050
+
769
1051
 
770
- export function isMinusToken(node: ESNode | Token): boolean %checks {
1052
+ export function isMinusToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
771
1053
  return node.type === 'Punctuator' && node.value === '-';
772
1054
  }
1055
+
773
1056
 
774
- export function isPlusToken(node: ESNode | Token): boolean %checks {
1057
+ export function isPlusToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
775
1058
  return node.type === 'Punctuator' && node.value === '+';
776
1059
  }
1060
+
777
1061
 
778
- export function isLogicalNotToken(node: ESNode | Token): boolean %checks {
1062
+ export function isLogicalNotToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
779
1063
  return node.type === 'Punctuator' && node.value === '!';
780
1064
  }
1065
+
781
1066
 
782
- export function isUnaryNegationToken(node: ESNode | Token): boolean %checks {
1067
+ export function isUnaryNegationToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
783
1068
  return node.type === 'Punctuator' && node.value === '~';
784
1069
  }
1070
+
785
1071
 
786
- export function isTypeOfToken(node: ESNode | Token): boolean %checks {
1072
+ export function isTypeOfToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
787
1073
  return node.type === 'Keyword' && node.value === 'typeof';
788
1074
  }
1075
+
789
1076
 
790
- export function isVoidToken(node: ESNode | Token): boolean %checks {
1077
+ export function isVoidToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
791
1078
  return node.type === 'Keyword' && node.value === 'void';
792
1079
  }
1080
+
793
1081
 
794
- export function isDeleteToken(node: ESNode | Token): boolean %checks {
1082
+ export function isDeleteToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
795
1083
  return node.type === 'Keyword' && node.value === 'delete';
796
1084
  }
1085
+
797
1086
 
798
- export function isLooseEqualToken(node: ESNode | Token): boolean %checks {
1087
+ export function isLooseEqualToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
799
1088
  return node.type === 'Punctuator' && node.value === '==';
800
1089
  }
1090
+
801
1091
 
802
- export function isLooseNotEqualToken(node: ESNode | Token): boolean %checks {
1092
+ export function isLooseNotEqualToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
803
1093
  return node.type === 'Punctuator' && node.value === '!=';
804
1094
  }
1095
+
805
1096
 
806
- export function isStrictEqualToken(node: ESNode | Token): boolean %checks {
1097
+ export function isStrictEqualToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
807
1098
  return node.type === 'Punctuator' && node.value === '===';
808
1099
  }
1100
+
809
1101
 
810
- export function isStrictNotEqualToken(node: ESNode | Token): boolean %checks {
1102
+ export function isStrictNotEqualToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
811
1103
  return node.type === 'Punctuator' && node.value === '!==';
812
1104
  }
1105
+
813
1106
 
814
- export function isLessThanToken(node: ESNode | Token): boolean %checks {
1107
+ export function isLessThanToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
815
1108
  return node.type === 'Punctuator' && node.value === '<';
816
1109
  }
1110
+
817
1111
 
818
- export function isLessThanOrEqualToToken(
819
- node: ESNode | Token,
820
- ): boolean %checks {
1112
+ export function isLessThanOrEqualToToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
821
1113
  return node.type === 'Punctuator' && node.value === '<=';
822
1114
  }
1115
+
823
1116
 
824
- export function isGreaterThanToken(node: ESNode | Token): boolean %checks {
1117
+ export function isGreaterThanToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
825
1118
  return node.type === 'Punctuator' && node.value === '>';
826
1119
  }
1120
+
827
1121
 
828
- export function isGreaterThanOrEqualToToken(
829
- node: ESNode | Token,
830
- ): boolean %checks {
1122
+ export function isGreaterThanOrEqualToToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
831
1123
  return node.type === 'Punctuator' && node.value === '>=';
832
1124
  }
1125
+
833
1126
 
834
- export function isBitwiseLeftShiftToken(node: ESNode | Token): boolean %checks {
1127
+ export function isBitwiseLeftShiftToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
835
1128
  return node.type === 'Punctuator' && node.value === '<<';
836
1129
  }
1130
+
837
1131
 
838
- export function isBitwiseRightShiftToken(
839
- node: ESNode | Token,
840
- ): boolean %checks {
1132
+ export function isBitwiseRightShiftToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
841
1133
  return node.type === 'Punctuator' && node.value === '>>';
842
1134
  }
1135
+
843
1136
 
844
- export function isBitwiseUnsignedRightShiftToken(
845
- node: ESNode | Token,
846
- ): boolean %checks {
1137
+ export function isBitwiseUnsignedRightShiftToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
847
1138
  return node.type === 'Punctuator' && node.value === '>>>';
848
1139
  }
1140
+
849
1141
 
850
- export function isAsterixToken(node: ESNode | Token): boolean %checks {
1142
+ export function isAsterixToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
851
1143
  return node.type === 'Punctuator' && node.value === '*';
852
1144
  }
1145
+
853
1146
 
854
- export function isForwardSlashToken(node: ESNode | Token): boolean %checks {
1147
+ export function isForwardSlashToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
855
1148
  return node.type === 'Punctuator' && node.value === '/';
856
1149
  }
1150
+
857
1151
 
858
- export function isPercentToken(node: ESNode | Token): boolean %checks {
1152
+ export function isPercentToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
859
1153
  return node.type === 'Punctuator' && node.value === '%';
860
1154
  }
1155
+
861
1156
 
862
- export function isExponentiationToken(node: ESNode | Token): boolean %checks {
1157
+ export function isExponentiationToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
863
1158
  return node.type === 'Punctuator' && node.value === '**';
864
1159
  }
1160
+
865
1161
 
866
- export function isBitwiseORToken(node: ESNode | Token): boolean %checks {
1162
+ export function isBitwiseORToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
867
1163
  return node.type === 'Punctuator' && node.value === '|';
868
1164
  }
1165
+
869
1166
 
870
- export function isBitwiseXORToken(node: ESNode | Token): boolean %checks {
1167
+ export function isBitwiseXORToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
871
1168
  return node.type === 'Punctuator' && node.value === '^';
872
1169
  }
1170
+
873
1171
 
874
- export function isBitwiseANDToken(node: ESNode | Token): boolean %checks {
1172
+ export function isBitwiseANDToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
875
1173
  return node.type === 'Punctuator' && node.value === '&';
876
1174
  }
1175
+
877
1176
 
878
- export function isInToken(node: ESNode | Token): boolean %checks {
1177
+ export function isInToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
879
1178
  return node.type === 'Keyword' && node.value === 'in';
880
1179
  }
1180
+
881
1181
 
882
- export function isInstanceOfToken(node: ESNode | Token): boolean %checks {
1182
+ export function isInstanceOfToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
883
1183
  return node.type === 'Keyword' && node.value === 'instanceof';
884
1184
  }
1185
+
885
1186
 
886
- export function isLogicalORToken(node: ESNode | Token): boolean %checks {
1187
+ export function isLogicalORToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
887
1188
  return node.type === 'Punctuator' && node.value === '||';
888
1189
  }
1190
+
889
1191
 
890
- export function isLogicalANDToken(node: ESNode | Token): boolean %checks {
1192
+ export function isLogicalANDToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
891
1193
  return node.type === 'Punctuator' && node.value === '&&';
892
1194
  }
1195
+
893
1196
 
894
- export function isNullishCoalesceToken(node: ESNode | Token): boolean %checks {
1197
+ export function isNullishCoalesceToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
895
1198
  return node.type === 'Punctuator' && node.value === '??';
896
1199
  }
1200
+
897
1201
 
898
- export function isEqualToken(node: ESNode | Token): boolean %checks {
1202
+ export function isEqualToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
899
1203
  return node.type === 'Punctuator' && node.value === '=';
900
1204
  }
1205
+
901
1206
 
902
- export function isPlusEqualToken(node: ESNode | Token): boolean %checks {
1207
+ export function isPlusEqualToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
903
1208
  return node.type === 'Punctuator' && node.value === '+=';
904
1209
  }
1210
+
905
1211
 
906
- export function isMinusEqualToken(node: ESNode | Token): boolean %checks {
1212
+ export function isMinusEqualToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
907
1213
  return node.type === 'Punctuator' && node.value === '-=';
908
1214
  }
1215
+
909
1216
 
910
- export function isMultiplyEqualToken(node: ESNode | Token): boolean %checks {
1217
+ export function isMultiplyEqualToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
911
1218
  return node.type === 'Punctuator' && node.value === '*=';
912
1219
  }
1220
+
913
1221
 
914
- export function isDivideEqualToken(node: ESNode | Token): boolean %checks {
1222
+ export function isDivideEqualToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
915
1223
  return node.type === 'Punctuator' && node.value === '/=';
916
1224
  }
1225
+
917
1226
 
918
- export function isRemainderEqualToken(node: ESNode | Token): boolean %checks {
1227
+ export function isRemainderEqualToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
919
1228
  return node.type === 'Punctuator' && node.value === '%=';
920
1229
  }
1230
+
921
1231
 
922
- export function isExponentateEqualToken(node: ESNode | Token): boolean %checks {
1232
+ export function isExponentateEqualToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
923
1233
  return node.type === 'Punctuator' && node.value === '**=';
924
1234
  }
1235
+
925
1236
 
926
- export function isBitwiseLeftShiftEqualToken(
927
- node: ESNode | Token,
928
- ): boolean %checks {
1237
+ export function isBitwiseLeftShiftEqualToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
929
1238
  return node.type === 'Punctuator' && node.value === '<<=';
930
1239
  }
1240
+
931
1241
 
932
- export function isBitwiseRightShiftEqualToken(
933
- node: ESNode | Token,
934
- ): boolean %checks {
1242
+ export function isBitwiseRightShiftEqualToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
935
1243
  return node.type === 'Punctuator' && node.value === '>>=';
936
1244
  }
1245
+
937
1246
 
938
- export function isBitwiseUnsignedRightShiftEqualToken(
939
- node: ESNode | Token,
940
- ): boolean %checks {
1247
+ export function isBitwiseUnsignedRightShiftEqualToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
941
1248
  return node.type === 'Punctuator' && node.value === '>>>=';
942
1249
  }
1250
+
943
1251
 
944
- export function isBitwiseOREqualToken(node: ESNode | Token): boolean %checks {
1252
+ export function isBitwiseOREqualToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
945
1253
  return node.type === 'Punctuator' && node.value === '|=';
946
1254
  }
1255
+
947
1256
 
948
- export function isBitwiseXOREqualToken(node: ESNode | Token): boolean %checks {
1257
+ export function isBitwiseXOREqualToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
949
1258
  return node.type === 'Punctuator' && node.value === '^=';
950
1259
  }
1260
+
951
1261
 
952
- export function isBitwiseANDEqualToken(node: ESNode | Token): boolean %checks {
1262
+ export function isBitwiseANDEqualToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
953
1263
  return node.type === 'Punctuator' && node.value === '&=';
954
1264
  }
1265
+
955
1266
 
956
- export function isLogicalOREqualToken(node: ESNode | Token): boolean %checks {
1267
+ export function isLogicalOREqualToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
957
1268
  return node.type === 'Punctuator' && node.value === '||=';
958
1269
  }
1270
+
959
1271
 
960
- export function isLogicalANDEqualToken(node: ESNode | Token): boolean %checks {
1272
+ export function isLogicalANDEqualToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
961
1273
  return node.type === 'Punctuator' && node.value === '&&=';
962
1274
  }
1275
+
963
1276
 
964
- export function isNullishCoalesceEqualToken(
965
- node: ESNode | Token,
966
- ): boolean %checks {
1277
+ export function isNullishCoalesceEqualToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
967
1278
  return node.type === 'Punctuator' && node.value === '??=';
968
1279
  }
1280
+
969
1281
 
970
- export function isIncrementToken(node: ESNode | Token): boolean %checks {
1282
+ export function isIncrementToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
971
1283
  return node.type === 'Punctuator' && node.value === '++';
972
1284
  }
1285
+
973
1286
 
974
- export function isDecrementToken(node: ESNode | Token): boolean %checks {
1287
+ export function isDecrementToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
975
1288
  return node.type === 'Punctuator' && node.value === '--';
976
1289
  }
1290
+
977
1291
 
978
- export function isUnionTypeToken(node: ESNode | Token): boolean %checks {
1292
+ export function isUnionTypeToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
979
1293
  return node.type === 'Punctuator' && node.value === '|';
980
1294
  }
1295
+
981
1296
 
982
- export function isIntersectionTypeToken(node: ESNode | Token): boolean %checks {
1297
+ export function isIntersectionTypeToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
983
1298
  return node.type === 'Punctuator' && node.value === '&';
984
1299
  }
1300
+
985
1301
 
986
- export function isBreakToken(node: ESNode | Token): boolean %checks {
1302
+ export function isBreakToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
987
1303
  return node.type === 'Keyword' && node.value === 'break';
988
1304
  }
1305
+
989
1306
 
990
- export function isCaseToken(node: ESNode | Token): boolean %checks {
1307
+ export function isCaseToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
991
1308
  return node.type === 'Keyword' && node.value === 'case';
992
1309
  }
1310
+
993
1311
 
994
- export function isCatchToken(node: ESNode | Token): boolean %checks {
1312
+ export function isCatchToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
995
1313
  return node.type === 'Keyword' && node.value === 'catch';
996
1314
  }
1315
+
997
1316
 
998
- export function isClassToken(node: ESNode | Token): boolean %checks {
1317
+ export function isClassToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
999
1318
  return node.type === 'Keyword' && node.value === 'class';
1000
1319
  }
1320
+
1001
1321
 
1002
- export function isConstToken(node: ESNode | Token): boolean %checks {
1322
+ export function isConstToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1003
1323
  return node.type === 'Keyword' && node.value === 'const';
1004
1324
  }
1325
+
1005
1326
 
1006
- export function isContinueToken(node: ESNode | Token): boolean %checks {
1327
+ export function isContinueToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1007
1328
  return node.type === 'Keyword' && node.value === 'continue';
1008
1329
  }
1330
+
1009
1331
 
1010
- export function isDebuggerToken(node: ESNode | Token): boolean %checks {
1332
+ export function isDebuggerToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1011
1333
  return node.type === 'Keyword' && node.value === 'debugger';
1012
1334
  }
1335
+
1013
1336
 
1014
- export function isDefaultToken(node: ESNode | Token): boolean %checks {
1337
+ export function isDefaultToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1015
1338
  return node.type === 'Keyword' && node.value === 'default';
1016
1339
  }
1340
+
1017
1341
 
1018
- export function isDoToken(node: ESNode | Token): boolean %checks {
1342
+ export function isDoToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1019
1343
  return node.type === 'Keyword' && node.value === 'do';
1020
1344
  }
1345
+
1021
1346
 
1022
- export function isElseToken(node: ESNode | Token): boolean %checks {
1347
+ export function isElseToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1023
1348
  return node.type === 'Keyword' && node.value === 'else';
1024
1349
  }
1350
+
1025
1351
 
1026
- export function isEnumToken(node: ESNode | Token): boolean %checks {
1352
+ export function isEnumToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1027
1353
  return node.type === 'Keyword' && node.value === 'enum';
1028
1354
  }
1355
+
1029
1356
 
1030
- export function isExportToken(node: ESNode | Token): boolean %checks {
1357
+ export function isExportToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1031
1358
  return node.type === 'Keyword' && node.value === 'export';
1032
1359
  }
1360
+
1033
1361
 
1034
- export function isExtendsToken(node: ESNode | Token): boolean %checks {
1362
+ export function isExtendsToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1035
1363
  return node.type === 'Keyword' && node.value === 'extends';
1036
1364
  }
1365
+
1037
1366
 
1038
- export function isFinallyToken(node: ESNode | Token): boolean %checks {
1367
+ export function isFinallyToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1039
1368
  return node.type === 'Keyword' && node.value === 'finally';
1040
1369
  }
1370
+
1041
1371
 
1042
- export function isForToken(node: ESNode | Token): boolean %checks {
1372
+ export function isForToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1043
1373
  return node.type === 'Keyword' && node.value === 'for';
1044
1374
  }
1375
+
1045
1376
 
1046
- export function isFunctionToken(node: ESNode | Token): boolean %checks {
1377
+ export function isFunctionToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1047
1378
  return node.type === 'Keyword' && node.value === 'function';
1048
1379
  }
1380
+
1049
1381
 
1050
- export function isIfToken(node: ESNode | Token): boolean %checks {
1382
+ export function isIfToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1051
1383
  return node.type === 'Keyword' && node.value === 'if';
1052
1384
  }
1385
+
1053
1386
 
1054
- export function isImplementsToken(node: ESNode | Token): boolean %checks {
1387
+ export function isImplementsToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1055
1388
  return node.type === 'Keyword' && node.value === 'implements';
1056
1389
  }
1390
+
1057
1391
 
1058
- export function isImportToken(node: ESNode | Token): boolean %checks {
1392
+ export function isImportToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1059
1393
  return node.type === 'Keyword' && node.value === 'import';
1060
1394
  }
1395
+
1061
1396
 
1062
- export function isInterfaceToken(node: ESNode | Token): boolean %checks {
1397
+ export function isInterfaceToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1063
1398
  return node.type === 'Keyword' && node.value === 'interface';
1064
1399
  }
1400
+
1065
1401
 
1066
- export function isNewToken(node: ESNode | Token): boolean %checks {
1402
+ export function isNewToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1067
1403
  return node.type === 'Keyword' && node.value === 'new';
1068
1404
  }
1405
+
1069
1406
 
1070
- export function isReturnToken(node: ESNode | Token): boolean %checks {
1407
+ export function isReturnToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1071
1408
  return node.type === 'Keyword' && node.value === 'return';
1072
1409
  }
1410
+
1073
1411
 
1074
- export function isStaticToken(node: ESNode | Token): boolean %checks {
1412
+ export function isStaticToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1075
1413
  return node.type === 'Keyword' && node.value === 'static';
1076
1414
  }
1415
+
1077
1416
 
1078
- export function isSuperToken(node: ESNode | Token): boolean %checks {
1417
+ export function isSuperToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1079
1418
  return node.type === 'Keyword' && node.value === 'super';
1080
1419
  }
1420
+
1081
1421
 
1082
- export function isSwitchToken(node: ESNode | Token): boolean %checks {
1422
+ export function isSwitchToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1083
1423
  return node.type === 'Keyword' && node.value === 'switch';
1084
1424
  }
1425
+
1085
1426
 
1086
- export function isThisToken(node: ESNode | Token): boolean %checks {
1427
+ export function isThisToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1087
1428
  return node.type === 'Keyword' && node.value === 'this';
1088
1429
  }
1430
+
1089
1431
 
1090
- export function isThrowToken(node: ESNode | Token): boolean %checks {
1432
+ export function isThrowToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1091
1433
  return node.type === 'Keyword' && node.value === 'throw';
1092
1434
  }
1435
+
1093
1436
 
1094
- export function isTryToken(node: ESNode | Token): boolean %checks {
1437
+ export function isTryToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1095
1438
  return node.type === 'Keyword' && node.value === 'try';
1096
1439
  }
1440
+
1097
1441
 
1098
- export function isVarToken(node: ESNode | Token): boolean %checks {
1442
+ export function isVarToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1099
1443
  return node.type === 'Keyword' && node.value === 'var';
1100
1444
  }
1445
+
1101
1446
 
1102
- export function isWhileToken(node: ESNode | Token): boolean %checks {
1447
+ export function isWhileToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1103
1448
  return node.type === 'Keyword' && node.value === 'while';
1104
1449
  }
1450
+
1105
1451
 
1106
- export function isWithToken(node: ESNode | Token): boolean %checks {
1452
+ export function isWithToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1107
1453
  return node.type === 'Keyword' && node.value === 'with';
1108
1454
  }
1455
+
1109
1456
 
1110
- export function isYieldToken(node: ESNode | Token): boolean %checks {
1457
+ export function isYieldToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1111
1458
  return node.type === 'Keyword' && node.value === 'yield';
1112
1459
  }
1460
+
1113
1461
 
1114
- export function isAsKeyword(node: ESNode | Token): boolean %checks {
1462
+ export function isAsKeyword(node /*: ESNode | Token */) /*: node is (Identifier | MostTokens) */ {
1115
1463
  return (
1116
1464
  (node.type === 'Identifier' && node.name === 'as') ||
1117
1465
  (node.type === 'Keyword' && node.value === 'as')
1118
1466
  );
1119
1467
  }
1468
+
1120
1469
 
1121
- export function isAsyncKeyword(node: ESNode | Token): boolean %checks {
1470
+ export function isAsyncKeyword(node /*: ESNode | Token */) /*: node is (Identifier | MostTokens) */ {
1122
1471
  return (
1123
1472
  (node.type === 'Identifier' && node.name === 'async') ||
1124
1473
  (node.type === 'Keyword' && node.value === 'async')
1125
1474
  );
1126
1475
  }
1476
+
1127
1477
 
1128
- export function isAwaitKeyword(node: ESNode | Token): boolean %checks {
1478
+ export function isAwaitKeyword(node /*: ESNode | Token */) /*: node is (Identifier | MostTokens) */ {
1129
1479
  return (
1130
1480
  (node.type === 'Identifier' && node.name === 'await') ||
1131
1481
  (node.type === 'Keyword' && node.value === 'await')
1132
1482
  );
1133
1483
  }
1484
+
1134
1485
 
1135
- export function isDeclareKeyword(node: ESNode | Token): boolean %checks {
1486
+ export function isDeclareKeyword(node /*: ESNode | Token */) /*: node is (Identifier | MostTokens) */ {
1136
1487
  return (
1137
1488
  (node.type === 'Identifier' && node.name === 'declare') ||
1138
1489
  (node.type === 'Keyword' && node.value === 'declare')
1139
1490
  );
1140
1491
  }
1492
+
1141
1493
 
1142
- export function isFromKeyword(node: ESNode | Token): boolean %checks {
1494
+ export function isFromKeyword(node /*: ESNode | Token */) /*: node is (Identifier | MostTokens) */ {
1143
1495
  return (
1144
1496
  (node.type === 'Identifier' && node.name === 'from') ||
1145
1497
  (node.type === 'Keyword' && node.value === 'from')
1146
1498
  );
1147
1499
  }
1500
+
1148
1501
 
1149
- export function isGetKeyword(node: ESNode | Token): boolean %checks {
1502
+ export function isGetKeyword(node /*: ESNode | Token */) /*: node is (Identifier | MostTokens) */ {
1150
1503
  return (
1151
1504
  (node.type === 'Identifier' && node.name === 'get') ||
1152
1505
  (node.type === 'Keyword' && node.value === 'get')
1153
1506
  );
1154
1507
  }
1508
+
1155
1509
 
1156
- export function isLetKeyword(node: ESNode | Token): boolean %checks {
1510
+ export function isLetKeyword(node /*: ESNode | Token */) /*: node is (Identifier | MostTokens) */ {
1157
1511
  return (
1158
1512
  (node.type === 'Identifier' && node.name === 'let') ||
1159
1513
  (node.type === 'Keyword' && node.value === 'let')
1160
1514
  );
1161
1515
  }
1516
+
1162
1517
 
1163
- export function isModuleKeyword(node: ESNode | Token): boolean %checks {
1518
+ export function isModuleKeyword(node /*: ESNode | Token */) /*: node is (Identifier | MostTokens) */ {
1164
1519
  return (
1165
1520
  (node.type === 'Identifier' && node.name === 'module') ||
1166
1521
  (node.type === 'Keyword' && node.value === 'module')
1167
1522
  );
1168
1523
  }
1524
+
1169
1525
 
1170
- export function isOfKeyword(node: ESNode | Token): boolean %checks {
1526
+ export function isOfKeyword(node /*: ESNode | Token */) /*: node is (Identifier | MostTokens) */ {
1171
1527
  return (
1172
1528
  (node.type === 'Identifier' && node.name === 'of') ||
1173
1529
  (node.type === 'Keyword' && node.value === 'of')
1174
1530
  );
1175
1531
  }
1532
+
1176
1533
 
1177
- export function isSetKeyword(node: ESNode | Token): boolean %checks {
1534
+ export function isSetKeyword(node /*: ESNode | Token */) /*: node is (Identifier | MostTokens) */ {
1178
1535
  return (
1179
1536
  (node.type === 'Identifier' && node.name === 'set') ||
1180
1537
  (node.type === 'Keyword' && node.value === 'set')
1181
1538
  );
1182
1539
  }
1540
+
1183
1541
 
1184
- export function isTypeKeyword(node: ESNode | Token): boolean %checks {
1542
+ export function isTypeKeyword(node /*: ESNode | Token */) /*: node is (Identifier | MostTokens) */ {
1185
1543
  return (
1186
1544
  (node.type === 'Identifier' && node.name === 'type') ||
1187
1545
  (node.type === 'Keyword' && node.value === 'type')
1188
1546
  );
1189
1547
  }
1548
+
1190
1549
 
1191
- export function isCommaToken(node: ESNode | Token): boolean %checks {
1550
+ export function isCommaToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1192
1551
  return node.type === 'Punctuator' && node.value === ',';
1193
1552
  }
1553
+
1194
1554
 
1195
- export function isColonToken(node: ESNode | Token): boolean %checks {
1555
+ export function isColonToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1196
1556
  return node.type === 'Punctuator' && node.value === ':';
1197
1557
  }
1558
+
1198
1559
 
1199
- export function isSemicolonToken(node: ESNode | Token): boolean %checks {
1560
+ export function isSemicolonToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1200
1561
  return node.type === 'Punctuator' && node.value === ';';
1201
1562
  }
1563
+
1202
1564
 
1203
- export function isDotToken(node: ESNode | Token): boolean %checks {
1565
+ export function isDotToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1204
1566
  return node.type === 'Punctuator' && node.value === '.';
1205
1567
  }
1568
+
1206
1569
 
1207
- export function isDotDotDotToken(node: ESNode | Token): boolean %checks {
1570
+ export function isDotDotDotToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1208
1571
  return node.type === 'Punctuator' && node.value === '...';
1209
1572
  }
1573
+
1210
1574
 
1211
- export function isOptionalChainToken(node: ESNode | Token): boolean %checks {
1575
+ export function isOptionalChainToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1212
1576
  return node.type === 'Punctuator' && node.value === '?.';
1213
1577
  }
1578
+
1214
1579
 
1215
- export function isQuestionMarkToken(node: ESNode | Token): boolean %checks {
1580
+ export function isQuestionMarkToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1216
1581
  return node.type === 'Punctuator' && node.value === '?';
1217
1582
  }
1583
+
1218
1584
 
1219
- export function isOpeningParenthesisToken(
1220
- node: ESNode | Token,
1221
- ): boolean %checks {
1585
+ export function isOpeningParenthesisToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1222
1586
  return node.type === 'Punctuator' && node.value === '(';
1223
1587
  }
1588
+
1224
1589
 
1225
- export function isClosingParenthesisToken(
1226
- node: ESNode | Token,
1227
- ): boolean %checks {
1590
+ export function isClosingParenthesisToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1228
1591
  return node.type === 'Punctuator' && node.value === ')';
1229
1592
  }
1593
+
1230
1594
 
1231
- export function isOpeningCurlyBracketToken(
1232
- node: ESNode | Token,
1233
- ): boolean %checks {
1595
+ export function isOpeningCurlyBracketToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1234
1596
  return node.type === 'Punctuator' && node.value === '{';
1235
1597
  }
1598
+
1236
1599
 
1237
- export function isClosingCurlyBracketToken(
1238
- node: ESNode | Token,
1239
- ): boolean %checks {
1600
+ export function isClosingCurlyBracketToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1240
1601
  return node.type === 'Punctuator' && node.value === '}';
1241
1602
  }
1603
+
1242
1604
 
1243
- export function isOpeningAngleBracketToken(
1244
- node: ESNode | Token,
1245
- ): boolean %checks {
1605
+ export function isOpeningAngleBracketToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1246
1606
  return node.type === 'Punctuator' && node.value === '<';
1247
1607
  }
1608
+
1248
1609
 
1249
- export function isClosingAngleBracketToken(
1250
- node: ESNode | Token,
1251
- ): boolean %checks {
1610
+ export function isClosingAngleBracketToken(node /*: ESNode | Token */) /*: node is MostTokens */ {
1252
1611
  return node.type === 'Punctuator' && node.value === '>';
1253
1612
  }
1613
+