hermes-transform 0.8.0 → 0.10.0

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.
Files changed (65) hide show
  1. package/ESLINT_LICENCE +19 -0
  2. package/PRETTIER_LICENCE +7 -0
  3. package/dist/detachedNode.js +100 -42
  4. package/dist/detachedNode.js.flow +116 -41
  5. package/dist/generated/TransformCloneSignatures.js.flow +18 -0
  6. package/dist/generated/TransformModifySignatures.js.flow +1127 -0
  7. package/dist/generated/TransformReplaceSignatures.js.flow +15 -1
  8. package/dist/generated/node-types.js +852 -883
  9. package/dist/generated/node-types.js.flow +1187 -1217
  10. package/dist/generated/special-case-node-types/Comment.js +36 -0
  11. package/dist/generated/special-case-node-types/Comment.js.flow +36 -0
  12. package/dist/generated/special-case-node-types/DeclareExportDeclaration.js +55 -0
  13. package/dist/generated/special-case-node-types/DeclareExportDeclaration.js.flow +97 -0
  14. package/dist/generated/special-case-node-types/ExportNamedDeclaration.js +42 -0
  15. package/dist/generated/special-case-node-types/ExportNamedDeclaration.js.flow +75 -0
  16. package/dist/generated/special-case-node-types/Literal.js +97 -0
  17. package/dist/generated/special-case-node-types/Literal.js.flow +139 -0
  18. package/dist/generated/special-case-node-types/ObjectTypeProperty.js +73 -0
  19. package/dist/generated/special-case-node-types/ObjectTypeProperty.js.flow +107 -0
  20. package/dist/generated/special-case-node-types/Property.js +136 -0
  21. package/dist/generated/special-case-node-types/Property.js.flow +237 -0
  22. package/dist/generated/special-case-node-types/misc.js +119 -0
  23. package/dist/generated/special-case-node-types/misc.js.flow +205 -0
  24. package/dist/generated/special-case-node-types.js +42 -180
  25. package/dist/generated/special-case-node-types.js.flow +7 -258
  26. package/dist/index.js +19 -3
  27. package/dist/index.js.flow +6 -2
  28. package/dist/transform/TransformContext.js +34 -11
  29. package/dist/transform/TransformContext.js.flow +90 -33
  30. package/dist/transform/comments/comments.js +34 -5
  31. package/dist/transform/comments/comments.js.flow +39 -4
  32. package/dist/transform/comments/prettier/main/comments.js +1 -1
  33. package/dist/transform/comments/prettier/main/comments.js.flow +2 -1
  34. package/dist/transform/mutations/InsertStatement.js +4 -3
  35. package/dist/transform/mutations/InsertStatement.js.flow +4 -3
  36. package/dist/transform/mutations/RemoveComment.js +3 -3
  37. package/dist/transform/mutations/RemoveComment.js.flow +3 -5
  38. package/dist/transform/mutations/RemoveNode.js +2 -2
  39. package/dist/transform/mutations/RemoveNode.js.flow +2 -2
  40. package/dist/transform/mutations/RemoveStatement.js +2 -2
  41. package/dist/transform/mutations/RemoveStatement.js.flow +2 -2
  42. package/dist/transform/mutations/ReplaceNode.js +10 -7
  43. package/dist/transform/mutations/ReplaceNode.js.flow +7 -5
  44. package/dist/transform/mutations/ReplaceStatementWithMany.js +2 -2
  45. package/dist/transform/mutations/ReplaceStatementWithMany.js.flow +7 -4
  46. package/dist/transform/mutations/utils/getStatementParent.js +3 -2
  47. package/dist/transform/mutations/utils/getStatementParent.js.flow +5 -2
  48. package/dist/transform/parse.js +55 -0
  49. package/dist/transform/parse.js.flow +55 -0
  50. package/dist/transform/print.js +160 -0
  51. package/dist/transform/print.js.flow +176 -0
  52. package/dist/transform/transform.js +6 -67
  53. package/dist/transform/transform.js.flow +6 -69
  54. package/dist/transform/{getTransformedAST.js → transformAST.js} +7 -16
  55. package/dist/transform/{getTransformedAST.js.flow → transformAST.js.flow} +7 -14
  56. package/dist/traverse/NodeEventGenerator.js.flow +1 -1
  57. package/dist/traverse/traverse.js +36 -35
  58. package/dist/traverse/traverse.js.flow +46 -27
  59. package/package.json +10 -5
  60. package/dist/getVisitorKeys.js +0 -33
  61. package/dist/getVisitorKeys.js.flow +0 -31
  62. package/dist/transform/mutations/utils/arrayUtils.js +0 -43
  63. package/dist/transform/mutations/utils/arrayUtils.js.flow +0 -50
  64. package/dist/traverse/SimpleTraverser.js +0 -118
  65. package/dist/traverse/SimpleTraverser.js.flow +0 -112
@@ -6,6 +6,13 @@
6
6
  *
7
7
  *
8
8
  * @format
9
+ * @generated
10
+ */
11
+
12
+ /*
13
+ * !!! GENERATED FILE !!!
14
+ *
15
+ * Any manual changes to this file will be overwritten. To regenerate run `yarn build`.
9
16
  */
10
17
  // lint directives to let us do some basic validation of generated files
11
18
 
@@ -26,6 +33,7 @@ var _exportNames = {
26
33
  AssignmentPattern: true,
27
34
  AwaitExpression: true,
28
35
  BigIntLiteralTypeAnnotation: true,
36
+ BigIntTypeAnnotation: true,
29
37
  BinaryExpression: true,
30
38
  BlockStatement: true,
31
39
  BooleanLiteralTypeAnnotation: true,
@@ -35,7 +43,6 @@ var _exportNames = {
35
43
  CatchClause: true,
36
44
  ChainExpression: true,
37
45
  ClassBody: true,
38
- ClassDeclaration: true,
39
46
  ClassExpression: true,
40
47
  ClassImplements: true,
41
48
  ConditionalExpression: true,
@@ -44,8 +51,6 @@ var _exportNames = {
44
51
  DeclareClass: true,
45
52
  DeclaredPredicate: true,
46
53
  DeclareExportAllDeclaration: true,
47
- DeclareExportDeclaration: true,
48
- DeclareFunction: true,
49
54
  DeclareInterface: true,
50
55
  DeclareModule: true,
51
56
  DeclareModuleExports: true,
@@ -67,7 +72,6 @@ var _exportNames = {
67
72
  ExistsTypeAnnotation: true,
68
73
  ExportAllDeclaration: true,
69
74
  ExportDefaultDeclaration: true,
70
- ExportNamedDeclaration: true,
71
75
  ExportSpecifier: true,
72
76
  ExpressionStatement: true,
73
77
  ForInStatement: true,
@@ -123,7 +127,6 @@ var _exportNames = {
123
127
  ObjectTypeCallProperty: true,
124
128
  ObjectTypeIndexer: true,
125
129
  ObjectTypeInternalSlot: true,
126
- ObjectTypeProperty: true,
127
130
  ObjectTypeSpreadProperty: true,
128
131
  OpaqueType: true,
129
132
  OptionalIndexedAccessType: true,
@@ -174,6 +177,7 @@ exports.AssignmentExpression = AssignmentExpression;
174
177
  exports.AssignmentPattern = AssignmentPattern;
175
178
  exports.AwaitExpression = AwaitExpression;
176
179
  exports.BigIntLiteralTypeAnnotation = BigIntLiteralTypeAnnotation;
180
+ exports.BigIntTypeAnnotation = BigIntTypeAnnotation;
177
181
  exports.BinaryExpression = BinaryExpression;
178
182
  exports.BlockStatement = BlockStatement;
179
183
  exports.BooleanLiteralTypeAnnotation = BooleanLiteralTypeAnnotation;
@@ -183,7 +187,6 @@ exports.CallExpression = CallExpression;
183
187
  exports.CatchClause = CatchClause;
184
188
  exports.ChainExpression = ChainExpression;
185
189
  exports.ClassBody = ClassBody;
186
- exports.ClassDeclaration = ClassDeclaration;
187
190
  exports.ClassExpression = ClassExpression;
188
191
  exports.ClassImplements = ClassImplements;
189
192
  exports.ConditionalExpression = ConditionalExpression;
@@ -191,8 +194,6 @@ exports.ContinueStatement = ContinueStatement;
191
194
  exports.DebuggerStatement = DebuggerStatement;
192
195
  exports.DeclareClass = DeclareClass;
193
196
  exports.DeclareExportAllDeclaration = DeclareExportAllDeclaration;
194
- exports.DeclareExportDeclaration = DeclareExportDeclaration;
195
- exports.DeclareFunction = DeclareFunction;
196
197
  exports.DeclareInterface = DeclareInterface;
197
198
  exports.DeclareModule = DeclareModule;
198
199
  exports.DeclareModuleExports = DeclareModuleExports;
@@ -215,7 +216,6 @@ exports.EnumSymbolBody = EnumSymbolBody;
215
216
  exports.ExistsTypeAnnotation = ExistsTypeAnnotation;
216
217
  exports.ExportAllDeclaration = ExportAllDeclaration;
217
218
  exports.ExportDefaultDeclaration = ExportDefaultDeclaration;
218
- exports.ExportNamedDeclaration = ExportNamedDeclaration;
219
219
  exports.ExportSpecifier = ExportSpecifier;
220
220
  exports.ExpressionStatement = ExpressionStatement;
221
221
  exports.ForInStatement = ForInStatement;
@@ -271,7 +271,6 @@ exports.ObjectTypeAnnotation = ObjectTypeAnnotation;
271
271
  exports.ObjectTypeCallProperty = ObjectTypeCallProperty;
272
272
  exports.ObjectTypeIndexer = ObjectTypeIndexer;
273
273
  exports.ObjectTypeInternalSlot = ObjectTypeInternalSlot;
274
- exports.ObjectTypeProperty = ObjectTypeProperty;
275
274
  exports.ObjectTypeSpreadProperty = ObjectTypeSpreadProperty;
276
275
  exports.OpaqueType = OpaqueType;
277
276
  exports.OptionalIndexedAccessType = OptionalIndexedAccessType;
@@ -325,1689 +324,1659 @@ Object.keys(_specialCaseNodeTypes).forEach(function (key) {
325
324
  exports[key] = _specialCaseNodeTypes[key];
326
325
  });
327
326
 
328
- function AnyTypeAnnotation({
329
- parent
330
- } = {}) {
331
- return (0, _detachedNode.detachedProps)(parent, {
327
+ function AnyTypeAnnotation(props = { ...null
328
+ }) {
329
+ return (0, _detachedNode.detachedProps)(props.parent, {
332
330
  type: 'AnyTypeAnnotation'
333
331
  });
334
332
  }
335
333
 
336
- function ArrayExpression({
337
- parent,
338
- ...props
339
- }) {
340
- const node = (0, _detachedNode.detachedProps)(parent, {
334
+ function ArrayExpression(props) {
335
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
341
336
  type: 'ArrayExpression',
342
- ...props
337
+ // $FlowFixMe[incompatible-call],
338
+ elements: props.elements.map(n => (0, _detachedNode.asDetachedNode)(n)),
339
+ trailingComma: props.trailingComma
343
340
  });
344
341
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
345
342
  return node;
346
343
  }
347
344
 
348
- function ArrayPattern({
349
- parent,
350
- ...props
351
- }) {
352
- const node = (0, _detachedNode.detachedProps)(parent, {
345
+ function ArrayPattern(props) {
346
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
353
347
  type: 'ArrayPattern',
354
- ...props
348
+ // $FlowFixMe[incompatible-call],
349
+ elements: props.elements.map(n => (0, _detachedNode.asDetachedNode)(n)),
350
+ // $FlowFixMe[incompatible-call],
351
+ typeAnnotation: (0, _detachedNode.asDetachedNode)(props.typeAnnotation)
355
352
  });
356
353
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
357
354
  return node;
358
355
  }
359
356
 
360
- function ArrayTypeAnnotation({
361
- parent,
362
- ...props
363
- }) {
364
- const node = (0, _detachedNode.detachedProps)(parent, {
357
+ function ArrayTypeAnnotation(props) {
358
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
365
359
  type: 'ArrayTypeAnnotation',
366
- ...props
360
+ // $FlowFixMe[incompatible-call],
361
+ elementType: (0, _detachedNode.asDetachedNode)(props.elementType)
367
362
  });
368
363
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
369
364
  return node;
370
365
  }
371
366
 
372
- function AssignmentExpression({
373
- parent,
374
- ...props
375
- }) {
376
- const node = (0, _detachedNode.detachedProps)(parent, {
367
+ function AssignmentExpression(props) {
368
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
377
369
  type: 'AssignmentExpression',
378
- ...props
370
+ operator: props.operator,
371
+ // $FlowFixMe[incompatible-call],
372
+ left: (0, _detachedNode.asDetachedNode)(props.left),
373
+ // $FlowFixMe[incompatible-call],
374
+ right: (0, _detachedNode.asDetachedNode)(props.right)
379
375
  });
380
376
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
381
377
  return node;
382
378
  }
383
379
 
384
- function AssignmentPattern({
385
- parent,
386
- ...props
387
- }) {
388
- const node = (0, _detachedNode.detachedProps)(parent, {
380
+ function AssignmentPattern(props) {
381
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
389
382
  type: 'AssignmentPattern',
390
- ...props
383
+ // $FlowFixMe[incompatible-call],
384
+ left: (0, _detachedNode.asDetachedNode)(props.left),
385
+ // $FlowFixMe[incompatible-call],
386
+ right: (0, _detachedNode.asDetachedNode)(props.right)
391
387
  });
392
388
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
393
389
  return node;
394
390
  }
395
391
 
396
- function AwaitExpression({
397
- parent,
398
- ...props
399
- }) {
400
- const node = (0, _detachedNode.detachedProps)(parent, {
392
+ function AwaitExpression(props) {
393
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
401
394
  type: 'AwaitExpression',
402
- ...props
395
+ // $FlowFixMe[incompatible-call],
396
+ argument: (0, _detachedNode.asDetachedNode)(props.argument)
403
397
  });
404
398
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
405
399
  return node;
406
400
  }
407
401
 
408
- function BigIntLiteralTypeAnnotation({
409
- parent,
410
- ...props
411
- }) {
412
- const node = (0, _detachedNode.detachedProps)(parent, {
402
+ function BigIntLiteralTypeAnnotation(props) {
403
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
413
404
  type: 'BigIntLiteralTypeAnnotation',
414
- ...props
405
+ raw: props.raw
415
406
  });
416
407
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
417
408
  return node;
418
409
  }
419
410
 
420
- function BinaryExpression({
421
- parent,
422
- ...props
411
+ function BigIntTypeAnnotation(props = { ...null
423
412
  }) {
424
- const node = (0, _detachedNode.detachedProps)(parent, {
413
+ return (0, _detachedNode.detachedProps)(props.parent, {
414
+ type: 'BigIntTypeAnnotation'
415
+ });
416
+ }
417
+
418
+ function BinaryExpression(props) {
419
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
425
420
  type: 'BinaryExpression',
426
- ...props
421
+ // $FlowFixMe[incompatible-call],
422
+ left: (0, _detachedNode.asDetachedNode)(props.left),
423
+ // $FlowFixMe[incompatible-call],
424
+ right: (0, _detachedNode.asDetachedNode)(props.right),
425
+ operator: props.operator
427
426
  });
428
427
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
429
428
  return node;
430
429
  }
431
430
 
432
- function BlockStatement({
433
- parent,
434
- ...props
435
- }) {
436
- const node = (0, _detachedNode.detachedProps)(parent, {
431
+ function BlockStatement(props) {
432
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
437
433
  type: 'BlockStatement',
438
- ...props
434
+ // $FlowFixMe[incompatible-call],
435
+ body: props.body.map(n => (0, _detachedNode.asDetachedNode)(n))
439
436
  });
440
437
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
441
438
  return node;
442
439
  }
443
440
 
444
- function BooleanLiteralTypeAnnotation({
445
- parent,
446
- ...props
447
- }) {
448
- const node = (0, _detachedNode.detachedProps)(parent, {
441
+ function BooleanLiteralTypeAnnotation(props) {
442
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
449
443
  type: 'BooleanLiteralTypeAnnotation',
450
- ...props
444
+ value: props.value,
445
+ raw: props.raw
451
446
  });
452
447
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
453
448
  return node;
454
449
  }
455
450
 
456
- function BooleanTypeAnnotation({
457
- parent
458
- } = {}) {
459
- return (0, _detachedNode.detachedProps)(parent, {
451
+ function BooleanTypeAnnotation(props = { ...null
452
+ }) {
453
+ return (0, _detachedNode.detachedProps)(props.parent, {
460
454
  type: 'BooleanTypeAnnotation'
461
455
  });
462
456
  }
463
457
 
464
- function BreakStatement({
465
- parent,
466
- ...props
467
- }) {
468
- const node = (0, _detachedNode.detachedProps)(parent, {
458
+ function BreakStatement(props) {
459
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
469
460
  type: 'BreakStatement',
470
- ...props
461
+ // $FlowFixMe[incompatible-call],
462
+ label: (0, _detachedNode.asDetachedNode)(props.label)
471
463
  });
472
464
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
473
465
  return node;
474
466
  }
475
467
 
476
- function CallExpression({
477
- parent,
478
- ...props
479
- }) {
480
- const node = (0, _detachedNode.detachedProps)(parent, {
468
+ function CallExpression(props) {
469
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
481
470
  type: 'CallExpression',
482
- ...props
471
+ // $FlowFixMe[incompatible-call],
472
+ callee: (0, _detachedNode.asDetachedNode)(props.callee),
473
+ // $FlowFixMe[incompatible-call],
474
+ typeArguments: (0, _detachedNode.asDetachedNode)(props.typeArguments),
475
+ // $FlowFixMe[incompatible-call],
476
+ arguments: props.arguments.map(n => (0, _detachedNode.asDetachedNode)(n))
483
477
  });
484
478
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
485
479
  return node;
486
480
  }
487
481
 
488
- function CatchClause({
489
- parent,
490
- ...props
491
- }) {
492
- const node = (0, _detachedNode.detachedProps)(parent, {
482
+ function CatchClause(props) {
483
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
493
484
  type: 'CatchClause',
494
- ...props
485
+ // $FlowFixMe[incompatible-call],
486
+ param: (0, _detachedNode.asDetachedNode)(props.param),
487
+ // $FlowFixMe[incompatible-call],
488
+ body: (0, _detachedNode.asDetachedNode)(props.body)
495
489
  });
496
490
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
497
491
  return node;
498
492
  }
499
493
 
500
- function ChainExpression({
501
- parent,
502
- ...props
503
- }) {
504
- const node = (0, _detachedNode.detachedProps)(parent, {
494
+ function ChainExpression(props) {
495
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
505
496
  type: 'ChainExpression',
506
- ...props
497
+ // $FlowFixMe[incompatible-call],
498
+ expression: (0, _detachedNode.asDetachedNode)(props.expression)
507
499
  });
508
500
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
509
501
  return node;
510
502
  }
511
503
 
512
- function ClassBody({
513
- parent,
514
- ...props
515
- }) {
516
- const node = (0, _detachedNode.detachedProps)(parent, {
504
+ function ClassBody(props) {
505
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
517
506
  type: 'ClassBody',
518
- ...props
507
+ // $FlowFixMe[incompatible-call],
508
+ body: props.body.map(n => (0, _detachedNode.asDetachedNode)(n))
519
509
  });
520
510
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
521
511
  return node;
522
512
  }
523
513
 
524
- function ClassDeclaration({
525
- parent,
526
- ...props
527
- }) {
528
- const node = (0, _detachedNode.detachedProps)(parent, {
529
- type: 'ClassDeclaration',
530
- ...props
531
- });
532
- (0, _detachedNode.setParentPointersInDirectChildren)(node);
533
- return node;
534
- }
535
-
536
- function ClassExpression({
537
- parent,
538
- ...props
539
- }) {
540
- const node = (0, _detachedNode.detachedProps)(parent, {
514
+ function ClassExpression(props) {
515
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
541
516
  type: 'ClassExpression',
542
- ...props
517
+ // $FlowFixMe[incompatible-call],
518
+ id: (0, _detachedNode.asDetachedNode)(props.id),
519
+ // $FlowFixMe[incompatible-call],
520
+ typeParameters: (0, _detachedNode.asDetachedNode)(props.typeParameters),
521
+ // $FlowFixMe[incompatible-call],
522
+ superClass: (0, _detachedNode.asDetachedNode)(props.superClass),
523
+ // $FlowFixMe[incompatible-call],
524
+ superTypeParameters: (0, _detachedNode.asDetachedNode)(props.superTypeParameters),
525
+ // $FlowFixMe[incompatible-call],
526
+ implements: props.implements.map(n => (0, _detachedNode.asDetachedNode)(n)),
527
+ // $FlowFixMe[incompatible-call],
528
+ decorators: props.decorators.map(n => (0, _detachedNode.asDetachedNode)(n)),
529
+ // $FlowFixMe[incompatible-call],
530
+ body: (0, _detachedNode.asDetachedNode)(props.body)
543
531
  });
544
532
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
545
533
  return node;
546
534
  }
547
535
 
548
- function ClassImplements({
549
- parent,
550
- ...props
551
- }) {
552
- const node = (0, _detachedNode.detachedProps)(parent, {
536
+ function ClassImplements(props) {
537
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
553
538
  type: 'ClassImplements',
554
- ...props
539
+ // $FlowFixMe[incompatible-call],
540
+ id: (0, _detachedNode.asDetachedNode)(props.id),
541
+ // $FlowFixMe[incompatible-call],
542
+ typeParameters: (0, _detachedNode.asDetachedNode)(props.typeParameters)
555
543
  });
556
544
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
557
545
  return node;
558
546
  }
559
547
 
560
- function ConditionalExpression({
561
- parent,
562
- ...props
563
- }) {
564
- const node = (0, _detachedNode.detachedProps)(parent, {
548
+ function ConditionalExpression(props) {
549
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
565
550
  type: 'ConditionalExpression',
566
- ...props
551
+ // $FlowFixMe[incompatible-call],
552
+ test: (0, _detachedNode.asDetachedNode)(props.test),
553
+ // $FlowFixMe[incompatible-call],
554
+ alternate: (0, _detachedNode.asDetachedNode)(props.alternate),
555
+ // $FlowFixMe[incompatible-call],
556
+ consequent: (0, _detachedNode.asDetachedNode)(props.consequent)
567
557
  });
568
558
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
569
559
  return node;
570
560
  }
571
561
 
572
- function ContinueStatement({
573
- parent,
574
- ...props
575
- }) {
576
- const node = (0, _detachedNode.detachedProps)(parent, {
562
+ function ContinueStatement(props) {
563
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
577
564
  type: 'ContinueStatement',
578
- ...props
565
+ // $FlowFixMe[incompatible-call],
566
+ label: (0, _detachedNode.asDetachedNode)(props.label)
579
567
  });
580
568
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
581
569
  return node;
582
570
  }
583
571
 
584
- function DebuggerStatement({
585
- parent
586
- } = {}) {
587
- return (0, _detachedNode.detachedProps)(parent, {
572
+ function DebuggerStatement(props = { ...null
573
+ }) {
574
+ return (0, _detachedNode.detachedProps)(props.parent, {
588
575
  type: 'DebuggerStatement'
589
576
  });
590
577
  }
591
578
 
592
- function DeclareClass({
593
- parent,
594
- ...props
595
- }) {
596
- const node = (0, _detachedNode.detachedProps)(parent, {
579
+ function DeclareClass(props) {
580
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
597
581
  type: 'DeclareClass',
598
- ...props
582
+ // $FlowFixMe[incompatible-call],
583
+ id: (0, _detachedNode.asDetachedNode)(props.id),
584
+ // $FlowFixMe[incompatible-call],
585
+ typeParameters: (0, _detachedNode.asDetachedNode)(props.typeParameters),
586
+ // $FlowFixMe[incompatible-call],
587
+ extends: props.extends.map(n => (0, _detachedNode.asDetachedNode)(n)),
588
+ // $FlowFixMe[incompatible-call],
589
+ implements: props.implements.map(n => (0, _detachedNode.asDetachedNode)(n)),
590
+ // $FlowFixMe[incompatible-call],
591
+ mixins: props.mixins.map(n => (0, _detachedNode.asDetachedNode)(n)),
592
+ // $FlowFixMe[incompatible-call],
593
+ body: (0, _detachedNode.asDetachedNode)(props.body)
599
594
  });
600
595
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
601
596
  return node;
602
597
  }
603
598
 
604
- function DeclaredPredicate({
605
- parent,
606
- ...props
607
- }) {
608
- const node = (0, _detachedNode.detachedProps)(parent, {
599
+ function DeclaredPredicate(props) {
600
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
609
601
  type: 'DeclaredPredicate',
610
- ...props
602
+ // $FlowFixMe[incompatible-call],
603
+ value: (0, _detachedNode.asDetachedNode)(props.value)
611
604
  });
612
605
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
613
606
  return node;
614
607
  }
615
608
 
616
- function DeclareExportAllDeclaration({
617
- parent,
618
- ...props
619
- }) {
620
- const node = (0, _detachedNode.detachedProps)(parent, {
609
+ function DeclareExportAllDeclaration(props) {
610
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
621
611
  type: 'DeclareExportAllDeclaration',
622
- ...props
612
+ // $FlowFixMe[incompatible-call],
613
+ source: (0, _detachedNode.asDetachedNode)(props.source)
623
614
  });
624
615
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
625
616
  return node;
626
617
  }
627
618
 
628
- function DeclareExportDeclaration({
629
- parent,
630
- ...props
631
- }) {
632
- const node = (0, _detachedNode.detachedProps)(parent, {
633
- type: 'DeclareExportDeclaration',
634
- ...props
635
- });
636
- (0, _detachedNode.setParentPointersInDirectChildren)(node);
637
- return node;
638
- }
639
-
640
- function DeclareFunction({
641
- parent,
642
- ...props
643
- }) {
644
- const node = (0, _detachedNode.detachedProps)(parent, {
645
- type: 'DeclareFunction',
646
- ...props
647
- });
648
- (0, _detachedNode.setParentPointersInDirectChildren)(node);
649
- return node;
650
- }
651
-
652
- function DeclareInterface({
653
- parent,
654
- ...props
655
- }) {
656
- const node = (0, _detachedNode.detachedProps)(parent, {
619
+ function DeclareInterface(props) {
620
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
657
621
  type: 'DeclareInterface',
658
- ...props
622
+ // $FlowFixMe[incompatible-call],
623
+ id: (0, _detachedNode.asDetachedNode)(props.id),
624
+ // $FlowFixMe[incompatible-call],
625
+ typeParameters: (0, _detachedNode.asDetachedNode)(props.typeParameters),
626
+ // $FlowFixMe[incompatible-call],
627
+ extends: props.extends.map(n => (0, _detachedNode.asDetachedNode)(n)),
628
+ // $FlowFixMe[incompatible-call],
629
+ body: (0, _detachedNode.asDetachedNode)(props.body)
659
630
  });
660
631
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
661
632
  return node;
662
633
  }
663
634
 
664
- function DeclareModule({
665
- parent,
666
- ...props
667
- }) {
668
- const node = (0, _detachedNode.detachedProps)(parent, {
635
+ function DeclareModule(props) {
636
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
669
637
  type: 'DeclareModule',
670
- ...props
638
+ // $FlowFixMe[incompatible-call],
639
+ id: (0, _detachedNode.asDetachedNode)(props.id),
640
+ // $FlowFixMe[incompatible-call],
641
+ body: (0, _detachedNode.asDetachedNode)(props.body),
642
+ kind: props.kind
671
643
  });
672
644
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
673
645
  return node;
674
646
  }
675
647
 
676
- function DeclareModuleExports({
677
- parent,
678
- ...props
679
- }) {
680
- const node = (0, _detachedNode.detachedProps)(parent, {
648
+ function DeclareModuleExports(props) {
649
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
681
650
  type: 'DeclareModuleExports',
682
- ...props
651
+ // $FlowFixMe[incompatible-call],
652
+ typeAnnotation: (0, _detachedNode.asDetachedNode)(props.typeAnnotation)
683
653
  });
684
654
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
685
655
  return node;
686
656
  }
687
657
 
688
- function DeclareOpaqueType({
689
- parent,
690
- ...props
691
- }) {
692
- const node = (0, _detachedNode.detachedProps)(parent, {
658
+ function DeclareOpaqueType(props) {
659
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
693
660
  type: 'DeclareOpaqueType',
694
- ...props
661
+ // $FlowFixMe[incompatible-call],
662
+ id: (0, _detachedNode.asDetachedNode)(props.id),
663
+ // $FlowFixMe[incompatible-call],
664
+ typeParameters: (0, _detachedNode.asDetachedNode)(props.typeParameters),
665
+ // $FlowFixMe[incompatible-call],
666
+ impltype: (0, _detachedNode.asDetachedNode)(props.impltype),
667
+ // $FlowFixMe[incompatible-call],
668
+ supertype: (0, _detachedNode.asDetachedNode)(props.supertype)
695
669
  });
696
670
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
697
671
  return node;
698
672
  }
699
673
 
700
- function DeclareTypeAlias({
701
- parent,
702
- ...props
703
- }) {
704
- const node = (0, _detachedNode.detachedProps)(parent, {
674
+ function DeclareTypeAlias(props) {
675
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
705
676
  type: 'DeclareTypeAlias',
706
- ...props
677
+ // $FlowFixMe[incompatible-call],
678
+ id: (0, _detachedNode.asDetachedNode)(props.id),
679
+ // $FlowFixMe[incompatible-call],
680
+ typeParameters: (0, _detachedNode.asDetachedNode)(props.typeParameters),
681
+ // $FlowFixMe[incompatible-call],
682
+ right: (0, _detachedNode.asDetachedNode)(props.right)
707
683
  });
708
684
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
709
685
  return node;
710
686
  }
711
687
 
712
- function DeclareVariable({
713
- parent,
714
- ...props
715
- }) {
716
- const node = (0, _detachedNode.detachedProps)(parent, {
688
+ function DeclareVariable(props) {
689
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
717
690
  type: 'DeclareVariable',
718
- ...props
691
+ // $FlowFixMe[incompatible-call],
692
+ id: (0, _detachedNode.asDetachedNode)(props.id)
719
693
  });
720
694
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
721
695
  return node;
722
696
  }
723
697
 
724
- function DoWhileStatement({
725
- parent,
726
- ...props
727
- }) {
728
- const node = (0, _detachedNode.detachedProps)(parent, {
698
+ function DoWhileStatement(props) {
699
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
729
700
  type: 'DoWhileStatement',
730
- ...props
701
+ // $FlowFixMe[incompatible-call],
702
+ body: (0, _detachedNode.asDetachedNode)(props.body),
703
+ // $FlowFixMe[incompatible-call],
704
+ test: (0, _detachedNode.asDetachedNode)(props.test)
731
705
  });
732
706
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
733
707
  return node;
734
708
  }
735
709
 
736
- function EmptyStatement({
737
- parent
738
- } = {}) {
739
- return (0, _detachedNode.detachedProps)(parent, {
710
+ function EmptyStatement(props = { ...null
711
+ }) {
712
+ return (0, _detachedNode.detachedProps)(props.parent, {
740
713
  type: 'EmptyStatement'
741
714
  });
742
715
  }
743
716
 
744
- function EmptyTypeAnnotation({
745
- parent
746
- } = {}) {
747
- return (0, _detachedNode.detachedProps)(parent, {
717
+ function EmptyTypeAnnotation(props = { ...null
718
+ }) {
719
+ return (0, _detachedNode.detachedProps)(props.parent, {
748
720
  type: 'EmptyTypeAnnotation'
749
721
  });
750
722
  }
751
723
 
752
- function EnumBooleanBody({
753
- parent,
754
- ...props
755
- }) {
756
- const node = (0, _detachedNode.detachedProps)(parent, {
724
+ function EnumBooleanBody(props) {
725
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
757
726
  type: 'EnumBooleanBody',
758
- ...props
727
+ // $FlowFixMe[incompatible-call],
728
+ members: props.members.map(n => (0, _detachedNode.asDetachedNode)(n)),
729
+ explicitType: props.explicitType,
730
+ hasUnknownMembers: props.hasUnknownMembers
759
731
  });
760
732
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
761
733
  return node;
762
734
  }
763
735
 
764
- function EnumBooleanMember({
765
- parent,
766
- ...props
767
- }) {
768
- const node = (0, _detachedNode.detachedProps)(parent, {
736
+ function EnumBooleanMember(props) {
737
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
769
738
  type: 'EnumBooleanMember',
770
- ...props
739
+ // $FlowFixMe[incompatible-call],
740
+ id: (0, _detachedNode.asDetachedNode)(props.id),
741
+ // $FlowFixMe[incompatible-call],
742
+ init: (0, _detachedNode.asDetachedNode)(props.init)
771
743
  });
772
744
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
773
745
  return node;
774
746
  }
775
747
 
776
- function EnumDeclaration({
777
- parent,
778
- ...props
779
- }) {
780
- const node = (0, _detachedNode.detachedProps)(parent, {
748
+ function EnumDeclaration(props) {
749
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
781
750
  type: 'EnumDeclaration',
782
- ...props
751
+ // $FlowFixMe[incompatible-call],
752
+ id: (0, _detachedNode.asDetachedNode)(props.id),
753
+ // $FlowFixMe[incompatible-call],
754
+ body: (0, _detachedNode.asDetachedNode)(props.body)
783
755
  });
784
756
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
785
757
  return node;
786
758
  }
787
759
 
788
- function EnumDefaultedMember({
789
- parent,
790
- ...props
791
- }) {
792
- const node = (0, _detachedNode.detachedProps)(parent, {
760
+ function EnumDefaultedMember(props) {
761
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
793
762
  type: 'EnumDefaultedMember',
794
- ...props
763
+ // $FlowFixMe[incompatible-call],
764
+ id: (0, _detachedNode.asDetachedNode)(props.id)
795
765
  });
796
766
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
797
767
  return node;
798
768
  }
799
769
 
800
- function EnumNumberBody({
801
- parent,
802
- ...props
803
- }) {
804
- const node = (0, _detachedNode.detachedProps)(parent, {
770
+ function EnumNumberBody(props) {
771
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
805
772
  type: 'EnumNumberBody',
806
- ...props
773
+ // $FlowFixMe[incompatible-call],
774
+ members: props.members.map(n => (0, _detachedNode.asDetachedNode)(n)),
775
+ explicitType: props.explicitType,
776
+ hasUnknownMembers: props.hasUnknownMembers
807
777
  });
808
778
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
809
779
  return node;
810
780
  }
811
781
 
812
- function EnumNumberMember({
813
- parent,
814
- ...props
815
- }) {
816
- const node = (0, _detachedNode.detachedProps)(parent, {
782
+ function EnumNumberMember(props) {
783
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
817
784
  type: 'EnumNumberMember',
818
- ...props
785
+ // $FlowFixMe[incompatible-call],
786
+ id: (0, _detachedNode.asDetachedNode)(props.id),
787
+ // $FlowFixMe[incompatible-call],
788
+ init: (0, _detachedNode.asDetachedNode)(props.init)
819
789
  });
820
790
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
821
791
  return node;
822
792
  }
823
793
 
824
- function EnumStringBody({
825
- parent,
826
- ...props
827
- }) {
828
- const node = (0, _detachedNode.detachedProps)(parent, {
794
+ function EnumStringBody(props) {
795
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
829
796
  type: 'EnumStringBody',
830
- ...props
797
+ // $FlowFixMe[incompatible-call],
798
+ members: props.members.map(n => (0, _detachedNode.asDetachedNode)(n)),
799
+ explicitType: props.explicitType,
800
+ hasUnknownMembers: props.hasUnknownMembers
831
801
  });
832
802
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
833
803
  return node;
834
804
  }
835
805
 
836
- function EnumStringMember({
837
- parent,
838
- ...props
839
- }) {
840
- const node = (0, _detachedNode.detachedProps)(parent, {
806
+ function EnumStringMember(props) {
807
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
841
808
  type: 'EnumStringMember',
842
- ...props
809
+ // $FlowFixMe[incompatible-call],
810
+ id: (0, _detachedNode.asDetachedNode)(props.id),
811
+ // $FlowFixMe[incompatible-call],
812
+ init: (0, _detachedNode.asDetachedNode)(props.init)
843
813
  });
844
814
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
845
815
  return node;
846
816
  }
847
817
 
848
- function EnumSymbolBody({
849
- parent,
850
- ...props
851
- }) {
852
- const node = (0, _detachedNode.detachedProps)(parent, {
818
+ function EnumSymbolBody(props) {
819
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
853
820
  type: 'EnumSymbolBody',
854
- ...props
821
+ // $FlowFixMe[incompatible-call],
822
+ members: props.members.map(n => (0, _detachedNode.asDetachedNode)(n)),
823
+ hasUnknownMembers: props.hasUnknownMembers
855
824
  });
856
825
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
857
826
  return node;
858
827
  }
859
828
 
860
- function ExistsTypeAnnotation({
861
- parent
862
- } = {}) {
863
- return (0, _detachedNode.detachedProps)(parent, {
829
+ function ExistsTypeAnnotation(props = { ...null
830
+ }) {
831
+ return (0, _detachedNode.detachedProps)(props.parent, {
864
832
  type: 'ExistsTypeAnnotation'
865
833
  });
866
834
  }
867
835
 
868
- function ExportAllDeclaration({
869
- parent,
870
- ...props
871
- }) {
872
- const node = (0, _detachedNode.detachedProps)(parent, {
836
+ function ExportAllDeclaration(props) {
837
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
873
838
  type: 'ExportAllDeclaration',
874
- ...props
839
+ // $FlowFixMe[incompatible-call],
840
+ exported: (0, _detachedNode.asDetachedNode)(props.exported),
841
+ // $FlowFixMe[incompatible-call],
842
+ source: (0, _detachedNode.asDetachedNode)(props.source),
843
+ exportKind: props.exportKind
875
844
  });
876
845
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
877
846
  return node;
878
847
  }
879
848
 
880
- function ExportDefaultDeclaration({
881
- parent,
882
- ...props
883
- }) {
884
- const node = (0, _detachedNode.detachedProps)(parent, {
849
+ function ExportDefaultDeclaration(props) {
850
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
885
851
  type: 'ExportDefaultDeclaration',
886
- ...props
852
+ // $FlowFixMe[incompatible-call],
853
+ declaration: (0, _detachedNode.asDetachedNode)(props.declaration)
887
854
  });
888
855
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
889
856
  return node;
890
857
  }
891
858
 
892
- function ExportNamedDeclaration({
893
- parent,
894
- ...props
895
- }) {
896
- const node = (0, _detachedNode.detachedProps)(parent, {
897
- type: 'ExportNamedDeclaration',
898
- ...props
899
- });
900
- (0, _detachedNode.setParentPointersInDirectChildren)(node);
901
- return node;
902
- }
903
-
904
- function ExportSpecifier({
905
- parent,
906
- ...props
907
- }) {
908
- const node = (0, _detachedNode.detachedProps)(parent, {
859
+ function ExportSpecifier(props) {
860
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
909
861
  type: 'ExportSpecifier',
910
- ...props
862
+ // $FlowFixMe[incompatible-call],
863
+ exported: (0, _detachedNode.asDetachedNode)(props.exported),
864
+ // $FlowFixMe[incompatible-call],
865
+ local: (0, _detachedNode.asDetachedNode)(props.local)
911
866
  });
912
867
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
913
868
  return node;
914
869
  }
915
870
 
916
- function ExpressionStatement({
917
- parent,
918
- ...props
919
- }) {
920
- const node = (0, _detachedNode.detachedProps)(parent, {
871
+ function ExpressionStatement(props) {
872
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
921
873
  type: 'ExpressionStatement',
922
- ...props
874
+ // $FlowFixMe[incompatible-call],
875
+ expression: (0, _detachedNode.asDetachedNode)(props.expression),
876
+ directive: props.directive
923
877
  });
924
878
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
925
879
  return node;
926
880
  }
927
881
 
928
- function ForInStatement({
929
- parent,
930
- ...props
931
- }) {
932
- const node = (0, _detachedNode.detachedProps)(parent, {
882
+ function ForInStatement(props) {
883
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
933
884
  type: 'ForInStatement',
934
- ...props
885
+ // $FlowFixMe[incompatible-call],
886
+ left: (0, _detachedNode.asDetachedNode)(props.left),
887
+ // $FlowFixMe[incompatible-call],
888
+ right: (0, _detachedNode.asDetachedNode)(props.right),
889
+ // $FlowFixMe[incompatible-call],
890
+ body: (0, _detachedNode.asDetachedNode)(props.body)
935
891
  });
936
892
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
937
893
  return node;
938
894
  }
939
895
 
940
- function ForOfStatement({
941
- parent,
942
- ...props
943
- }) {
944
- const node = (0, _detachedNode.detachedProps)(parent, {
896
+ function ForOfStatement(props) {
897
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
945
898
  type: 'ForOfStatement',
946
- ...props
899
+ // $FlowFixMe[incompatible-call],
900
+ left: (0, _detachedNode.asDetachedNode)(props.left),
901
+ // $FlowFixMe[incompatible-call],
902
+ right: (0, _detachedNode.asDetachedNode)(props.right),
903
+ // $FlowFixMe[incompatible-call],
904
+ body: (0, _detachedNode.asDetachedNode)(props.body),
905
+ await: props.await
947
906
  });
948
907
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
949
908
  return node;
950
909
  }
951
910
 
952
- function ForStatement({
953
- parent,
954
- ...props
955
- }) {
956
- const node = (0, _detachedNode.detachedProps)(parent, {
911
+ function ForStatement(props) {
912
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
957
913
  type: 'ForStatement',
958
- ...props
914
+ // $FlowFixMe[incompatible-call],
915
+ init: (0, _detachedNode.asDetachedNode)(props.init),
916
+ // $FlowFixMe[incompatible-call],
917
+ test: (0, _detachedNode.asDetachedNode)(props.test),
918
+ // $FlowFixMe[incompatible-call],
919
+ update: (0, _detachedNode.asDetachedNode)(props.update),
920
+ // $FlowFixMe[incompatible-call],
921
+ body: (0, _detachedNode.asDetachedNode)(props.body)
959
922
  });
960
923
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
961
924
  return node;
962
925
  }
963
926
 
964
- function FunctionDeclaration({
965
- parent,
966
- ...props
967
- }) {
968
- const node = (0, _detachedNode.detachedProps)(parent, {
927
+ function FunctionDeclaration(props) {
928
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
969
929
  type: 'FunctionDeclaration',
970
- ...props
930
+ // $FlowFixMe[incompatible-call],
931
+ id: (0, _detachedNode.asDetachedNode)(props.id),
932
+ // $FlowFixMe[incompatible-call],
933
+ params: props.params.map(n => (0, _detachedNode.asDetachedNode)(n)),
934
+ // $FlowFixMe[incompatible-call],
935
+ body: (0, _detachedNode.asDetachedNode)(props.body),
936
+ // $FlowFixMe[incompatible-call],
937
+ typeParameters: (0, _detachedNode.asDetachedNode)(props.typeParameters),
938
+ // $FlowFixMe[incompatible-call],
939
+ returnType: (0, _detachedNode.asDetachedNode)(props.returnType),
940
+ // $FlowFixMe[incompatible-call],
941
+ predicate: (0, _detachedNode.asDetachedNode)(props.predicate),
942
+ generator: props.generator,
943
+ async: props.async
971
944
  });
972
945
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
973
946
  return node;
974
947
  }
975
948
 
976
- function FunctionExpression({
977
- parent,
978
- ...props
979
- }) {
980
- const node = (0, _detachedNode.detachedProps)(parent, {
949
+ function FunctionExpression(props) {
950
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
981
951
  type: 'FunctionExpression',
982
- ...props
952
+ // $FlowFixMe[incompatible-call],
953
+ id: (0, _detachedNode.asDetachedNode)(props.id),
954
+ // $FlowFixMe[incompatible-call],
955
+ params: props.params.map(n => (0, _detachedNode.asDetachedNode)(n)),
956
+ // $FlowFixMe[incompatible-call],
957
+ body: (0, _detachedNode.asDetachedNode)(props.body),
958
+ // $FlowFixMe[incompatible-call],
959
+ typeParameters: (0, _detachedNode.asDetachedNode)(props.typeParameters),
960
+ // $FlowFixMe[incompatible-call],
961
+ returnType: (0, _detachedNode.asDetachedNode)(props.returnType),
962
+ // $FlowFixMe[incompatible-call],
963
+ predicate: (0, _detachedNode.asDetachedNode)(props.predicate),
964
+ generator: props.generator,
965
+ async: props.async
983
966
  });
984
967
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
985
968
  return node;
986
969
  }
987
970
 
988
- function FunctionTypeAnnotation({
989
- parent,
990
- ...props
991
- }) {
992
- const node = (0, _detachedNode.detachedProps)(parent, {
971
+ function FunctionTypeAnnotation(props) {
972
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
993
973
  type: 'FunctionTypeAnnotation',
994
- ...props
974
+ // $FlowFixMe[incompatible-call],
975
+ params: props.params.map(n => (0, _detachedNode.asDetachedNode)(n)),
976
+ // $FlowFixMe[incompatible-call],
977
+ this: (0, _detachedNode.asDetachedNode)(props.this),
978
+ // $FlowFixMe[incompatible-call],
979
+ returnType: (0, _detachedNode.asDetachedNode)(props.returnType),
980
+ // $FlowFixMe[incompatible-call],
981
+ rest: (0, _detachedNode.asDetachedNode)(props.rest),
982
+ // $FlowFixMe[incompatible-call],
983
+ typeParameters: (0, _detachedNode.asDetachedNode)(props.typeParameters)
995
984
  });
996
985
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
997
986
  return node;
998
987
  }
999
988
 
1000
- function FunctionTypeParam({
1001
- parent,
1002
- ...props
1003
- }) {
1004
- const node = (0, _detachedNode.detachedProps)(parent, {
989
+ function FunctionTypeParam(props) {
990
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1005
991
  type: 'FunctionTypeParam',
1006
- ...props
992
+ // $FlowFixMe[incompatible-call],
993
+ name: (0, _detachedNode.asDetachedNode)(props.name),
994
+ // $FlowFixMe[incompatible-call],
995
+ typeAnnotation: (0, _detachedNode.asDetachedNode)(props.typeAnnotation),
996
+ optional: props.optional
1007
997
  });
1008
998
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1009
999
  return node;
1010
1000
  }
1011
1001
 
1012
- function GenericTypeAnnotation({
1013
- parent,
1014
- ...props
1015
- }) {
1016
- const node = (0, _detachedNode.detachedProps)(parent, {
1002
+ function GenericTypeAnnotation(props) {
1003
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1017
1004
  type: 'GenericTypeAnnotation',
1018
- ...props
1005
+ // $FlowFixMe[incompatible-call],
1006
+ id: (0, _detachedNode.asDetachedNode)(props.id),
1007
+ // $FlowFixMe[incompatible-call],
1008
+ typeParameters: (0, _detachedNode.asDetachedNode)(props.typeParameters)
1019
1009
  });
1020
1010
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1021
1011
  return node;
1022
1012
  }
1023
1013
 
1024
- function IfStatement({
1025
- parent,
1026
- ...props
1027
- }) {
1028
- const node = (0, _detachedNode.detachedProps)(parent, {
1014
+ function IfStatement(props) {
1015
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1029
1016
  type: 'IfStatement',
1030
- ...props
1017
+ // $FlowFixMe[incompatible-call],
1018
+ test: (0, _detachedNode.asDetachedNode)(props.test),
1019
+ // $FlowFixMe[incompatible-call],
1020
+ consequent: (0, _detachedNode.asDetachedNode)(props.consequent),
1021
+ // $FlowFixMe[incompatible-call],
1022
+ alternate: (0, _detachedNode.asDetachedNode)(props.alternate)
1031
1023
  });
1032
1024
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1033
1025
  return node;
1034
1026
  }
1035
1027
 
1036
- function ImportAttribute({
1037
- parent,
1038
- ...props
1039
- }) {
1040
- const node = (0, _detachedNode.detachedProps)(parent, {
1028
+ function ImportAttribute(props) {
1029
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1041
1030
  type: 'ImportAttribute',
1042
- ...props
1031
+ // $FlowFixMe[incompatible-call],
1032
+ key: (0, _detachedNode.asDetachedNode)(props.key),
1033
+ // $FlowFixMe[incompatible-call],
1034
+ value: (0, _detachedNode.asDetachedNode)(props.value)
1043
1035
  });
1044
1036
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1045
1037
  return node;
1046
1038
  }
1047
1039
 
1048
- function ImportDeclaration({
1049
- parent,
1050
- ...props
1051
- }) {
1052
- const node = (0, _detachedNode.detachedProps)(parent, {
1040
+ function ImportDeclaration(props) {
1041
+ var _props$assertions;
1042
+
1043
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1053
1044
  type: 'ImportDeclaration',
1054
- ...props
1045
+ // $FlowFixMe[incompatible-call],
1046
+ specifiers: props.specifiers.map(n => (0, _detachedNode.asDetachedNode)(n)),
1047
+ // $FlowFixMe[incompatible-call],
1048
+ source: (0, _detachedNode.asDetachedNode)(props.source),
1049
+ // $FlowFixMe[incompatible-call],
1050
+ assertions: (_props$assertions = props.assertions) == null ? void 0 : _props$assertions.map(n => (0, _detachedNode.asDetachedNode)(n)),
1051
+ importKind: props.importKind
1055
1052
  });
1056
1053
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1057
1054
  return node;
1058
1055
  }
1059
1056
 
1060
- function ImportDefaultSpecifier({
1061
- parent,
1062
- ...props
1063
- }) {
1064
- const node = (0, _detachedNode.detachedProps)(parent, {
1057
+ function ImportDefaultSpecifier(props) {
1058
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1065
1059
  type: 'ImportDefaultSpecifier',
1066
- ...props
1060
+ // $FlowFixMe[incompatible-call],
1061
+ local: (0, _detachedNode.asDetachedNode)(props.local)
1067
1062
  });
1068
1063
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1069
1064
  return node;
1070
1065
  }
1071
1066
 
1072
- function ImportExpression({
1073
- parent,
1074
- ...props
1075
- }) {
1076
- const node = (0, _detachedNode.detachedProps)(parent, {
1067
+ function ImportExpression(props) {
1068
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1077
1069
  type: 'ImportExpression',
1078
- ...props
1070
+ // $FlowFixMe[incompatible-call],
1071
+ source: (0, _detachedNode.asDetachedNode)(props.source),
1072
+ // $FlowFixMe[incompatible-call],
1073
+ attributes: (0, _detachedNode.asDetachedNode)(props.attributes)
1079
1074
  });
1080
1075
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1081
1076
  return node;
1082
1077
  }
1083
1078
 
1084
- function ImportNamespaceSpecifier({
1085
- parent,
1086
- ...props
1087
- }) {
1088
- const node = (0, _detachedNode.detachedProps)(parent, {
1079
+ function ImportNamespaceSpecifier(props) {
1080
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1089
1081
  type: 'ImportNamespaceSpecifier',
1090
- ...props
1082
+ // $FlowFixMe[incompatible-call],
1083
+ local: (0, _detachedNode.asDetachedNode)(props.local)
1091
1084
  });
1092
1085
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1093
1086
  return node;
1094
1087
  }
1095
1088
 
1096
- function ImportSpecifier({
1097
- parent,
1098
- ...props
1099
- }) {
1100
- const node = (0, _detachedNode.detachedProps)(parent, {
1089
+ function ImportSpecifier(props) {
1090
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1101
1091
  type: 'ImportSpecifier',
1102
- ...props
1092
+ // $FlowFixMe[incompatible-call],
1093
+ imported: (0, _detachedNode.asDetachedNode)(props.imported),
1094
+ // $FlowFixMe[incompatible-call],
1095
+ local: (0, _detachedNode.asDetachedNode)(props.local),
1096
+ importKind: props.importKind
1103
1097
  });
1104
1098
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1105
1099
  return node;
1106
1100
  }
1107
1101
 
1108
- function IndexedAccessType({
1109
- parent,
1110
- ...props
1111
- }) {
1112
- const node = (0, _detachedNode.detachedProps)(parent, {
1102
+ function IndexedAccessType(props) {
1103
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1113
1104
  type: 'IndexedAccessType',
1114
- ...props
1105
+ // $FlowFixMe[incompatible-call],
1106
+ objectType: (0, _detachedNode.asDetachedNode)(props.objectType),
1107
+ // $FlowFixMe[incompatible-call],
1108
+ indexType: (0, _detachedNode.asDetachedNode)(props.indexType)
1115
1109
  });
1116
1110
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1117
1111
  return node;
1118
1112
  }
1119
1113
 
1120
- function InferredPredicate({
1121
- parent
1122
- } = {}) {
1123
- return (0, _detachedNode.detachedProps)(parent, {
1114
+ function InferredPredicate(props = { ...null
1115
+ }) {
1116
+ return (0, _detachedNode.detachedProps)(props.parent, {
1124
1117
  type: 'InferredPredicate'
1125
1118
  });
1126
1119
  }
1127
1120
 
1128
- function InterfaceDeclaration({
1129
- parent,
1130
- ...props
1131
- }) {
1132
- const node = (0, _detachedNode.detachedProps)(parent, {
1121
+ function InterfaceDeclaration(props) {
1122
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1133
1123
  type: 'InterfaceDeclaration',
1134
- ...props
1124
+ // $FlowFixMe[incompatible-call],
1125
+ id: (0, _detachedNode.asDetachedNode)(props.id),
1126
+ // $FlowFixMe[incompatible-call],
1127
+ typeParameters: (0, _detachedNode.asDetachedNode)(props.typeParameters),
1128
+ // $FlowFixMe[incompatible-call],
1129
+ extends: props.extends.map(n => (0, _detachedNode.asDetachedNode)(n)),
1130
+ // $FlowFixMe[incompatible-call],
1131
+ body: (0, _detachedNode.asDetachedNode)(props.body)
1135
1132
  });
1136
1133
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1137
1134
  return node;
1138
1135
  }
1139
1136
 
1140
- function InterfaceExtends({
1141
- parent,
1142
- ...props
1143
- }) {
1144
- const node = (0, _detachedNode.detachedProps)(parent, {
1137
+ function InterfaceExtends(props) {
1138
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1145
1139
  type: 'InterfaceExtends',
1146
- ...props
1140
+ // $FlowFixMe[incompatible-call],
1141
+ id: (0, _detachedNode.asDetachedNode)(props.id),
1142
+ // $FlowFixMe[incompatible-call],
1143
+ typeParameters: (0, _detachedNode.asDetachedNode)(props.typeParameters)
1147
1144
  });
1148
1145
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1149
1146
  return node;
1150
1147
  }
1151
1148
 
1152
- function InterfaceTypeAnnotation({
1153
- parent,
1154
- ...props
1155
- }) {
1156
- const node = (0, _detachedNode.detachedProps)(parent, {
1149
+ function InterfaceTypeAnnotation(props) {
1150
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1157
1151
  type: 'InterfaceTypeAnnotation',
1158
- ...props
1152
+ // $FlowFixMe[incompatible-call],
1153
+ extends: props.extends.map(n => (0, _detachedNode.asDetachedNode)(n)),
1154
+ // $FlowFixMe[incompatible-call],
1155
+ body: (0, _detachedNode.asDetachedNode)(props.body)
1159
1156
  });
1160
1157
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1161
1158
  return node;
1162
1159
  }
1163
1160
 
1164
- function IntersectionTypeAnnotation({
1165
- parent,
1166
- ...props
1167
- }) {
1168
- const node = (0, _detachedNode.detachedProps)(parent, {
1161
+ function IntersectionTypeAnnotation(props) {
1162
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1169
1163
  type: 'IntersectionTypeAnnotation',
1170
- ...props
1164
+ // $FlowFixMe[incompatible-call],
1165
+ types: props.types.map(n => (0, _detachedNode.asDetachedNode)(n))
1171
1166
  });
1172
1167
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1173
1168
  return node;
1174
1169
  }
1175
1170
 
1176
- function JSXAttribute({
1177
- parent,
1178
- ...props
1179
- }) {
1180
- const node = (0, _detachedNode.detachedProps)(parent, {
1171
+ function JSXAttribute(props) {
1172
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1181
1173
  type: 'JSXAttribute',
1182
- ...props
1174
+ // $FlowFixMe[incompatible-call],
1175
+ name: (0, _detachedNode.asDetachedNode)(props.name),
1176
+ // $FlowFixMe[incompatible-call],
1177
+ value: (0, _detachedNode.asDetachedNode)(props.value)
1183
1178
  });
1184
1179
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1185
1180
  return node;
1186
1181
  }
1187
1182
 
1188
- function JSXClosingElement({
1189
- parent,
1190
- ...props
1191
- }) {
1192
- const node = (0, _detachedNode.detachedProps)(parent, {
1183
+ function JSXClosingElement(props) {
1184
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1193
1185
  type: 'JSXClosingElement',
1194
- ...props
1186
+ // $FlowFixMe[incompatible-call],
1187
+ name: (0, _detachedNode.asDetachedNode)(props.name)
1195
1188
  });
1196
1189
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1197
1190
  return node;
1198
1191
  }
1199
1192
 
1200
- function JSXClosingFragment({
1201
- parent
1202
- } = {}) {
1203
- return (0, _detachedNode.detachedProps)(parent, {
1193
+ function JSXClosingFragment(props = { ...null
1194
+ }) {
1195
+ return (0, _detachedNode.detachedProps)(props.parent, {
1204
1196
  type: 'JSXClosingFragment'
1205
1197
  });
1206
1198
  }
1207
1199
 
1208
- function JSXElement({
1209
- parent,
1210
- ...props
1211
- }) {
1212
- const node = (0, _detachedNode.detachedProps)(parent, {
1200
+ function JSXElement(props) {
1201
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1213
1202
  type: 'JSXElement',
1214
- ...props
1203
+ // $FlowFixMe[incompatible-call],
1204
+ openingElement: (0, _detachedNode.asDetachedNode)(props.openingElement),
1205
+ // $FlowFixMe[incompatible-call],
1206
+ children: props.children.map(n => (0, _detachedNode.asDetachedNode)(n)),
1207
+ // $FlowFixMe[incompatible-call],
1208
+ closingElement: (0, _detachedNode.asDetachedNode)(props.closingElement)
1215
1209
  });
1216
1210
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1217
1211
  return node;
1218
1212
  }
1219
1213
 
1220
- function JSXEmptyExpression({
1221
- parent
1222
- } = {}) {
1223
- return (0, _detachedNode.detachedProps)(parent, {
1214
+ function JSXEmptyExpression(props = { ...null
1215
+ }) {
1216
+ return (0, _detachedNode.detachedProps)(props.parent, {
1224
1217
  type: 'JSXEmptyExpression'
1225
1218
  });
1226
1219
  }
1227
1220
 
1228
- function JSXExpressionContainer({
1229
- parent,
1230
- ...props
1231
- }) {
1232
- const node = (0, _detachedNode.detachedProps)(parent, {
1221
+ function JSXExpressionContainer(props) {
1222
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1233
1223
  type: 'JSXExpressionContainer',
1234
- ...props
1224
+ // $FlowFixMe[incompatible-call],
1225
+ expression: (0, _detachedNode.asDetachedNode)(props.expression)
1235
1226
  });
1236
1227
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1237
1228
  return node;
1238
1229
  }
1239
1230
 
1240
- function JSXFragment({
1241
- parent,
1242
- ...props
1243
- }) {
1244
- const node = (0, _detachedNode.detachedProps)(parent, {
1231
+ function JSXFragment(props) {
1232
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1245
1233
  type: 'JSXFragment',
1246
- ...props
1234
+ // $FlowFixMe[incompatible-call],
1235
+ openingFragment: (0, _detachedNode.asDetachedNode)(props.openingFragment),
1236
+ // $FlowFixMe[incompatible-call],
1237
+ children: props.children.map(n => (0, _detachedNode.asDetachedNode)(n)),
1238
+ // $FlowFixMe[incompatible-call],
1239
+ closingFragment: (0, _detachedNode.asDetachedNode)(props.closingFragment)
1247
1240
  });
1248
1241
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1249
1242
  return node;
1250
1243
  }
1251
1244
 
1252
- function JSXIdentifier({
1253
- parent,
1254
- ...props
1255
- }) {
1256
- const node = (0, _detachedNode.detachedProps)(parent, {
1245
+ function JSXIdentifier(props) {
1246
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1257
1247
  type: 'JSXIdentifier',
1258
- ...props
1248
+ name: props.name
1259
1249
  });
1260
1250
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1261
1251
  return node;
1262
1252
  }
1263
1253
 
1264
- function JSXMemberExpression({
1265
- parent,
1266
- ...props
1267
- }) {
1268
- const node = (0, _detachedNode.detachedProps)(parent, {
1254
+ function JSXMemberExpression(props) {
1255
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1269
1256
  type: 'JSXMemberExpression',
1270
- ...props
1257
+ // $FlowFixMe[incompatible-call],
1258
+ object: (0, _detachedNode.asDetachedNode)(props.object),
1259
+ // $FlowFixMe[incompatible-call],
1260
+ property: (0, _detachedNode.asDetachedNode)(props.property)
1271
1261
  });
1272
1262
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1273
1263
  return node;
1274
1264
  }
1275
1265
 
1276
- function JSXNamespacedName({
1277
- parent,
1278
- ...props
1279
- }) {
1280
- const node = (0, _detachedNode.detachedProps)(parent, {
1266
+ function JSXNamespacedName(props) {
1267
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1281
1268
  type: 'JSXNamespacedName',
1282
- ...props
1269
+ // $FlowFixMe[incompatible-call],
1270
+ namespace: (0, _detachedNode.asDetachedNode)(props.namespace),
1271
+ // $FlowFixMe[incompatible-call],
1272
+ name: (0, _detachedNode.asDetachedNode)(props.name)
1283
1273
  });
1284
1274
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1285
1275
  return node;
1286
1276
  }
1287
1277
 
1288
- function JSXOpeningElement({
1289
- parent,
1290
- ...props
1291
- }) {
1292
- const node = (0, _detachedNode.detachedProps)(parent, {
1278
+ function JSXOpeningElement(props) {
1279
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1293
1280
  type: 'JSXOpeningElement',
1294
- ...props
1281
+ // $FlowFixMe[incompatible-call],
1282
+ name: (0, _detachedNode.asDetachedNode)(props.name),
1283
+ // $FlowFixMe[incompatible-call],
1284
+ attributes: props.attributes.map(n => (0, _detachedNode.asDetachedNode)(n)),
1285
+ selfClosing: props.selfClosing
1295
1286
  });
1296
1287
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1297
1288
  return node;
1298
1289
  }
1299
1290
 
1300
- function JSXOpeningFragment({
1301
- parent
1302
- } = {}) {
1303
- return (0, _detachedNode.detachedProps)(parent, {
1291
+ function JSXOpeningFragment(props = { ...null
1292
+ }) {
1293
+ return (0, _detachedNode.detachedProps)(props.parent, {
1304
1294
  type: 'JSXOpeningFragment'
1305
1295
  });
1306
1296
  }
1307
1297
 
1308
- function JSXSpreadAttribute({
1309
- parent,
1310
- ...props
1311
- }) {
1312
- const node = (0, _detachedNode.detachedProps)(parent, {
1298
+ function JSXSpreadAttribute(props) {
1299
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1313
1300
  type: 'JSXSpreadAttribute',
1314
- ...props
1301
+ // $FlowFixMe[incompatible-call],
1302
+ argument: (0, _detachedNode.asDetachedNode)(props.argument)
1315
1303
  });
1316
1304
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1317
1305
  return node;
1318
1306
  }
1319
1307
 
1320
- function JSXSpreadChild({
1321
- parent,
1322
- ...props
1323
- }) {
1324
- const node = (0, _detachedNode.detachedProps)(parent, {
1308
+ function JSXSpreadChild(props) {
1309
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1325
1310
  type: 'JSXSpreadChild',
1326
- ...props
1311
+ // $FlowFixMe[incompatible-call],
1312
+ expression: (0, _detachedNode.asDetachedNode)(props.expression)
1327
1313
  });
1328
1314
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1329
1315
  return node;
1330
1316
  }
1331
1317
 
1332
- function JSXText({
1333
- parent,
1334
- ...props
1335
- }) {
1336
- const node = (0, _detachedNode.detachedProps)(parent, {
1318
+ function JSXText(props) {
1319
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1337
1320
  type: 'JSXText',
1338
- ...props
1321
+ value: props.value,
1322
+ raw: props.raw
1339
1323
  });
1340
1324
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1341
1325
  return node;
1342
1326
  }
1343
1327
 
1344
- function LabeledStatement({
1345
- parent,
1346
- ...props
1347
- }) {
1348
- const node = (0, _detachedNode.detachedProps)(parent, {
1328
+ function LabeledStatement(props) {
1329
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1349
1330
  type: 'LabeledStatement',
1350
- ...props
1331
+ // $FlowFixMe[incompatible-call],
1332
+ label: (0, _detachedNode.asDetachedNode)(props.label),
1333
+ // $FlowFixMe[incompatible-call],
1334
+ body: (0, _detachedNode.asDetachedNode)(props.body)
1351
1335
  });
1352
1336
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1353
1337
  return node;
1354
1338
  }
1355
1339
 
1356
- function LogicalExpression({
1357
- parent,
1358
- ...props
1359
- }) {
1360
- const node = (0, _detachedNode.detachedProps)(parent, {
1340
+ function LogicalExpression(props) {
1341
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1361
1342
  type: 'LogicalExpression',
1362
- ...props
1343
+ // $FlowFixMe[incompatible-call],
1344
+ left: (0, _detachedNode.asDetachedNode)(props.left),
1345
+ // $FlowFixMe[incompatible-call],
1346
+ right: (0, _detachedNode.asDetachedNode)(props.right),
1347
+ operator: props.operator
1363
1348
  });
1364
1349
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1365
1350
  return node;
1366
1351
  }
1367
1352
 
1368
- function MemberExpression({
1369
- parent,
1370
- ...props
1371
- }) {
1372
- const node = (0, _detachedNode.detachedProps)(parent, {
1353
+ function MemberExpression(props) {
1354
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1373
1355
  type: 'MemberExpression',
1374
- ...props
1356
+ // $FlowFixMe[incompatible-call],
1357
+ object: (0, _detachedNode.asDetachedNode)(props.object),
1358
+ // $FlowFixMe[incompatible-call],
1359
+ property: (0, _detachedNode.asDetachedNode)(props.property),
1360
+ computed: props.computed
1375
1361
  });
1376
1362
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1377
1363
  return node;
1378
1364
  }
1379
1365
 
1380
- function MetaProperty({
1381
- parent,
1382
- ...props
1383
- }) {
1384
- const node = (0, _detachedNode.detachedProps)(parent, {
1366
+ function MetaProperty(props) {
1367
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1385
1368
  type: 'MetaProperty',
1386
- ...props
1369
+ // $FlowFixMe[incompatible-call],
1370
+ meta: (0, _detachedNode.asDetachedNode)(props.meta),
1371
+ // $FlowFixMe[incompatible-call],
1372
+ property: (0, _detachedNode.asDetachedNode)(props.property)
1387
1373
  });
1388
1374
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1389
1375
  return node;
1390
1376
  }
1391
1377
 
1392
- function MethodDefinition({
1393
- parent,
1394
- ...props
1395
- }) {
1396
- const node = (0, _detachedNode.detachedProps)(parent, {
1378
+ function MethodDefinition(props) {
1379
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1397
1380
  type: 'MethodDefinition',
1398
- ...props
1381
+ // $FlowFixMe[incompatible-call],
1382
+ key: (0, _detachedNode.asDetachedNode)(props.key),
1383
+ // $FlowFixMe[incompatible-call],
1384
+ value: (0, _detachedNode.asDetachedNode)(props.value),
1385
+ kind: props.kind,
1386
+ computed: props.computed,
1387
+ static: props.static
1399
1388
  });
1400
1389
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1401
1390
  return node;
1402
1391
  }
1403
1392
 
1404
- function MixedTypeAnnotation({
1405
- parent
1406
- } = {}) {
1407
- return (0, _detachedNode.detachedProps)(parent, {
1393
+ function MixedTypeAnnotation(props = { ...null
1394
+ }) {
1395
+ return (0, _detachedNode.detachedProps)(props.parent, {
1408
1396
  type: 'MixedTypeAnnotation'
1409
1397
  });
1410
1398
  }
1411
1399
 
1412
- function NewExpression({
1413
- parent,
1414
- ...props
1415
- }) {
1416
- const node = (0, _detachedNode.detachedProps)(parent, {
1400
+ function NewExpression(props) {
1401
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1417
1402
  type: 'NewExpression',
1418
- ...props
1403
+ // $FlowFixMe[incompatible-call],
1404
+ callee: (0, _detachedNode.asDetachedNode)(props.callee),
1405
+ // $FlowFixMe[incompatible-call],
1406
+ typeArguments: (0, _detachedNode.asDetachedNode)(props.typeArguments),
1407
+ // $FlowFixMe[incompatible-call],
1408
+ arguments: props.arguments.map(n => (0, _detachedNode.asDetachedNode)(n))
1419
1409
  });
1420
1410
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1421
1411
  return node;
1422
1412
  }
1423
1413
 
1424
- function NullableTypeAnnotation({
1425
- parent,
1426
- ...props
1427
- }) {
1428
- const node = (0, _detachedNode.detachedProps)(parent, {
1414
+ function NullableTypeAnnotation(props) {
1415
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1429
1416
  type: 'NullableTypeAnnotation',
1430
- ...props
1417
+ // $FlowFixMe[incompatible-call],
1418
+ typeAnnotation: (0, _detachedNode.asDetachedNode)(props.typeAnnotation)
1431
1419
  });
1432
1420
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1433
1421
  return node;
1434
1422
  }
1435
1423
 
1436
- function NullLiteralTypeAnnotation({
1437
- parent
1438
- } = {}) {
1439
- return (0, _detachedNode.detachedProps)(parent, {
1424
+ function NullLiteralTypeAnnotation(props = { ...null
1425
+ }) {
1426
+ return (0, _detachedNode.detachedProps)(props.parent, {
1440
1427
  type: 'NullLiteralTypeAnnotation'
1441
1428
  });
1442
1429
  }
1443
1430
 
1444
- function NumberLiteralTypeAnnotation({
1445
- parent,
1446
- ...props
1447
- }) {
1448
- const node = (0, _detachedNode.detachedProps)(parent, {
1431
+ function NumberLiteralTypeAnnotation(props) {
1432
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1449
1433
  type: 'NumberLiteralTypeAnnotation',
1450
- ...props
1434
+ value: props.value,
1435
+ raw: props.raw
1451
1436
  });
1452
1437
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1453
1438
  return node;
1454
1439
  }
1455
1440
 
1456
- function NumberTypeAnnotation({
1457
- parent
1458
- } = {}) {
1459
- return (0, _detachedNode.detachedProps)(parent, {
1441
+ function NumberTypeAnnotation(props = { ...null
1442
+ }) {
1443
+ return (0, _detachedNode.detachedProps)(props.parent, {
1460
1444
  type: 'NumberTypeAnnotation'
1461
1445
  });
1462
1446
  }
1463
1447
 
1464
- function ObjectExpression({
1465
- parent,
1466
- ...props
1467
- }) {
1468
- const node = (0, _detachedNode.detachedProps)(parent, {
1448
+ function ObjectExpression(props) {
1449
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1469
1450
  type: 'ObjectExpression',
1470
- ...props
1451
+ // $FlowFixMe[incompatible-call],
1452
+ properties: props.properties.map(n => (0, _detachedNode.asDetachedNode)(n))
1471
1453
  });
1472
1454
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1473
1455
  return node;
1474
1456
  }
1475
1457
 
1476
- function ObjectPattern({
1477
- parent,
1478
- ...props
1479
- }) {
1480
- const node = (0, _detachedNode.detachedProps)(parent, {
1458
+ function ObjectPattern(props) {
1459
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1481
1460
  type: 'ObjectPattern',
1482
- ...props
1461
+ // $FlowFixMe[incompatible-call],
1462
+ properties: props.properties.map(n => (0, _detachedNode.asDetachedNode)(n)),
1463
+ // $FlowFixMe[incompatible-call],
1464
+ typeAnnotation: (0, _detachedNode.asDetachedNode)(props.typeAnnotation)
1483
1465
  });
1484
1466
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1485
1467
  return node;
1486
1468
  }
1487
1469
 
1488
- function ObjectTypeAnnotation({
1489
- parent,
1490
- ...props
1491
- }) {
1492
- const node = (0, _detachedNode.detachedProps)(parent, {
1470
+ function ObjectTypeAnnotation(props) {
1471
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1493
1472
  type: 'ObjectTypeAnnotation',
1494
- ...props
1473
+ // $FlowFixMe[incompatible-call],
1474
+ properties: props.properties.map(n => (0, _detachedNode.asDetachedNode)(n)),
1475
+ // $FlowFixMe[incompatible-call],
1476
+ indexers: props.indexers.map(n => (0, _detachedNode.asDetachedNode)(n)),
1477
+ // $FlowFixMe[incompatible-call],
1478
+ callProperties: props.callProperties.map(n => (0, _detachedNode.asDetachedNode)(n)),
1479
+ // $FlowFixMe[incompatible-call],
1480
+ internalSlots: props.internalSlots.map(n => (0, _detachedNode.asDetachedNode)(n)),
1481
+ inexact: props.inexact,
1482
+ exact: props.exact
1495
1483
  });
1496
1484
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1497
1485
  return node;
1498
1486
  }
1499
1487
 
1500
- function ObjectTypeCallProperty({
1501
- parent,
1502
- ...props
1503
- }) {
1504
- const node = (0, _detachedNode.detachedProps)(parent, {
1488
+ function ObjectTypeCallProperty(props) {
1489
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1505
1490
  type: 'ObjectTypeCallProperty',
1506
- ...props
1491
+ // $FlowFixMe[incompatible-call],
1492
+ value: (0, _detachedNode.asDetachedNode)(props.value),
1493
+ static: props.static
1507
1494
  });
1508
1495
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1509
1496
  return node;
1510
1497
  }
1511
1498
 
1512
- function ObjectTypeIndexer({
1513
- parent,
1514
- ...props
1515
- }) {
1516
- const node = (0, _detachedNode.detachedProps)(parent, {
1499
+ function ObjectTypeIndexer(props) {
1500
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1517
1501
  type: 'ObjectTypeIndexer',
1518
- ...props
1502
+ // $FlowFixMe[incompatible-call],
1503
+ id: (0, _detachedNode.asDetachedNode)(props.id),
1504
+ // $FlowFixMe[incompatible-call],
1505
+ key: (0, _detachedNode.asDetachedNode)(props.key),
1506
+ // $FlowFixMe[incompatible-call],
1507
+ value: (0, _detachedNode.asDetachedNode)(props.value),
1508
+ static: props.static,
1509
+ // $FlowFixMe[incompatible-call],
1510
+ variance: (0, _detachedNode.asDetachedNode)(props.variance)
1519
1511
  });
1520
1512
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1521
1513
  return node;
1522
1514
  }
1523
1515
 
1524
- function ObjectTypeInternalSlot({
1525
- parent,
1526
- ...props
1527
- }) {
1528
- const node = (0, _detachedNode.detachedProps)(parent, {
1516
+ function ObjectTypeInternalSlot(props) {
1517
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1529
1518
  type: 'ObjectTypeInternalSlot',
1530
- ...props
1519
+ // $FlowFixMe[incompatible-call],
1520
+ id: (0, _detachedNode.asDetachedNode)(props.id),
1521
+ // $FlowFixMe[incompatible-call],
1522
+ value: (0, _detachedNode.asDetachedNode)(props.value),
1523
+ optional: props.optional,
1524
+ static: props.static,
1525
+ method: props.method
1531
1526
  });
1532
1527
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1533
1528
  return node;
1534
1529
  }
1535
1530
 
1536
- function ObjectTypeProperty({
1537
- parent,
1538
- ...props
1539
- }) {
1540
- const node = (0, _detachedNode.detachedProps)(parent, {
1541
- type: 'ObjectTypeProperty',
1542
- ...props
1543
- });
1544
- (0, _detachedNode.setParentPointersInDirectChildren)(node);
1545
- return node;
1546
- }
1547
-
1548
- function ObjectTypeSpreadProperty({
1549
- parent,
1550
- ...props
1551
- }) {
1552
- const node = (0, _detachedNode.detachedProps)(parent, {
1531
+ function ObjectTypeSpreadProperty(props) {
1532
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1553
1533
  type: 'ObjectTypeSpreadProperty',
1554
- ...props
1534
+ // $FlowFixMe[incompatible-call],
1535
+ argument: (0, _detachedNode.asDetachedNode)(props.argument)
1555
1536
  });
1556
1537
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1557
1538
  return node;
1558
1539
  }
1559
1540
 
1560
- function OpaqueType({
1561
- parent,
1562
- ...props
1563
- }) {
1564
- const node = (0, _detachedNode.detachedProps)(parent, {
1541
+ function OpaqueType(props) {
1542
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1565
1543
  type: 'OpaqueType',
1566
- ...props
1544
+ // $FlowFixMe[incompatible-call],
1545
+ id: (0, _detachedNode.asDetachedNode)(props.id),
1546
+ // $FlowFixMe[incompatible-call],
1547
+ typeParameters: (0, _detachedNode.asDetachedNode)(props.typeParameters),
1548
+ // $FlowFixMe[incompatible-call],
1549
+ impltype: (0, _detachedNode.asDetachedNode)(props.impltype),
1550
+ // $FlowFixMe[incompatible-call],
1551
+ supertype: (0, _detachedNode.asDetachedNode)(props.supertype)
1567
1552
  });
1568
1553
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1569
1554
  return node;
1570
1555
  }
1571
1556
 
1572
- function OptionalIndexedAccessType({
1573
- parent,
1574
- ...props
1575
- }) {
1576
- const node = (0, _detachedNode.detachedProps)(parent, {
1557
+ function OptionalIndexedAccessType(props) {
1558
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1577
1559
  type: 'OptionalIndexedAccessType',
1578
- ...props
1560
+ // $FlowFixMe[incompatible-call],
1561
+ objectType: (0, _detachedNode.asDetachedNode)(props.objectType),
1562
+ // $FlowFixMe[incompatible-call],
1563
+ indexType: (0, _detachedNode.asDetachedNode)(props.indexType),
1564
+ optional: props.optional
1579
1565
  });
1580
1566
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1581
1567
  return node;
1582
1568
  }
1583
1569
 
1584
- function PrivateIdentifier({
1585
- parent,
1586
- ...props
1587
- }) {
1588
- const node = (0, _detachedNode.detachedProps)(parent, {
1570
+ function PrivateIdentifier(props) {
1571
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1589
1572
  type: 'PrivateIdentifier',
1590
- ...props
1573
+ name: props.name
1591
1574
  });
1592
1575
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1593
1576
  return node;
1594
1577
  }
1595
1578
 
1596
- function Property({
1597
- parent,
1598
- ...props
1599
- }) {
1600
- const node = (0, _detachedNode.detachedProps)(parent, {
1579
+ function Property(props) {
1580
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1601
1581
  type: 'Property',
1602
- ...props
1582
+ // $FlowFixMe[incompatible-call],
1583
+ key: (0, _detachedNode.asDetachedNode)(props.key),
1584
+ // $FlowFixMe[incompatible-call],
1585
+ value: (0, _detachedNode.asDetachedNode)(props.value),
1586
+ kind: props.kind,
1587
+ computed: props.computed,
1588
+ method: props.method,
1589
+ shorthand: props.shorthand
1603
1590
  });
1604
1591
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1605
1592
  return node;
1606
1593
  }
1607
1594
 
1608
- function PropertyDefinition({
1609
- parent,
1610
- ...props
1611
- }) {
1612
- const node = (0, _detachedNode.detachedProps)(parent, {
1595
+ function PropertyDefinition(props) {
1596
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1613
1597
  type: 'PropertyDefinition',
1614
- ...props
1598
+ // $FlowFixMe[incompatible-call],
1599
+ key: (0, _detachedNode.asDetachedNode)(props.key),
1600
+ // $FlowFixMe[incompatible-call],
1601
+ value: (0, _detachedNode.asDetachedNode)(props.value),
1602
+ computed: props.computed,
1603
+ static: props.static,
1604
+ declare: props.declare,
1605
+ optional: props.optional,
1606
+ // $FlowFixMe[incompatible-call],
1607
+ variance: (0, _detachedNode.asDetachedNode)(props.variance),
1608
+ // $FlowFixMe[incompatible-call],
1609
+ typeAnnotation: (0, _detachedNode.asDetachedNode)(props.typeAnnotation),
1610
+ // $FlowFixMe[incompatible-call],
1611
+ tsModifiers: (0, _detachedNode.asDetachedNode)(props.tsModifiers)
1615
1612
  });
1616
1613
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1617
1614
  return node;
1618
1615
  }
1619
1616
 
1620
- function QualifiedTypeIdentifier({
1621
- parent,
1622
- ...props
1623
- }) {
1624
- const node = (0, _detachedNode.detachedProps)(parent, {
1617
+ function QualifiedTypeIdentifier(props) {
1618
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1625
1619
  type: 'QualifiedTypeIdentifier',
1626
- ...props
1620
+ // $FlowFixMe[incompatible-call],
1621
+ qualification: (0, _detachedNode.asDetachedNode)(props.qualification),
1622
+ // $FlowFixMe[incompatible-call],
1623
+ id: (0, _detachedNode.asDetachedNode)(props.id)
1627
1624
  });
1628
1625
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1629
1626
  return node;
1630
1627
  }
1631
1628
 
1632
- function RestElement({
1633
- parent,
1634
- ...props
1635
- }) {
1636
- const node = (0, _detachedNode.detachedProps)(parent, {
1629
+ function RestElement(props) {
1630
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1637
1631
  type: 'RestElement',
1638
- ...props
1632
+ // $FlowFixMe[incompatible-call],
1633
+ argument: (0, _detachedNode.asDetachedNode)(props.argument)
1639
1634
  });
1640
1635
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1641
1636
  return node;
1642
1637
  }
1643
1638
 
1644
- function ReturnStatement({
1645
- parent,
1646
- ...props
1647
- }) {
1648
- const node = (0, _detachedNode.detachedProps)(parent, {
1639
+ function ReturnStatement(props) {
1640
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1649
1641
  type: 'ReturnStatement',
1650
- ...props
1642
+ // $FlowFixMe[incompatible-call],
1643
+ argument: (0, _detachedNode.asDetachedNode)(props.argument)
1651
1644
  });
1652
1645
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1653
1646
  return node;
1654
1647
  }
1655
1648
 
1656
- function SequenceExpression({
1657
- parent,
1658
- ...props
1659
- }) {
1660
- const node = (0, _detachedNode.detachedProps)(parent, {
1649
+ function SequenceExpression(props) {
1650
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1661
1651
  type: 'SequenceExpression',
1662
- ...props
1652
+ // $FlowFixMe[incompatible-call],
1653
+ expressions: props.expressions.map(n => (0, _detachedNode.asDetachedNode)(n))
1663
1654
  });
1664
1655
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1665
1656
  return node;
1666
1657
  }
1667
1658
 
1668
- function SpreadElement({
1669
- parent,
1670
- ...props
1671
- }) {
1672
- const node = (0, _detachedNode.detachedProps)(parent, {
1659
+ function SpreadElement(props) {
1660
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1673
1661
  type: 'SpreadElement',
1674
- ...props
1662
+ // $FlowFixMe[incompatible-call],
1663
+ argument: (0, _detachedNode.asDetachedNode)(props.argument)
1675
1664
  });
1676
1665
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1677
1666
  return node;
1678
1667
  }
1679
1668
 
1680
- function StringLiteralTypeAnnotation({
1681
- parent,
1682
- ...props
1683
- }) {
1684
- const node = (0, _detachedNode.detachedProps)(parent, {
1669
+ function StringLiteralTypeAnnotation(props) {
1670
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1685
1671
  type: 'StringLiteralTypeAnnotation',
1686
- ...props
1672
+ value: props.value,
1673
+ raw: props.raw
1687
1674
  });
1688
1675
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1689
1676
  return node;
1690
1677
  }
1691
1678
 
1692
- function StringTypeAnnotation({
1693
- parent
1694
- } = {}) {
1695
- return (0, _detachedNode.detachedProps)(parent, {
1679
+ function StringTypeAnnotation(props = { ...null
1680
+ }) {
1681
+ return (0, _detachedNode.detachedProps)(props.parent, {
1696
1682
  type: 'StringTypeAnnotation'
1697
1683
  });
1698
1684
  }
1699
1685
 
1700
- function Super({
1701
- parent
1702
- } = {}) {
1703
- return (0, _detachedNode.detachedProps)(parent, {
1686
+ function Super(props = { ...null
1687
+ }) {
1688
+ return (0, _detachedNode.detachedProps)(props.parent, {
1704
1689
  type: 'Super'
1705
1690
  });
1706
1691
  }
1707
1692
 
1708
- function SwitchCase({
1709
- parent,
1710
- ...props
1711
- }) {
1712
- const node = (0, _detachedNode.detachedProps)(parent, {
1693
+ function SwitchCase(props) {
1694
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1713
1695
  type: 'SwitchCase',
1714
- ...props
1696
+ // $FlowFixMe[incompatible-call],
1697
+ test: (0, _detachedNode.asDetachedNode)(props.test),
1698
+ // $FlowFixMe[incompatible-call],
1699
+ consequent: props.consequent.map(n => (0, _detachedNode.asDetachedNode)(n))
1715
1700
  });
1716
1701
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1717
1702
  return node;
1718
1703
  }
1719
1704
 
1720
- function SwitchStatement({
1721
- parent,
1722
- ...props
1723
- }) {
1724
- const node = (0, _detachedNode.detachedProps)(parent, {
1705
+ function SwitchStatement(props) {
1706
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1725
1707
  type: 'SwitchStatement',
1726
- ...props
1708
+ // $FlowFixMe[incompatible-call],
1709
+ discriminant: (0, _detachedNode.asDetachedNode)(props.discriminant),
1710
+ // $FlowFixMe[incompatible-call],
1711
+ cases: props.cases.map(n => (0, _detachedNode.asDetachedNode)(n))
1727
1712
  });
1728
1713
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1729
1714
  return node;
1730
1715
  }
1731
1716
 
1732
- function SymbolTypeAnnotation({
1733
- parent
1734
- } = {}) {
1735
- return (0, _detachedNode.detachedProps)(parent, {
1717
+ function SymbolTypeAnnotation(props = { ...null
1718
+ }) {
1719
+ return (0, _detachedNode.detachedProps)(props.parent, {
1736
1720
  type: 'SymbolTypeAnnotation'
1737
1721
  });
1738
1722
  }
1739
1723
 
1740
- function TaggedTemplateExpression({
1741
- parent,
1742
- ...props
1743
- }) {
1744
- const node = (0, _detachedNode.detachedProps)(parent, {
1724
+ function TaggedTemplateExpression(props) {
1725
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1745
1726
  type: 'TaggedTemplateExpression',
1746
- ...props
1727
+ // $FlowFixMe[incompatible-call],
1728
+ tag: (0, _detachedNode.asDetachedNode)(props.tag),
1729
+ // $FlowFixMe[incompatible-call],
1730
+ quasi: (0, _detachedNode.asDetachedNode)(props.quasi)
1747
1731
  });
1748
1732
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1749
1733
  return node;
1750
1734
  }
1751
1735
 
1752
- function TemplateLiteral({
1753
- parent,
1754
- ...props
1755
- }) {
1756
- const node = (0, _detachedNode.detachedProps)(parent, {
1736
+ function TemplateLiteral(props) {
1737
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1757
1738
  type: 'TemplateLiteral',
1758
- ...props
1739
+ // $FlowFixMe[incompatible-call],
1740
+ quasis: props.quasis.map(n => (0, _detachedNode.asDetachedNode)(n)),
1741
+ // $FlowFixMe[incompatible-call],
1742
+ expressions: props.expressions.map(n => (0, _detachedNode.asDetachedNode)(n))
1759
1743
  });
1760
1744
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1761
1745
  return node;
1762
1746
  }
1763
1747
 
1764
- function ThisExpression({
1765
- parent
1766
- } = {}) {
1767
- return (0, _detachedNode.detachedProps)(parent, {
1748
+ function ThisExpression(props = { ...null
1749
+ }) {
1750
+ return (0, _detachedNode.detachedProps)(props.parent, {
1768
1751
  type: 'ThisExpression'
1769
1752
  });
1770
1753
  }
1771
1754
 
1772
- function ThisTypeAnnotation({
1773
- parent
1774
- } = {}) {
1775
- return (0, _detachedNode.detachedProps)(parent, {
1755
+ function ThisTypeAnnotation(props = { ...null
1756
+ }) {
1757
+ return (0, _detachedNode.detachedProps)(props.parent, {
1776
1758
  type: 'ThisTypeAnnotation'
1777
1759
  });
1778
1760
  }
1779
1761
 
1780
- function ThrowStatement({
1781
- parent,
1782
- ...props
1783
- }) {
1784
- const node = (0, _detachedNode.detachedProps)(parent, {
1762
+ function ThrowStatement(props) {
1763
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1785
1764
  type: 'ThrowStatement',
1786
- ...props
1765
+ // $FlowFixMe[incompatible-call],
1766
+ argument: (0, _detachedNode.asDetachedNode)(props.argument)
1787
1767
  });
1788
1768
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1789
1769
  return node;
1790
1770
  }
1791
1771
 
1792
- function TryStatement({
1793
- parent,
1794
- ...props
1795
- }) {
1796
- const node = (0, _detachedNode.detachedProps)(parent, {
1772
+ function TryStatement(props) {
1773
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1797
1774
  type: 'TryStatement',
1798
- ...props
1775
+ // $FlowFixMe[incompatible-call],
1776
+ block: (0, _detachedNode.asDetachedNode)(props.block),
1777
+ // $FlowFixMe[incompatible-call],
1778
+ handler: (0, _detachedNode.asDetachedNode)(props.handler),
1779
+ // $FlowFixMe[incompatible-call],
1780
+ finalizer: (0, _detachedNode.asDetachedNode)(props.finalizer)
1799
1781
  });
1800
1782
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1801
1783
  return node;
1802
1784
  }
1803
1785
 
1804
- function TupleTypeAnnotation({
1805
- parent,
1806
- ...props
1807
- }) {
1808
- const node = (0, _detachedNode.detachedProps)(parent, {
1786
+ function TupleTypeAnnotation(props) {
1787
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1809
1788
  type: 'TupleTypeAnnotation',
1810
- ...props
1789
+ // $FlowFixMe[incompatible-call],
1790
+ types: props.types.map(n => (0, _detachedNode.asDetachedNode)(n))
1811
1791
  });
1812
1792
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1813
1793
  return node;
1814
1794
  }
1815
1795
 
1816
- function TypeAlias({
1817
- parent,
1818
- ...props
1819
- }) {
1820
- const node = (0, _detachedNode.detachedProps)(parent, {
1796
+ function TypeAlias(props) {
1797
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1821
1798
  type: 'TypeAlias',
1822
- ...props
1799
+ // $FlowFixMe[incompatible-call],
1800
+ id: (0, _detachedNode.asDetachedNode)(props.id),
1801
+ // $FlowFixMe[incompatible-call],
1802
+ typeParameters: (0, _detachedNode.asDetachedNode)(props.typeParameters),
1803
+ // $FlowFixMe[incompatible-call],
1804
+ right: (0, _detachedNode.asDetachedNode)(props.right)
1823
1805
  });
1824
1806
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1825
1807
  return node;
1826
1808
  }
1827
1809
 
1828
- function TypeAnnotation({
1829
- parent,
1830
- ...props
1831
- }) {
1832
- const node = (0, _detachedNode.detachedProps)(parent, {
1810
+ function TypeAnnotation(props) {
1811
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1833
1812
  type: 'TypeAnnotation',
1834
- ...props
1813
+ // $FlowFixMe[incompatible-call],
1814
+ typeAnnotation: (0, _detachedNode.asDetachedNode)(props.typeAnnotation)
1835
1815
  });
1836
1816
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1837
1817
  return node;
1838
1818
  }
1839
1819
 
1840
- function TypeCastExpression({
1841
- parent,
1842
- ...props
1843
- }) {
1844
- const node = (0, _detachedNode.detachedProps)(parent, {
1820
+ function TypeCastExpression(props) {
1821
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1845
1822
  type: 'TypeCastExpression',
1846
- ...props
1823
+ // $FlowFixMe[incompatible-call],
1824
+ expression: (0, _detachedNode.asDetachedNode)(props.expression),
1825
+ // $FlowFixMe[incompatible-call],
1826
+ typeAnnotation: (0, _detachedNode.asDetachedNode)(props.typeAnnotation)
1847
1827
  });
1848
1828
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1849
1829
  return node;
1850
1830
  }
1851
1831
 
1852
- function TypeofTypeAnnotation({
1853
- parent,
1854
- ...props
1855
- }) {
1856
- const node = (0, _detachedNode.detachedProps)(parent, {
1832
+ function TypeofTypeAnnotation(props) {
1833
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1857
1834
  type: 'TypeofTypeAnnotation',
1858
- ...props
1835
+ // $FlowFixMe[incompatible-call],
1836
+ argument: (0, _detachedNode.asDetachedNode)(props.argument)
1859
1837
  });
1860
1838
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1861
1839
  return node;
1862
1840
  }
1863
1841
 
1864
- function TypeParameter({
1865
- parent,
1866
- ...props
1867
- }) {
1868
- const node = (0, _detachedNode.detachedProps)(parent, {
1842
+ function TypeParameter(props) {
1843
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1869
1844
  type: 'TypeParameter',
1870
- ...props
1845
+ name: props.name,
1846
+ // $FlowFixMe[incompatible-call],
1847
+ bound: (0, _detachedNode.asDetachedNode)(props.bound),
1848
+ // $FlowFixMe[incompatible-call],
1849
+ variance: (0, _detachedNode.asDetachedNode)(props.variance),
1850
+ // $FlowFixMe[incompatible-call],
1851
+ default: (0, _detachedNode.asDetachedNode)(props.default)
1871
1852
  });
1872
1853
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1873
1854
  return node;
1874
1855
  }
1875
1856
 
1876
- function TypeParameterDeclaration({
1877
- parent,
1878
- ...props
1879
- }) {
1880
- const node = (0, _detachedNode.detachedProps)(parent, {
1857
+ function TypeParameterDeclaration(props) {
1858
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1881
1859
  type: 'TypeParameterDeclaration',
1882
- ...props
1860
+ // $FlowFixMe[incompatible-call],
1861
+ params: props.params.map(n => (0, _detachedNode.asDetachedNode)(n))
1883
1862
  });
1884
1863
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1885
1864
  return node;
1886
1865
  }
1887
1866
 
1888
- function TypeParameterInstantiation({
1889
- parent,
1890
- ...props
1891
- }) {
1892
- const node = (0, _detachedNode.detachedProps)(parent, {
1867
+ function TypeParameterInstantiation(props) {
1868
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1893
1869
  type: 'TypeParameterInstantiation',
1894
- ...props
1870
+ // $FlowFixMe[incompatible-call],
1871
+ params: props.params.map(n => (0, _detachedNode.asDetachedNode)(n))
1895
1872
  });
1896
1873
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1897
1874
  return node;
1898
1875
  }
1899
1876
 
1900
- function UnaryExpression({
1901
- parent,
1902
- ...props
1903
- }) {
1904
- const node = (0, _detachedNode.detachedProps)(parent, {
1877
+ function UnaryExpression(props) {
1878
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1905
1879
  type: 'UnaryExpression',
1906
- ...props
1880
+ operator: props.operator,
1881
+ // $FlowFixMe[incompatible-call],
1882
+ argument: (0, _detachedNode.asDetachedNode)(props.argument),
1883
+ prefix: props.prefix
1907
1884
  });
1908
1885
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1909
1886
  return node;
1910
1887
  }
1911
1888
 
1912
- function UnionTypeAnnotation({
1913
- parent,
1914
- ...props
1915
- }) {
1916
- const node = (0, _detachedNode.detachedProps)(parent, {
1889
+ function UnionTypeAnnotation(props) {
1890
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1917
1891
  type: 'UnionTypeAnnotation',
1918
- ...props
1892
+ // $FlowFixMe[incompatible-call],
1893
+ types: props.types.map(n => (0, _detachedNode.asDetachedNode)(n))
1919
1894
  });
1920
1895
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1921
1896
  return node;
1922
1897
  }
1923
1898
 
1924
- function UpdateExpression({
1925
- parent,
1926
- ...props
1927
- }) {
1928
- const node = (0, _detachedNode.detachedProps)(parent, {
1899
+ function UpdateExpression(props) {
1900
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1929
1901
  type: 'UpdateExpression',
1930
- ...props
1902
+ operator: props.operator,
1903
+ // $FlowFixMe[incompatible-call],
1904
+ argument: (0, _detachedNode.asDetachedNode)(props.argument),
1905
+ prefix: props.prefix
1931
1906
  });
1932
1907
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1933
1908
  return node;
1934
1909
  }
1935
1910
 
1936
- function VariableDeclaration({
1937
- parent,
1938
- ...props
1939
- }) {
1940
- const node = (0, _detachedNode.detachedProps)(parent, {
1911
+ function VariableDeclaration(props) {
1912
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1941
1913
  type: 'VariableDeclaration',
1942
- ...props
1914
+ kind: props.kind,
1915
+ // $FlowFixMe[incompatible-call],
1916
+ declarations: props.declarations.map(n => (0, _detachedNode.asDetachedNode)(n))
1943
1917
  });
1944
1918
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1945
1919
  return node;
1946
1920
  }
1947
1921
 
1948
- function VariableDeclarator({
1949
- parent,
1950
- ...props
1951
- }) {
1952
- const node = (0, _detachedNode.detachedProps)(parent, {
1922
+ function VariableDeclarator(props) {
1923
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1953
1924
  type: 'VariableDeclarator',
1954
- ...props
1925
+ // $FlowFixMe[incompatible-call],
1926
+ init: (0, _detachedNode.asDetachedNode)(props.init),
1927
+ // $FlowFixMe[incompatible-call],
1928
+ id: (0, _detachedNode.asDetachedNode)(props.id)
1955
1929
  });
1956
1930
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1957
1931
  return node;
1958
1932
  }
1959
1933
 
1960
- function Variance({
1961
- parent,
1962
- ...props
1963
- }) {
1964
- const node = (0, _detachedNode.detachedProps)(parent, {
1934
+ function Variance(props) {
1935
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1965
1936
  type: 'Variance',
1966
- ...props
1937
+ kind: props.kind
1967
1938
  });
1968
1939
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1969
1940
  return node;
1970
1941
  }
1971
1942
 
1972
- function VoidTypeAnnotation({
1973
- parent
1974
- } = {}) {
1975
- return (0, _detachedNode.detachedProps)(parent, {
1943
+ function VoidTypeAnnotation(props = { ...null
1944
+ }) {
1945
+ return (0, _detachedNode.detachedProps)(props.parent, {
1976
1946
  type: 'VoidTypeAnnotation'
1977
1947
  });
1978
1948
  }
1979
1949
 
1980
- function WhileStatement({
1981
- parent,
1982
- ...props
1983
- }) {
1984
- const node = (0, _detachedNode.detachedProps)(parent, {
1950
+ function WhileStatement(props) {
1951
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1985
1952
  type: 'WhileStatement',
1986
- ...props
1953
+ // $FlowFixMe[incompatible-call],
1954
+ body: (0, _detachedNode.asDetachedNode)(props.body),
1955
+ // $FlowFixMe[incompatible-call],
1956
+ test: (0, _detachedNode.asDetachedNode)(props.test)
1987
1957
  });
1988
1958
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
1989
1959
  return node;
1990
1960
  }
1991
1961
 
1992
- function WithStatement({
1993
- parent,
1994
- ...props
1995
- }) {
1996
- const node = (0, _detachedNode.detachedProps)(parent, {
1962
+ function WithStatement(props) {
1963
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
1997
1964
  type: 'WithStatement',
1998
- ...props
1965
+ // $FlowFixMe[incompatible-call],
1966
+ object: (0, _detachedNode.asDetachedNode)(props.object),
1967
+ // $FlowFixMe[incompatible-call],
1968
+ body: (0, _detachedNode.asDetachedNode)(props.body)
1999
1969
  });
2000
1970
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
2001
1971
  return node;
2002
1972
  }
2003
1973
 
2004
- function YieldExpression({
2005
- parent,
2006
- ...props
2007
- }) {
2008
- const node = (0, _detachedNode.detachedProps)(parent, {
1974
+ function YieldExpression(props) {
1975
+ const node = (0, _detachedNode.detachedProps)(props.parent, {
2009
1976
  type: 'YieldExpression',
2010
- ...props
1977
+ // $FlowFixMe[incompatible-call],
1978
+ argument: (0, _detachedNode.asDetachedNode)(props.argument),
1979
+ delegate: props.delegate
2011
1980
  });
2012
1981
  (0, _detachedNode.setParentPointersInDirectChildren)(node);
2013
1982
  return node;