firefly-compiler 0.5.77 → 0.5.78

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 (156) hide show
  1. package/bin/firefly.mjs +1 -1
  2. package/compiler/Compiler.ff +7 -3
  3. package/compiler/JsEmitter.ff +1564 -623
  4. package/compiler/Main.ff +1 -1
  5. package/compiler/SourceMap.ff +149 -0
  6. package/core/Buffer.ff +2 -1
  7. package/core/BuildSystem.ff +3 -1
  8. package/core/Js.ff +6 -0
  9. package/firefly.sh +1 -1
  10. package/fireflysite/Main.ff +2 -1
  11. package/output/js/ff/compiler/Builder.mjs +4 -44
  12. package/output/js/ff/compiler/Builder.mjs.map +181 -0
  13. package/output/js/ff/compiler/Compiler.mjs +23 -16
  14. package/output/js/ff/compiler/Compiler.mjs.map +155 -0
  15. package/output/js/ff/compiler/Dependencies.mjs +12 -14
  16. package/output/js/ff/compiler/Dependencies.mjs.map +128 -0
  17. package/output/js/ff/compiler/DependencyLock.mjs +1 -4
  18. package/output/js/ff/compiler/DependencyLock.mjs.map +22 -0
  19. package/output/js/ff/compiler/Deriver.mjs +10 -11
  20. package/output/js/ff/compiler/Deriver.mjs.map +204 -0
  21. package/output/js/ff/compiler/Dictionaries.mjs +12 -13
  22. package/output/js/ff/compiler/Dictionaries.mjs.map +183 -0
  23. package/output/js/ff/compiler/Environment.mjs +24 -27
  24. package/output/js/ff/compiler/Environment.mjs.map +141 -0
  25. package/output/js/ff/compiler/Inference.mjs +83 -92
  26. package/output/js/ff/compiler/Inference.mjs.map +355 -0
  27. package/output/js/ff/compiler/JsEmitter.mjs +3689 -1687
  28. package/output/js/ff/compiler/JsEmitter.mjs.map +423 -0
  29. package/output/js/ff/compiler/JsImporter.mjs +9 -12
  30. package/output/js/ff/compiler/JsImporter.mjs.map +52 -0
  31. package/output/js/ff/compiler/LspHook.mjs +17 -18
  32. package/output/js/ff/compiler/LspHook.mjs.map +140 -0
  33. package/output/js/ff/compiler/Main.mjs +57 -67
  34. package/output/js/ff/compiler/Main.mjs.map +226 -0
  35. package/output/js/ff/compiler/ModuleCache.mjs +1 -4
  36. package/output/js/ff/compiler/ModuleCache.mjs.map +82 -0
  37. package/output/js/ff/compiler/Parser.mjs +54 -57
  38. package/output/js/ff/compiler/Parser.mjs.map +406 -0
  39. package/output/js/ff/compiler/Patterns.mjs +19 -22
  40. package/output/js/ff/compiler/Patterns.mjs.map +119 -0
  41. package/output/js/ff/compiler/Resolver.mjs +40 -39
  42. package/output/js/ff/compiler/Resolver.mjs.map +294 -0
  43. package/output/js/ff/compiler/SourceMap.mjs +402 -0
  44. package/output/js/ff/compiler/SourceMap.mjs.map +83 -0
  45. package/output/js/ff/compiler/Substitution.mjs +1 -4
  46. package/output/js/ff/compiler/Substitution.mjs.map +138 -0
  47. package/output/js/ff/compiler/Syntax.mjs +250 -249
  48. package/output/js/ff/compiler/Syntax.mjs.map +351 -0
  49. package/output/js/ff/compiler/Token.mjs +17 -22
  50. package/output/js/ff/compiler/Token.mjs.map +113 -0
  51. package/output/js/ff/compiler/Tokenizer.mjs +5 -12
  52. package/output/js/ff/compiler/Tokenizer.mjs.map +101 -0
  53. package/output/js/ff/compiler/Unification.mjs +32 -33
  54. package/output/js/ff/compiler/Unification.mjs.map +135 -0
  55. package/output/js/ff/compiler/Wildcards.mjs +1 -4
  56. package/output/js/ff/compiler/Wildcards.mjs.map +69 -0
  57. package/output/js/ff/compiler/Workspace.mjs +17 -16
  58. package/output/js/ff/compiler/Workspace.mjs.map +96 -0
  59. package/output/js/ff/core/Any.mjs +1 -4
  60. package/output/js/ff/core/Any.mjs.map +21 -0
  61. package/output/js/ff/core/Array.mjs +14 -15
  62. package/output/js/ff/core/Array.mjs.map +90 -0
  63. package/output/js/ff/core/AssetSystem.mjs +1 -4
  64. package/output/js/ff/core/AssetSystem.mjs.map +56 -0
  65. package/output/js/ff/core/Atomic.mjs +1 -4
  66. package/output/js/ff/core/Atomic.mjs.map +24 -0
  67. package/output/js/ff/core/Bool.mjs +4 -9
  68. package/output/js/ff/core/Bool.mjs.map +19 -0
  69. package/output/js/ff/core/BrowserSystem.mjs +1 -8
  70. package/output/js/ff/core/BrowserSystem.mjs.map +47 -0
  71. package/output/js/ff/core/Buffer.mjs +18 -17
  72. package/output/js/ff/core/Buffer.mjs.map +123 -0
  73. package/output/js/ff/core/BuildSystem.mjs +7 -10
  74. package/output/js/ff/core/BuildSystem.mjs.map +87 -0
  75. package/output/js/ff/core/Channel.mjs +1 -4
  76. package/output/js/ff/core/Channel.mjs.map +67 -0
  77. package/output/js/ff/core/Char.mjs +1 -8
  78. package/output/js/ff/core/Char.mjs.map +21 -0
  79. package/output/js/ff/core/Core.mjs +5 -8
  80. package/output/js/ff/core/Core.mjs.map +40 -0
  81. package/output/js/ff/core/Crypto.mjs +1 -4
  82. package/output/js/ff/core/Crypto.mjs.map +65 -0
  83. package/output/js/ff/core/Date.mjs +8 -7
  84. package/output/js/ff/core/Date.mjs.map +168 -0
  85. package/output/js/ff/core/Duration.mjs +4 -9
  86. package/output/js/ff/core/Duration.mjs.map +18 -0
  87. package/output/js/ff/core/Equal.mjs +9 -14
  88. package/output/js/ff/core/Equal.mjs.map +22 -0
  89. package/output/js/ff/core/Error.mjs +1 -8
  90. package/output/js/ff/core/Error.mjs.map +21 -0
  91. package/output/js/ff/core/FileHandle.mjs +1 -8
  92. package/output/js/ff/core/FileHandle.mjs.map +32 -0
  93. package/output/js/ff/core/Float.mjs +4 -5
  94. package/output/js/ff/core/Float.mjs.map +93 -0
  95. package/output/js/ff/core/HttpClient.mjs +1 -4
  96. package/output/js/ff/core/HttpClient.mjs.map +62 -0
  97. package/output/js/ff/core/Int.mjs +4 -9
  98. package/output/js/ff/core/Int.mjs.map +49 -0
  99. package/output/js/ff/core/IntMap.mjs +3 -6
  100. package/output/js/ff/core/IntMap.mjs.map +52 -0
  101. package/output/js/ff/core/Js.mjs +13 -8
  102. package/output/js/ff/core/Js.mjs.map +121 -0
  103. package/output/js/ff/core/JsSystem.mjs +1 -8
  104. package/output/js/ff/core/JsSystem.mjs.map +59 -0
  105. package/output/js/ff/core/JsValue.mjs +23 -42
  106. package/output/js/ff/core/JsValue.mjs.map +155 -0
  107. package/output/js/ff/core/Json.mjs +25 -26
  108. package/output/js/ff/core/Json.mjs.map +134 -0
  109. package/output/js/ff/core/List.mjs +11 -12
  110. package/output/js/ff/core/List.mjs.map +123 -0
  111. package/output/js/ff/core/Lock.mjs +7 -14
  112. package/output/js/ff/core/Lock.mjs.map +52 -0
  113. package/output/js/ff/core/Log.mjs +1 -8
  114. package/output/js/ff/core/Log.mjs.map +26 -0
  115. package/output/js/ff/core/Map.mjs +6 -7
  116. package/output/js/ff/core/Map.mjs.map +67 -0
  117. package/output/js/ff/core/NodeSystem.mjs +11 -14
  118. package/output/js/ff/core/NodeSystem.mjs.map +137 -0
  119. package/output/js/ff/core/Nothing.mjs +1 -10
  120. package/output/js/ff/core/Nothing.mjs.map +11 -0
  121. package/output/js/ff/core/Option.mjs +10 -15
  122. package/output/js/ff/core/Option.mjs.map +67 -0
  123. package/output/js/ff/core/Ordering.mjs +12 -13
  124. package/output/js/ff/core/Ordering.mjs.map +48 -0
  125. package/output/js/ff/core/Pair.mjs +8 -13
  126. package/output/js/ff/core/Pair.mjs.map +48 -0
  127. package/output/js/ff/core/Path.mjs +5 -14
  128. package/output/js/ff/core/Path.mjs.map +178 -0
  129. package/output/js/ff/core/Queue.mjs +1 -4
  130. package/output/js/ff/core/Queue.mjs.map +45 -0
  131. package/output/js/ff/core/Random.mjs +1 -4
  132. package/output/js/ff/core/Random.mjs.map +79 -0
  133. package/output/js/ff/core/RbMap.mjs +1 -16
  134. package/output/js/ff/core/RbMap.mjs.map +92 -0
  135. package/output/js/ff/core/Serializable.mjs +17 -22
  136. package/output/js/ff/core/Serializable.mjs.map +73 -0
  137. package/output/js/ff/core/Set.mjs +6 -7
  138. package/output/js/ff/core/Set.mjs.map +45 -0
  139. package/output/js/ff/core/Show.mjs +11 -20
  140. package/output/js/ff/core/Show.mjs.map +29 -0
  141. package/output/js/ff/core/SourceLocation.mjs +7 -8
  142. package/output/js/ff/core/SourceLocation.mjs.map +41 -0
  143. package/output/js/ff/core/Stream.mjs +1 -4
  144. package/output/js/ff/core/Stream.mjs.map +92 -0
  145. package/output/js/ff/core/String.mjs +14 -19
  146. package/output/js/ff/core/String.mjs.map +106 -0
  147. package/output/js/ff/core/StringMap.mjs +3 -6
  148. package/output/js/ff/core/StringMap.mjs.map +52 -0
  149. package/output/js/ff/core/Task.mjs +1 -8
  150. package/output/js/ff/core/Task.mjs.map +79 -0
  151. package/output/js/ff/core/Try.mjs +3 -6
  152. package/output/js/ff/core/Try.mjs.map +41 -0
  153. package/output/js/ff/core/Unit.mjs +5 -12
  154. package/output/js/ff/core/Unit.mjs.map +18 -0
  155. package/package.json +1 -1
  156. package/vscode/package.json +1 -1
@@ -1,5 +1,3 @@
1
-
2
-
3
1
  import * as ff_compiler_Patterns from "../../ff/compiler/Patterns.mjs"
4
2
 
5
3
  import * as ff_compiler_Syntax from "../../ff/compiler/Syntax.mjs"
@@ -108,8 +106,6 @@ export function PatternCaseInfo(fields_, guard_) {
108
106
  return {fields_, guard_};
109
107
  }
110
108
 
111
-
112
-
113
109
  export function check_(variants_, fields_, cases_, success_, guard_) {
114
110
  {
115
111
  const _1 = ff_core_Pair.Pair(fields_, cases_);
@@ -272,7 +268,7 @@ const converted_ = ff_compiler_Patterns.convert_(modules_, cases_);
272
268
  ff_core_Try.Try_else(ff_core_Core.try_((() => {
273
269
  ff_compiler_Patterns.check_(ff_core_List.List_toMap([], ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), [], converted_, false, false)
274
270
  })), (() => {
275
- ff_core_Core.throw_(ff_compiler_Syntax.CompileError((cases_[0] ?? ff_core_List.List_grab(cases_, 0)).at_, "Unexhaustive match"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
271
+ throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError((cases_[0] ?? ff_core_List.List_grab(cases_, 0)).at_, "Unexhaustive match"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
276
272
  }))
277
273
  }
278
274
 
@@ -442,7 +438,7 @@ const converted_ = ff_compiler_Patterns.convert_(modules_, cases_);
442
438
  ff_core_Try.Try_else(ff_core_Core.try_((() => {
443
439
  ff_compiler_Patterns.check_(ff_core_List.List_toMap([], ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), [], converted_, false, false)
444
440
  })), (() => {
445
- ff_core_Core.throw_(ff_compiler_Syntax.CompileError((cases_[0] ?? ff_core_List.List_grab(cases_, 0)).at_, "Unexhaustive match"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
441
+ throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError((cases_[0] ?? ff_core_List.List_grab(cases_, 0)).at_, "Unexhaustive match"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
446
442
  }))
447
443
  }
448
444
 
@@ -450,15 +446,13 @@ export async function fail_$(at_, message_, $task) {
450
446
  return ff_core_Core.panic_(((message_ + " ") + ff_compiler_Syntax.Location_show(at_)))
451
447
  }
452
448
 
453
-
454
-
455
449
  export const ff_core_Any_HasAnyTag$ff_compiler_Patterns_PatternInfo = {
456
450
  anyTag_() {
457
451
  return ff_core_Any.internalAnyTag_((("ff:compiler/Patterns.PatternInfo" + "[") + "]"))
458
452
  },
459
453
  async anyTag_$($task) {
460
454
  return ff_core_Any.internalAnyTag_((("ff:compiler/Patterns.PatternInfo" + "[") + "]"))
461
- }
455
+ },
462
456
  };
463
457
 
464
458
  export const ff_core_Any_HasAnyTag$ff_compiler_Patterns_PatternCaseInfo = {
@@ -467,7 +461,7 @@ return ff_core_Any.internalAnyTag_((("ff:compiler/Patterns.PatternCaseInfo" + "[
467
461
  },
468
462
  async anyTag_$($task) {
469
463
  return ff_core_Any.internalAnyTag_((("ff:compiler/Patterns.PatternCaseInfo" + "[") + "]"))
470
- }
464
+ },
471
465
  };
472
466
 
473
467
  export const ff_core_Show_Show$ff_compiler_Patterns_PatternInfo = {
@@ -484,7 +478,7 @@ const value_a = value_;
484
478
  const z_ = value_a;
485
479
  return ((((((("PatternInfo" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.variant_)) + ", ") + ff_core_Set.ff_core_Show_Show$ff_core_Set_Set(ff_core_Show.ff_core_Show_Show$ff_core_String_String, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String).show_(z_.otherVariants_)) + ", ") + ff_core_Show.ff_core_Show_Show$ff_core_List_List(ff_core_Show.ff_core_Show_Show$ff_core_Pair_Pair(ff_core_Show.ff_core_Show_Show$ff_core_String_String, ff_compiler_Patterns.ff_core_Show_Show$ff_compiler_Patterns_PatternInfo)).show_(z_.fields_)) + ")")
486
480
  }
487
- }
481
+ },
488
482
  };
489
483
 
490
484
  export const ff_core_Show_Show$ff_compiler_Patterns_PatternCaseInfo = {
@@ -501,7 +495,7 @@ const value_a = value_;
501
495
  const z_ = value_a;
502
496
  return ((((("PatternCaseInfo" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_List_List(ff_core_Show.ff_core_Show_Show$ff_core_Pair_Pair(ff_core_Show.ff_core_Show_Show$ff_core_String_String, ff_compiler_Patterns.ff_core_Show_Show$ff_compiler_Patterns_PatternInfo)).show_(z_.fields_)) + ", ") + ff_core_Show.ff_core_Show_Show$ff_core_Bool_Bool.show_(z_.guard_)) + ")")
503
497
  }
504
- }
498
+ },
505
499
  };
506
500
 
507
501
  export const ff_core_Equal_Equal$ff_compiler_Patterns_PatternInfo = {
@@ -524,7 +518,7 @@ return true
524
518
  {
525
519
  return ((x_.variant_ === y_.variant_) && (ff_core_Set.ff_core_Equal_Equal$ff_core_Set_Set(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String).equals_(x_.otherVariants_, y_.otherVariants_) && ff_core_List.ff_core_Equal_Equal$ff_core_List_List(ff_core_Pair.ff_core_Equal_Equal$ff_core_Pair_Pair(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String, ff_compiler_Patterns.ff_core_Equal_Equal$ff_compiler_Patterns_PatternInfo)).equals_(x_.fields_, y_.fields_)))
526
520
  }
527
- }
521
+ },
528
522
  };
529
523
 
530
524
  export const ff_core_Equal_Equal$ff_compiler_Patterns_PatternCaseInfo = {
@@ -547,7 +541,7 @@ return true
547
541
  {
548
542
  return (ff_core_List.ff_core_Equal_Equal$ff_core_List_List(ff_core_Pair.ff_core_Equal_Equal$ff_core_Pair_Pair(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String, ff_compiler_Patterns.ff_core_Equal_Equal$ff_compiler_Patterns_PatternInfo)).equals_(x_.fields_, y_.fields_) && (x_.guard_ === y_.guard_))
549
543
  }
550
- }
544
+ },
551
545
  };
552
546
 
553
547
  export const ff_core_Ordering_Order$ff_compiler_Patterns_PatternInfo = {
@@ -602,7 +596,7 @@ return ff_core_Ordering.OrderingSame()
602
596
  }
603
597
  return
604
598
  }
605
- }
599
+ },
606
600
  };
607
601
 
608
602
  export const ff_core_Ordering_Order$ff_compiler_Patterns_PatternCaseInfo = {
@@ -647,7 +641,7 @@ return ff_core_Ordering.OrderingSame()
647
641
  }
648
642
  return
649
643
  }
650
- }
644
+ },
651
645
  };
652
646
 
653
647
  export const ff_core_Serializable_Serializable$ff_compiler_Patterns_PatternInfo = {
@@ -676,7 +670,7 @@ serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_
676
670
  return ff_compiler_Patterns.PatternInfo(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Set_Set(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String).deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core_Pair.ff_core_Serializable_Serializable$ff_core_Pair_Pair(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String, ff_compiler_Patterns.ff_core_Serializable_Serializable$ff_compiler_Patterns_PatternInfo)).deserializeUsing_(serialization_))
677
671
  }
678
672
  {
679
- return ff_core_Core.throw_(ff_core_Serializable.DeserializationChecksumException(), ff_core_Serializable.ff_core_Any_HasAnyTag$ff_core_Serializable_DeserializationChecksumException, ff_core_Serializable.ff_core_Show_Show$ff_core_Serializable_DeserializationChecksumException)
673
+ throw ff_core_Js.initializeError_(new Error(), ff_core_Serializable.DeserializationChecksumException(), ff_core_Serializable.ff_core_Any_HasAnyTag$ff_core_Serializable_DeserializationChecksumException, ff_core_Serializable.ff_core_Show_Show$ff_core_Serializable_DeserializationChecksumException)
680
674
  }
681
675
  }
682
676
  },
@@ -705,10 +699,10 @@ serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_
705
699
  return ff_compiler_Patterns.PatternInfo(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Set_Set(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String).deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core_Pair.ff_core_Serializable_Serializable$ff_core_Pair_Pair(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String, ff_compiler_Patterns.ff_core_Serializable_Serializable$ff_compiler_Patterns_PatternInfo)).deserializeUsing_(serialization_))
706
700
  }
707
701
  {
708
- return ff_core_Core.throw_(ff_core_Serializable.DeserializationChecksumException(), ff_core_Serializable.ff_core_Any_HasAnyTag$ff_core_Serializable_DeserializationChecksumException, ff_core_Serializable.ff_core_Show_Show$ff_core_Serializable_DeserializationChecksumException)
709
- }
702
+ throw ff_core_Js.initializeError_(new Error(), ff_core_Serializable.DeserializationChecksumException(), ff_core_Serializable.ff_core_Any_HasAnyTag$ff_core_Serializable_DeserializationChecksumException, ff_core_Serializable.ff_core_Show_Show$ff_core_Serializable_DeserializationChecksumException)
710
703
  }
711
704
  }
705
+ },
712
706
  };
713
707
 
714
708
  export const ff_core_Serializable_Serializable$ff_compiler_Patterns_PatternCaseInfo = {
@@ -736,7 +730,7 @@ serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_
736
730
  return ff_compiler_Patterns.PatternCaseInfo(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core_Pair.ff_core_Serializable_Serializable$ff_core_Pair_Pair(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String, ff_compiler_Patterns.ff_core_Serializable_Serializable$ff_compiler_Patterns_PatternInfo)).deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Bool_Bool.deserializeUsing_(serialization_))
737
731
  }
738
732
  {
739
- return ff_core_Core.throw_(ff_core_Serializable.DeserializationChecksumException(), ff_core_Serializable.ff_core_Any_HasAnyTag$ff_core_Serializable_DeserializationChecksumException, ff_core_Serializable.ff_core_Show_Show$ff_core_Serializable_DeserializationChecksumException)
733
+ throw ff_core_Js.initializeError_(new Error(), ff_core_Serializable.DeserializationChecksumException(), ff_core_Serializable.ff_core_Any_HasAnyTag$ff_core_Serializable_DeserializationChecksumException, ff_core_Serializable.ff_core_Show_Show$ff_core_Serializable_DeserializationChecksumException)
740
734
  }
741
735
  }
742
736
  },
@@ -764,8 +758,11 @@ serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_
764
758
  return ff_compiler_Patterns.PatternCaseInfo(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core_Pair.ff_core_Serializable_Serializable$ff_core_Pair_Pair(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String, ff_compiler_Patterns.ff_core_Serializable_Serializable$ff_compiler_Patterns_PatternInfo)).deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Bool_Bool.deserializeUsing_(serialization_))
765
759
  }
766
760
  {
767
- return ff_core_Core.throw_(ff_core_Serializable.DeserializationChecksumException(), ff_core_Serializable.ff_core_Any_HasAnyTag$ff_core_Serializable_DeserializationChecksumException, ff_core_Serializable.ff_core_Show_Show$ff_core_Serializable_DeserializationChecksumException)
768
- }
761
+ throw ff_core_Js.initializeError_(new Error(), ff_core_Serializable.DeserializationChecksumException(), ff_core_Serializable.ff_core_Any_HasAnyTag$ff_core_Serializable_DeserializationChecksumException, ff_core_Serializable.ff_core_Show_Show$ff_core_Serializable_DeserializationChecksumException)
769
762
  }
770
763
  }
764
+ },
771
765
  };
766
+
767
+
768
+ //# sourceMappingURL=Patterns.mjs.map
@@ -0,0 +1,119 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [
4
+ "../../../../../compiler/Patterns.ff"
5
+ ],
6
+ "sourcesContent": [
7
+ "import Syntax\r\n\r\ndata PatternInfo(\r\n variant: String\r\n otherVariants: Set[String]\r\n fields: List[Pair[String, PatternInfo]]\r\n)\r\n\r\ndata PatternCaseInfo(\r\n fields: List[Pair[String, PatternInfo]]\r\n guard: Bool\r\n)\r\n\r\ncheck(\r\n variants: Map[String, Set[String]]\r\n fields: List[Pair[String, PatternInfo]]\r\n cases: List[PatternCaseInfo]\r\n success: Bool\r\n guard: Bool\r\n): Unit {\r\n Pair(fields, cases).{\r\n | Pair([Pair(f, PatternInfo p), ...fs], cs) =>\r\n let vs = variants.get(f).else {p.otherVariants.add(p.variant)}\r\n if(vs.contains(p.variant)) {\r\n let newFields = p.fields.map {_.mapFirst {f + \".\" + p.variant + \"_\" + _}}\r\n if(vs.size() == 1) {\r\n check(variants.add(f, vs), [...newFields, ...fs], cs, True, guard)\r\n } else {\r\n check(variants.add(f, [p.variant].toSet()), [...newFields, ...fs], cs, True, guard)\r\n check(variants.add(f, vs.remove(p.variant)), [], cs, False, guard)\r\n }\r\n } else {\r\n check(variants, [], cs, False, guard)\r\n }\r\n | _ {success && !guard} =>\r\n | Pair([], [PatternCaseInfo(fs, g), ...cs]) =>\r\n check(variants, fs, cs, True, g)\r\n | Pair([], []) =>\r\n let remaining = variants.pairs().filter {_.second.size() != 0}.map {| Pair(f, vs) =>\r\n f + \" could be \" + Show.show(vs.toList())\r\n }\r\n if(remaining.size() != 0) {\r\n panic(\"Unexhaustive match:\\n\" + remaining.join(\"\\n\"))\r\n }\r\n }\r\n}\r\n\r\nconvert(modules: Map[String, Module], cases: List[MatchCase]): List[PatternCaseInfo] {\r\n function unqualifiedName(name: String): String {\r\n name.reverse().takeWhile {_ != '.'}.reverse()\r\n }\r\n function otherVariants(name: String): Set[String] {\r\n if(name == \"List$Empty\") {[\"List$Link\"].toSet()} else:\r\n if(name == \"List$Link\") {[\"List$Empty\"].toSet()} else:\r\n let variantName = unqualifiedName(name)\r\n let moduleName = name.dropLast(variantName.size() + 1)\r\n let variantModule = modules.grab(moduleName)\r\n variantModule.types.collectFirst {definition =>\r\n definition.variants.find {_.name == variantName}.map {variant =>\r\n definition.variants.map {_.name}.filter {_ != variantName}.toSet()\r\n }\r\n }.grab()\r\n }\r\n function convertPattern(pattern: MatchPattern): Option[PatternInfo] {\r\n | PString _ =>\r\n Some(PatternInfo(\"String literal\", [\"Any other String literal\"].toSet(), []))\r\n | PInt _ =>\r\n Some(PatternInfo(\"Int literal\", [\"Any other Int literal\"].toSet(), []))\r\n | PChar _ =>\r\n Some(PatternInfo(\"Char literal\", [\"Any other Char literal\"].toSet(), []))\r\n | PVariable p =>\r\n None\r\n | PVariant p =>\r\n let fields = p.patterns.map(convertPattern).pairs().collect {\r\n | Pair(i, Some(info)) => Some(Pair(\"\" + i, info))\r\n | _ => None\r\n }\r\n Some(PatternInfo(unqualifiedName(p.name), otherVariants(p.name), fields))\r\n | PVariantAs p =>\r\n Some(PatternInfo(unqualifiedName(p.name), otherVariants(p.name), []))\r\n | PAlias p =>\r\n convertPattern(p.pattern)\r\n }\r\n cases.pairs().map {| Pair(caseIndex, case) =>\r\n let fields = case.patterns.map(convertPattern).pairs().collect {\r\n | Pair(i, Some(p)) => Some(Pair(\"\" + i, p))\r\n | _ => None\r\n }\r\n let exhaustiveGuards = case.guards.all {g =>\r\n let guardConverted = convert(modules, [MatchCase(g.at, [g.pattern], [], case.body)])\r\n try {\r\n check([].toMap(), [], guardConverted, False, False)\r\n True\r\n } else {\r\n False\r\n }\r\n }\r\n PatternCaseInfo(fields, !exhaustiveGuards)\r\n }\r\n}\r\n\r\nconvertAndCheck(modules: Map[String, Module], cases: List[MatchCase]): Unit {\r\n let converted = convert(modules, cases)\r\n try {\r\n check([].toMap(), [], converted, False, False)\r\n } else {\r\n throw(CompileError(cases.grab(0).at, \"Unexhaustive match\"))\r\n }\r\n}\r\n\r\nfail[T](at: Location, message: String): T {\r\n panic(message + \" \" + at.show())\r\n}\r\n"
8
+ ],
9
+ "names": [
10
+ "PatternInfo",
11
+ "variant",
12
+ "otherVariants",
13
+ "fields",
14
+ "PatternCaseInfo",
15
+ "guard",
16
+ "check",
17
+ "variants",
18
+ "cases",
19
+ "success",
20
+ "Pair",
21
+ "f",
22
+ "p",
23
+ "fs",
24
+ "cs",
25
+ "vs",
26
+ "else",
27
+ "get",
28
+ "add",
29
+ "contains",
30
+ "newFields",
31
+ "map",
32
+ "w1",
33
+ "mapFirst",
34
+ "size",
35
+ "toSet",
36
+ "remove",
37
+ "g",
38
+ "remaining",
39
+ "filter",
40
+ "pairs",
41
+ "second",
42
+ "show",
43
+ "toList",
44
+ "panic",
45
+ "join",
46
+ "convert",
47
+ "modules",
48
+ "unqualifiedName",
49
+ "name",
50
+ "reverse",
51
+ "takeWhile",
52
+ "variantName",
53
+ "moduleName",
54
+ "dropLast",
55
+ "variantModule",
56
+ "grab",
57
+ "collectFirst",
58
+ "types",
59
+ "definition",
60
+ "find",
61
+ "convertPattern",
62
+ "pattern",
63
+ "PString",
64
+ "Some",
65
+ "PInt",
66
+ "PChar",
67
+ "PVariable",
68
+ "None",
69
+ "PVariant",
70
+ "collect",
71
+ "patterns",
72
+ "i",
73
+ "info",
74
+ "PVariantAs",
75
+ "caseIndex",
76
+ "case",
77
+ "exhaustiveGuards",
78
+ "all",
79
+ "guards",
80
+ "guardConverted",
81
+ "MatchCase",
82
+ "at",
83
+ "body",
84
+ "try",
85
+ "toMap",
86
+ "convertAndCheck",
87
+ "converted",
88
+ "CompileError",
89
+ "fail",
90
+ "message",
91
+ "anyTag",
92
+ "internalAnyTag",
93
+ "value",
94
+ "z",
95
+ "equals",
96
+ "x",
97
+ "y",
98
+ "compare",
99
+ "OrderingSame",
100
+ "variantOrdering",
101
+ "otherVariantsOrdering",
102
+ "fieldsOrdering",
103
+ "guardOrdering",
104
+ "serializeUsing",
105
+ "serialization",
106
+ "v",
107
+ "checksum",
108
+ "bitOr",
109
+ "autoResize",
110
+ "setUint8",
111
+ "buffer",
112
+ "offset",
113
+ "deserializeUsing",
114
+ "variantIndex",
115
+ "grabUint8",
116
+ "DeserializationChecksumException"
117
+ ],
118
+ "mappings": "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"
119
+ }