firefly-compiler 0.4.20 → 0.4.21

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 (62) hide show
  1. package/compiler/Builder.ff +23 -13
  2. package/compiler/JsEmitter.ff +120 -76
  3. package/compiler/LspHook.ff +4 -2
  4. package/compiler/Main.ff +13 -7
  5. package/compiler/Resolver.ff +15 -15
  6. package/compiler/Syntax.ff +1 -0
  7. package/core/Array.ff +6 -4
  8. package/core/Int.ff +12 -12
  9. package/core/List.ff +6 -4
  10. package/experimental/benchmarks/ListGrab.ff +23 -0
  11. package/experimental/benchmarks/ListGrab.java +55 -0
  12. package/experimental/benchmarks/Pyrotek45.ff +30 -0
  13. package/experimental/benchmarks/Pyrotek45.java +64 -0
  14. package/experimental/tests/TestJson.ff +26 -0
  15. package/lsp/Handler.ff +55 -59
  16. package/lsp/SignatureHelpHandler.ff +5 -4
  17. package/lsp/TestReferences.ff +15 -0
  18. package/lsp/TestReferencesCase.ff +8 -0
  19. package/output/js/ff/compiler/Builder.mjs +50 -44
  20. package/output/js/ff/compiler/Dependencies.mjs +0 -2
  21. package/output/js/ff/compiler/Deriver.mjs +16 -140
  22. package/output/js/ff/compiler/Dictionaries.mjs +8 -222
  23. package/output/js/ff/compiler/Environment.mjs +12 -154
  24. package/output/js/ff/compiler/Inference.mjs +127 -1013
  25. package/output/js/ff/compiler/JsEmitter.mjs +434 -2344
  26. package/output/js/ff/compiler/JsImporter.mjs +0 -12
  27. package/output/js/ff/compiler/LspHook.mjs +20 -446
  28. package/output/js/ff/compiler/Main.mjs +96 -550
  29. package/output/js/ff/compiler/Parser.mjs +36 -356
  30. package/output/js/ff/compiler/Patterns.mjs +20 -200
  31. package/output/js/ff/compiler/Resolver.mjs +26 -340
  32. package/output/js/ff/compiler/Substitution.mjs +2 -160
  33. package/output/js/ff/compiler/Syntax.mjs +449 -3293
  34. package/output/js/ff/compiler/Token.mjs +9 -1095
  35. package/output/js/ff/compiler/Tokenizer.mjs +4 -2
  36. package/output/js/ff/compiler/Unification.mjs +26 -360
  37. package/output/js/ff/compiler/Wildcards.mjs +0 -86
  38. package/output/js/ff/compiler/Workspace.mjs +8 -96
  39. package/output/js/ff/core/Array.mjs +15 -8
  40. package/output/js/ff/core/AssetSystem.mjs +4 -14
  41. package/output/js/ff/core/Bool.mjs +0 -12
  42. package/output/js/ff/core/Core.mjs +0 -30
  43. package/output/js/ff/core/Int.mjs +24 -24
  44. package/output/js/ff/core/IntMap.mjs +0 -8
  45. package/output/js/ff/core/Json.mjs +0 -40
  46. package/output/js/ff/core/List.mjs +23 -32
  47. package/output/js/ff/core/Lock.mjs +0 -10
  48. package/output/js/ff/core/Map.mjs +0 -24
  49. package/output/js/ff/core/Option.mjs +10 -286
  50. package/output/js/ff/core/Ordering.mjs +16 -158
  51. package/output/js/ff/core/Pair.mjs +2 -34
  52. package/output/js/ff/core/Path.mjs +2 -28
  53. package/output/js/ff/core/Random.mjs +4 -4
  54. package/output/js/ff/core/RbMap.mjs +56 -644
  55. package/output/js/ff/core/Show.mjs +0 -16
  56. package/output/js/ff/core/Stream.mjs +14 -144
  57. package/output/js/ff/core/StringMap.mjs +0 -8
  58. package/output/js/ff/core/Try.mjs +4 -108
  59. package/output/js/ff/core/Unit.mjs +2 -16
  60. package/package.json +1 -1
  61. package/postgresql/Pg.ff +23 -23
  62. package/vscode/package.json +1 -1
@@ -158,29 +158,17 @@ const compilerModulePath_ = ((ff_core_Equal.notEquals_(emitTarget_, ff_compiler_
158
158
  ? ff_core_Option.Some(ff_core_Path.Path_slash(ff_core_Path.Path_slash(ff_core_Path.Path_slash(ff_core_Path.Path_slash(fireflyPath_, "output"), "js"), "ff"), "compiler/Builder.mjs"))
159
159
  : ff_core_Option.None());
160
160
  const targetName_ = (((_1) => {
161
- {
162
161
  if(_1.EmitBuild) {
163
162
  return "build"
164
- return
165
163
  }
166
- }
167
- {
168
164
  if(_1.EmitNode) {
169
165
  return "node"
170
- return
171
- }
172
166
  }
173
- {
174
167
  if(_1.EmitBrowser) {
175
168
  return "browser"
176
- return
177
169
  }
178
- }
179
- {
180
170
  if(_1.EmitExecutable) {
181
171
  return "executable"
182
- return
183
- }
184
172
  }
185
173
  }))(emitTarget_);
186
174
  ff_compiler_Builder.build_(system_, emitTarget_, mainPackagePair_, mainFile_, (((_c) => {
@@ -188,9 +176,7 @@ return ff_compiler_Dependencies.ResolvedDependencies(_c.mainPackagePair_, _c.pac
188
176
  }))(resolvedDependencies_), compilerModulePath_, ff_core_Path.Path_slash(ff_core_NodeSystem.NodeSystem_path(system_, ".firefly"), "temporary"), ff_core_Path.Path_path(ff_core_Path.Path_path(ff_core_NodeSystem.NodeSystem_path(system_, ".firefly"), "output"), targetName_), false)
189
177
  }
190
178
  function runCommand_(command_) {
191
- {
192
179
  const command_a = command_;
193
- {
194
180
  if(command_a.RunCommand) {
195
181
  const mainFile_ = command_a.mainPath_;
196
182
  const arguments_ = command_a.argument_;
@@ -201,8 +187,6 @@ buildScript_(localMainFile_, resolvedDependencies_.mainPackagePair_, ff_compiler
201
187
  ff_compiler_Main.importAndRun_(fireflyPath_, "node", resolvedDependencies_.mainPackagePair_, localMainFile_, arguments_)
202
188
  return
203
189
  }
204
- }
205
- {
206
190
  if(command_a.BrowserCommand) {
207
191
  const mainFile_ = command_a.mainPath_;
208
192
  const resolvedDependencies_ = ff_compiler_Dependencies.process_(ff_core_NodeSystem.NodeSystem_httpClient(system_), ff_core_NodeSystem.NodeSystem_path(system_, (mainFile_ + ".ff")));
@@ -212,8 +196,6 @@ buildScript_(mainFile_, resolvedDependencies_.mainPackagePair_, ff_compiler_JsEm
212
196
  ff_compiler_Main.bundleForBrowser_(system_, resolvedDependencies_.mainPackagePair_, localMainFile_)
213
197
  return
214
198
  }
215
- }
216
- {
217
199
  if(command_a.BuildCommand) {
218
200
  const mainFile_ = command_a.mainPath_;
219
201
  const resolvedDependencies_ = ff_compiler_Dependencies.process_(ff_core_NodeSystem.NodeSystem_httpClient(system_), ff_core_NodeSystem.NodeSystem_path(system_, (mainFile_ + ".ff")));
@@ -225,30 +207,26 @@ ff_compiler_Main.bundleForPkg_(system_, resolvedDependencies_.mainPackagePair_,
225
207
  ff_compiler_Main.importAndRun_(fireflyPath_, "build", resolvedDependencies_.mainPackagePair_, localMainFile_, [])
226
208
  return
227
209
  }
228
- }
229
- {
230
210
  if(command_a.CheckCommand) {
231
211
  const filePath_ = command_a.filePath_;
232
- ff_compiler_Builder.check_(system_, fireflyPath_, ff_core_NodeSystem.NodeSystem_path(system_, filePath_), ff_core_Map.empty_(), ff_compiler_LspHook.disabled_(), true)
233
- return
212
+ const errors_ = ff_compiler_Builder.check_(system_, fireflyPath_, ff_core_NodeSystem.NodeSystem_path(system_, filePath_), ff_core_Option.None(), ff_core_Map.empty_(), ff_compiler_LspHook.disabled_(), true);
213
+ if((!ff_core_List.List_isEmpty(errors_))) {
214
+ throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileErrors(errors_), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors)})
234
215
  }
216
+ return
235
217
  }
236
- {
237
218
  if(command_a.BootstrapCommand) {
238
219
  const workingDirectory_ = ff_core_NodeSystem.NodeSystem_path(system_, ".");
239
220
  ff_compiler_Builder.build_(system_, ff_compiler_JsEmitter.EmitNode(), ff_compiler_Syntax.PackagePair("ff", "compiler"), "Main", ff_compiler_Dependencies.ResolvedDependencies(ff_compiler_Syntax.PackagePair("ff", "compiler"), ff_core_List.List_toMap([], ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair), ff_core_List.List_toMap([ff_core_Pair.Pair(ff_compiler_Syntax.PackagePair("ff", "compiler"), ff_core_Path.Path_slash(workingDirectory_, "compiler")), ff_core_Pair.Pair(ff_compiler_Syntax.PackagePair("ff", "core"), ff_core_Path.Path_slash(workingDirectory_, "core"))], ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair), ff_core_List.List_toSet([], ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair)), ff_core_Option.None(), ff_core_Path.Path_slash(ff_core_Path.Path_slash(workingDirectory_, "output"), "temporary"), ff_core_Path.Path_slash(ff_core_Path.Path_slash(workingDirectory_, "output"), "js"), true)
240
221
  return
241
222
  }
242
223
  }
243
- }
244
- }
245
- ff_core_Try.Try_grab(ff_core_Try.Try_catch(ff_core_Try.Try_catch(ff_core_Core.try_((() => {
224
+ ff_core_Try.Try_grab(ff_core_Try.Try_catch(ff_core_Try.Try_catch(ff_core_Try.Try_catch(ff_core_Core.try_((() => {
246
225
  const command_ = ff_compiler_Main.parseCommandLine_(ff_core_NodeSystem.NodeSystem_arguments(system_));
247
226
  return runCommand_(command_)
248
227
  })), ((_1, _2) => {
249
228
  {
250
229
  const message_ = _1.problem_;
251
- const error_ = _2;
252
230
  ff_core_Log.debug_(message_)
253
231
  return
254
232
  }
@@ -256,198 +234,127 @@ return
256
234
  {
257
235
  const at_ = _1.at_;
258
236
  const message_ = _1.message_;
259
- const error_ = _2;
260
237
  ff_core_Log.debug_(message_);
261
238
  ff_core_Log.debug_((((((" at " + ff_core_String.String_replace(at_.file_, "./", "")) + ":") + at_.line_) + ":") + at_.column_))
262
239
  return
263
240
  }
264
- }), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError))
241
+ }), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError), ((_1, _2) => {
242
+ {
243
+ const errors_ = _1.errors_;
244
+ ff_core_List.List_map(errors_, ((_1) => {
245
+ {
246
+ const at_ = _1.at_;
247
+ const message_ = _1.message_;
248
+ ff_core_Log.debug_(message_);
249
+ return ff_core_Log.debug_((((((" at " + ff_core_String.String_replace(at_.file_, "./", "")) + ":") + at_.line_) + ":") + at_.column_))
250
+ }
251
+ }))
252
+ return
253
+ }
254
+ }), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors))
265
255
  }
266
256
 
267
257
  export function parseCommandLine_(arguments_) {
268
- {
269
258
  const arguments_a = arguments_;
270
- {
271
- if(arguments_a.length > 0) {
259
+ if(arguments_a.length >= 1) {
272
260
  const mainFile_ = arguments_a[0];
273
261
  const mainArguments_ = arguments_a.slice(1);
274
262
  const _guard1 = ff_core_String.String_removeLast(mainFile_, ".ff");
275
263
  if(_guard1.Some) {
276
264
  const mainName_ = _guard1.value_;
277
265
  return ff_compiler_Main.RunCommand(mainName_, mainArguments_)
278
- return
279
- }
280
266
  }
281
267
  }
282
- {
283
- if(arguments_a.length > 0) {
284
- if(arguments_a[0] === "run") {
268
+ if(arguments_a.length >= 1 && arguments_a[0] === "run") {
285
269
  const runArguments_ = arguments_a.slice(1);
286
270
  {
287
271
  const _1 = runArguments_;
288
- {
289
- if(_1.length > 0) {
272
+ if(_1.length >= 1) {
290
273
  const mainFile_ = _1[0];
291
274
  const mainArguments_ = _1.slice(1);
292
275
  const _guard1 = ff_core_String.String_removeLast(mainFile_, ".ff");
293
276
  if(_guard1.Some) {
294
277
  const mainName_ = _guard1.value_;
295
278
  return ff_compiler_Main.RunCommand(mainName_, mainArguments_)
296
- return
297
- }
298
279
  }
299
280
  }
300
281
  {
301
282
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must specify a Firefly file (.ff) as first argument to run." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
302
- return
303
283
  }
304
284
  }
305
285
  return
306
286
  }
307
- }
308
- }
309
- {
310
- if(arguments_a.length > 0) {
311
- if(arguments_a[0] === "browser") {
287
+ if(arguments_a.length >= 1 && arguments_a[0] === "browser") {
312
288
  const browserArguments_ = arguments_a.slice(1);
313
289
  {
314
290
  const _1 = browserArguments_;
315
- {
316
- if(_1.length > 0) {
317
- const mainFile_ = _1[0];
318
291
  if(_1.length === 1) {
292
+ const mainFile_ = _1[0];
319
293
  const _guard1 = ff_core_String.String_removeLast(mainFile_, ".ff");
320
294
  if(_guard1.Some) {
321
295
  const mainName_ = _guard1.value_;
322
296
  return ff_compiler_Main.BrowserCommand(mainName_)
323
- return
324
- }
325
- }
326
297
  }
327
298
  }
328
- {
329
- if(_1.length > 0) {
330
- if(_1.length > 1) {
299
+ if(_1.length >= 2) {
331
300
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must only specify a single argument to browser." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
332
- return
333
- }
334
- }
335
301
  }
336
302
  {
337
303
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must specify a Firefly file (.ff) as the argument to browser." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
338
- return
339
304
  }
340
305
  }
341
306
  return
342
307
  }
343
- }
344
- }
345
- {
346
- if(arguments_a.length > 0) {
347
- if(arguments_a[0] === "build") {
308
+ if(arguments_a.length >= 1 && arguments_a[0] === "build") {
348
309
  const buildArguments_ = arguments_a.slice(1);
349
310
  {
350
311
  const _1 = buildArguments_;
351
- {
352
- if(_1.length > 0) {
353
- const mainFile_ = _1[0];
354
312
  if(_1.length === 1) {
313
+ const mainFile_ = _1[0];
355
314
  const _guard1 = ff_core_String.String_removeLast(mainFile_, ".ff");
356
315
  if(_guard1.Some) {
357
316
  const mainName_ = _guard1.value_;
358
317
  return ff_compiler_Main.BuildCommand(mainName_)
359
- return
360
- }
361
318
  }
362
319
  }
363
- }
364
- {
365
- if(_1.length > 0) {
366
- if(_1.length > 1) {
320
+ if(_1.length >= 2) {
367
321
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must only specify a single argument to build." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
368
- return
369
- }
370
- }
371
322
  }
372
323
  {
373
324
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must specify a Firefly file (.ff) as the argument to build." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
374
- return
375
325
  }
376
326
  }
377
327
  return
378
328
  }
379
- }
380
- }
381
- {
382
- if(arguments_a.length > 0) {
383
- if(arguments_a[0] === "check") {
329
+ if(arguments_a.length >= 1 && arguments_a[0] === "check") {
384
330
  const checkArguments_ = arguments_a.slice(1);
385
331
  {
386
332
  const _1 = checkArguments_;
387
- {
388
- if(_1.length > 0) {
389
- const fileName_ = _1[0];
390
333
  if(_1.length === 1) {
391
- const _guard1 = ff_core_String.String_removeLast(fileName_, ".ff");
392
- if(_guard1.Some) {
334
+ const fileName_ = _1[0];
393
335
  return ff_compiler_Main.CheckCommand(fileName_)
394
- return
395
- }
396
- }
397
336
  }
398
- }
399
- {
400
- if(_1.length > 0) {
401
- if(_1.length > 1) {
337
+ if(_1.length >= 2) {
402
338
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must only specify a single argument to check." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
403
- return
404
339
  }
340
+ if(_1.length === 0) {
341
+ throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must specify a Firefly file (.ff) or directory as the argument to check." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
405
342
  }
406
343
  }
407
- {
408
- throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must specify a Firefly file (.ff) as the argument to build." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
409
344
  return
410
345
  }
411
- }
412
- return
413
- }
414
- }
415
- }
416
- {
417
- if(arguments_a.length > 0) {
418
- if(arguments_a[0] === "bootstrap") {
419
- if(arguments_a.length > 1) {
420
- if(arguments_a.length === 2) {
346
+ if(arguments_a.length === 2 && arguments_a[0] === "bootstrap") {
421
347
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("bootstrap takes no arguments" + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
422
- return
423
- }
424
- }
425
348
  }
426
- }
427
- }
428
- {
429
- if(arguments_a.length > 0) {
430
- if(arguments_a[0] === "bootstrap") {
431
- if(arguments_a.length === 1) {
349
+ if(arguments_a.length === 1 && arguments_a[0] === "bootstrap") {
432
350
  return ff_compiler_Main.BootstrapCommand()
433
- return
434
- }
435
- }
436
- }
437
351
  }
438
- {
439
352
  if(arguments_a.length === 0) {
440
353
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must specify a command or a main file to run." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
441
- return
442
354
  }
443
- }
444
- {
445
- if(arguments_a.length > 0) {
355
+ if(arguments_a.length >= 1) {
446
356
  const s_ = arguments_a[0];
447
357
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(((("Unknown command '" + s_) + "'") + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
448
- return
449
- }
450
- }
451
358
  }
452
359
  }
453
360
 
@@ -495,29 +402,17 @@ const compilerModulePath_ = ((ff_core_Equal.notEquals_(emitTarget_, ff_compiler_
495
402
  ? ff_core_Option.Some((await ff_core_Path.Path_slash$((await ff_core_Path.Path_slash$((await ff_core_Path.Path_slash$((await ff_core_Path.Path_slash$(fireflyPath_, "output", $task)), "js", $task)), "ff", $task)), "compiler/Builder.mjs", $task)))
496
403
  : ff_core_Option.None());
497
404
  const targetName_ = (((_1) => {
498
- {
499
405
  if(_1.EmitBuild) {
500
406
  return "build"
501
- return
502
407
  }
503
- }
504
- {
505
408
  if(_1.EmitNode) {
506
409
  return "node"
507
- return
508
- }
509
410
  }
510
- {
511
411
  if(_1.EmitBrowser) {
512
412
  return "browser"
513
- return
514
- }
515
413
  }
516
- {
517
414
  if(_1.EmitExecutable) {
518
415
  return "executable"
519
- return
520
- }
521
416
  }
522
417
  }))(emitTarget_);
523
418
  (await ff_compiler_Builder.build_$(system_, emitTarget_, mainPackagePair_, mainFile_, (((_c) => {
@@ -525,9 +420,7 @@ return ff_compiler_Dependencies.ResolvedDependencies(_c.mainPackagePair_, _c.pac
525
420
  }))(resolvedDependencies_), compilerModulePath_, (await ff_core_Path.Path_slash$((await ff_core_NodeSystem.NodeSystem_path$(system_, ".firefly", $task)), "temporary", $task)), (await ff_core_Path.Path_path$((await ff_core_Path.Path_path$((await ff_core_NodeSystem.NodeSystem_path$(system_, ".firefly", $task)), "output", $task)), targetName_, $task)), false, $task))
526
421
  }
527
422
  async function runCommand_$(command_, $task) {
528
- {
529
423
  const command_a = command_;
530
- {
531
424
  if(command_a.RunCommand) {
532
425
  const mainFile_ = command_a.mainPath_;
533
426
  const arguments_ = command_a.argument_;
@@ -538,8 +431,6 @@ const localMainFile_ = (await ff_core_Path.Path_base$((await ff_core_NodeSystem.
538
431
  (await ff_compiler_Main.importAndRun_$(fireflyPath_, "node", resolvedDependencies_.mainPackagePair_, localMainFile_, arguments_, $task))
539
432
  return
540
433
  }
541
- }
542
- {
543
434
  if(command_a.BrowserCommand) {
544
435
  const mainFile_ = command_a.mainPath_;
545
436
  const resolvedDependencies_ = (await ff_compiler_Dependencies.process_$((await ff_core_NodeSystem.NodeSystem_httpClient$(system_, $task)), (await ff_core_NodeSystem.NodeSystem_path$(system_, (mainFile_ + ".ff"), $task)), $task));
@@ -549,8 +440,6 @@ const localMainFile_ = (await ff_core_Path.Path_base$((await ff_core_NodeSystem.
549
440
  (await ff_compiler_Main.bundleForBrowser_$(system_, resolvedDependencies_.mainPackagePair_, localMainFile_, $task))
550
441
  return
551
442
  }
552
- }
553
- {
554
443
  if(command_a.BuildCommand) {
555
444
  const mainFile_ = command_a.mainPath_;
556
445
  const resolvedDependencies_ = (await ff_compiler_Dependencies.process_$((await ff_core_NodeSystem.NodeSystem_httpClient$(system_, $task)), (await ff_core_NodeSystem.NodeSystem_path$(system_, (mainFile_ + ".ff"), $task)), $task));
@@ -562,30 +451,26 @@ const localMainFile_ = (await ff_core_Path.Path_base$((await ff_core_NodeSystem.
562
451
  (await ff_compiler_Main.importAndRun_$(fireflyPath_, "build", resolvedDependencies_.mainPackagePair_, localMainFile_, [], $task))
563
452
  return
564
453
  }
565
- }
566
- {
567
454
  if(command_a.CheckCommand) {
568
455
  const filePath_ = command_a.filePath_;
569
- (await ff_compiler_Builder.check_$(system_, fireflyPath_, (await ff_core_NodeSystem.NodeSystem_path$(system_, filePath_, $task)), ff_core_Map.empty_(), ff_compiler_LspHook.disabled_(), true, $task))
570
- return
456
+ const errors_ = (await ff_compiler_Builder.check_$(system_, fireflyPath_, (await ff_core_NodeSystem.NodeSystem_path$(system_, filePath_, $task)), ff_core_Option.None(), ff_core_Map.empty_(), ff_compiler_LspHook.disabled_(), true, $task));
457
+ if((!ff_core_List.List_isEmpty(errors_))) {
458
+ throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileErrors(errors_), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors)})
571
459
  }
460
+ return
572
461
  }
573
- {
574
462
  if(command_a.BootstrapCommand) {
575
463
  const workingDirectory_ = (await ff_core_NodeSystem.NodeSystem_path$(system_, ".", $task));
576
464
  (await ff_compiler_Builder.build_$(system_, ff_compiler_JsEmitter.EmitNode(), ff_compiler_Syntax.PackagePair("ff", "compiler"), "Main", ff_compiler_Dependencies.ResolvedDependencies(ff_compiler_Syntax.PackagePair("ff", "compiler"), ff_core_List.List_toMap([], ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair), ff_core_List.List_toMap([ff_core_Pair.Pair(ff_compiler_Syntax.PackagePair("ff", "compiler"), (await ff_core_Path.Path_slash$(workingDirectory_, "compiler", $task))), ff_core_Pair.Pair(ff_compiler_Syntax.PackagePair("ff", "core"), (await ff_core_Path.Path_slash$(workingDirectory_, "core", $task)))], ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair), ff_core_List.List_toSet([], ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair)), ff_core_Option.None(), (await ff_core_Path.Path_slash$((await ff_core_Path.Path_slash$(workingDirectory_, "output", $task)), "temporary", $task)), (await ff_core_Path.Path_slash$((await ff_core_Path.Path_slash$(workingDirectory_, "output", $task)), "js", $task)), true, $task))
577
465
  return
578
466
  }
579
467
  }
580
- }
581
- }
582
- ff_core_Try.Try_grab(ff_core_Try.Try_catch(ff_core_Try.Try_catch((await ff_core_Core.try_$((async ($task) => {
468
+ ff_core_Try.Try_grab(ff_core_Try.Try_catch(ff_core_Try.Try_catch(ff_core_Try.Try_catch((await ff_core_Core.try_$((async ($task) => {
583
469
  const command_ = ff_compiler_Main.parseCommandLine_((await ff_core_NodeSystem.NodeSystem_arguments$(system_, $task)));
584
470
  return (await runCommand_$(command_, $task))
585
471
  }), $task)), ((_1, _2) => {
586
472
  {
587
473
  const message_ = _1.problem_;
588
- const error_ = _2;
589
474
  ff_core_Log.debug_(message_)
590
475
  return
591
476
  }
@@ -593,198 +478,127 @@ return
593
478
  {
594
479
  const at_ = _1.at_;
595
480
  const message_ = _1.message_;
596
- const error_ = _2;
597
481
  ff_core_Log.debug_(message_);
598
482
  ff_core_Log.debug_((((((" at " + ff_core_String.String_replace(at_.file_, "./", "")) + ":") + at_.line_) + ":") + at_.column_))
599
483
  return
600
484
  }
601
- }), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError))
485
+ }), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError), ((_1, _2) => {
486
+ {
487
+ const errors_ = _1.errors_;
488
+ ff_core_List.List_map(errors_, ((_1) => {
489
+ {
490
+ const at_ = _1.at_;
491
+ const message_ = _1.message_;
492
+ ff_core_Log.debug_(message_);
493
+ return ff_core_Log.debug_((((((" at " + ff_core_String.String_replace(at_.file_, "./", "")) + ":") + at_.line_) + ":") + at_.column_))
494
+ }
495
+ }))
496
+ return
497
+ }
498
+ }), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors))
602
499
  }
603
500
 
604
501
  export async function parseCommandLine_$(arguments_, $task) {
605
- {
606
502
  const arguments_a = arguments_;
607
- {
608
- if(arguments_a.length > 0) {
503
+ if(arguments_a.length >= 1) {
609
504
  const mainFile_ = arguments_a[0];
610
505
  const mainArguments_ = arguments_a.slice(1);
611
506
  const _guard1 = ff_core_String.String_removeLast(mainFile_, ".ff");
612
507
  if(_guard1.Some) {
613
508
  const mainName_ = _guard1.value_;
614
509
  return ff_compiler_Main.RunCommand(mainName_, mainArguments_)
615
- return
616
510
  }
617
511
  }
618
- }
619
- {
620
- if(arguments_a.length > 0) {
621
- if(arguments_a[0] === "run") {
512
+ if(arguments_a.length >= 1 && arguments_a[0] === "run") {
622
513
  const runArguments_ = arguments_a.slice(1);
623
514
  {
624
515
  const _1 = runArguments_;
625
- {
626
- if(_1.length > 0) {
516
+ if(_1.length >= 1) {
627
517
  const mainFile_ = _1[0];
628
518
  const mainArguments_ = _1.slice(1);
629
519
  const _guard1 = ff_core_String.String_removeLast(mainFile_, ".ff");
630
520
  if(_guard1.Some) {
631
521
  const mainName_ = _guard1.value_;
632
522
  return ff_compiler_Main.RunCommand(mainName_, mainArguments_)
633
- return
634
- }
635
523
  }
636
524
  }
637
525
  {
638
526
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must specify a Firefly file (.ff) as first argument to run." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
639
- return
640
527
  }
641
528
  }
642
529
  return
643
530
  }
644
- }
645
- }
646
- {
647
- if(arguments_a.length > 0) {
648
- if(arguments_a[0] === "browser") {
531
+ if(arguments_a.length >= 1 && arguments_a[0] === "browser") {
649
532
  const browserArguments_ = arguments_a.slice(1);
650
533
  {
651
534
  const _1 = browserArguments_;
652
- {
653
- if(_1.length > 0) {
654
- const mainFile_ = _1[0];
655
535
  if(_1.length === 1) {
536
+ const mainFile_ = _1[0];
656
537
  const _guard1 = ff_core_String.String_removeLast(mainFile_, ".ff");
657
538
  if(_guard1.Some) {
658
539
  const mainName_ = _guard1.value_;
659
540
  return ff_compiler_Main.BrowserCommand(mainName_)
660
- return
661
- }
662
- }
663
541
  }
664
542
  }
665
- {
666
- if(_1.length > 0) {
667
- if(_1.length > 1) {
543
+ if(_1.length >= 2) {
668
544
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must only specify a single argument to browser." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
669
- return
670
- }
671
- }
672
545
  }
673
546
  {
674
547
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must specify a Firefly file (.ff) as the argument to browser." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
675
- return
676
548
  }
677
549
  }
678
550
  return
679
551
  }
680
- }
681
- }
682
- {
683
- if(arguments_a.length > 0) {
684
- if(arguments_a[0] === "build") {
552
+ if(arguments_a.length >= 1 && arguments_a[0] === "build") {
685
553
  const buildArguments_ = arguments_a.slice(1);
686
554
  {
687
555
  const _1 = buildArguments_;
688
- {
689
- if(_1.length > 0) {
690
- const mainFile_ = _1[0];
691
556
  if(_1.length === 1) {
557
+ const mainFile_ = _1[0];
692
558
  const _guard1 = ff_core_String.String_removeLast(mainFile_, ".ff");
693
559
  if(_guard1.Some) {
694
560
  const mainName_ = _guard1.value_;
695
561
  return ff_compiler_Main.BuildCommand(mainName_)
696
- return
697
- }
698
- }
699
562
  }
700
563
  }
701
- {
702
- if(_1.length > 0) {
703
- if(_1.length > 1) {
564
+ if(_1.length >= 2) {
704
565
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must only specify a single argument to build." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
705
- return
706
- }
707
- }
708
566
  }
709
567
  {
710
568
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must specify a Firefly file (.ff) as the argument to build." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
711
- return
712
569
  }
713
570
  }
714
571
  return
715
572
  }
716
- }
717
- }
718
- {
719
- if(arguments_a.length > 0) {
720
- if(arguments_a[0] === "check") {
573
+ if(arguments_a.length >= 1 && arguments_a[0] === "check") {
721
574
  const checkArguments_ = arguments_a.slice(1);
722
575
  {
723
576
  const _1 = checkArguments_;
724
- {
725
- if(_1.length > 0) {
726
- const fileName_ = _1[0];
727
577
  if(_1.length === 1) {
728
- const _guard1 = ff_core_String.String_removeLast(fileName_, ".ff");
729
- if(_guard1.Some) {
578
+ const fileName_ = _1[0];
730
579
  return ff_compiler_Main.CheckCommand(fileName_)
731
- return
732
- }
733
- }
734
580
  }
735
- }
736
- {
737
- if(_1.length > 0) {
738
- if(_1.length > 1) {
581
+ if(_1.length >= 2) {
739
582
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must only specify a single argument to check." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
740
- return
741
- }
742
583
  }
743
- }
744
- {
745
- throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must specify a Firefly file (.ff) as the argument to build." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
746
- return
584
+ if(_1.length === 0) {
585
+ throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must specify a Firefly file (.ff) or directory as the argument to check." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
747
586
  }
748
587
  }
749
588
  return
750
589
  }
751
- }
752
- }
753
- {
754
- if(arguments_a.length > 0) {
755
- if(arguments_a[0] === "bootstrap") {
756
- if(arguments_a.length > 1) {
757
- if(arguments_a.length === 2) {
590
+ if(arguments_a.length === 2 && arguments_a[0] === "bootstrap") {
758
591
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("bootstrap takes no arguments" + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
759
- return
760
- }
761
- }
762
592
  }
763
- }
764
- }
765
- {
766
- if(arguments_a.length > 0) {
767
- if(arguments_a[0] === "bootstrap") {
768
- if(arguments_a.length === 1) {
593
+ if(arguments_a.length === 1 && arguments_a[0] === "bootstrap") {
769
594
  return ff_compiler_Main.BootstrapCommand()
770
- return
771
- }
772
- }
773
- }
774
595
  }
775
- {
776
596
  if(arguments_a.length === 0) {
777
597
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must specify a command or a main file to run." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
778
- return
779
598
  }
780
- }
781
- {
782
- if(arguments_a.length > 0) {
599
+ if(arguments_a.length >= 1) {
783
600
  const s_ = arguments_a[0];
784
601
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(((("Unknown command '" + s_) + "'") + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
785
- return
786
- }
787
- }
788
602
  }
789
603
  }
790
604
 
@@ -859,280 +673,165 @@ return ff_core_Any.internalAnyTag_((("ff:compiler/Main.CommandLineError" + "[")
859
673
 
860
674
  export const ff_core_Show_Show$ff_compiler_Main_MainCommand = {
861
675
  show_(value_) {
862
- {
863
676
  const value_a = value_;
864
- {
865
677
  if(value_a.BootstrapCommand) {
866
678
  const z_ = value_a;
867
679
  return "BootstrapCommand"
868
- return
869
- }
870
680
  }
871
- {
872
681
  if(value_a.RunCommand) {
873
682
  const z_ = value_a;
874
683
  return ((((("RunCommand" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.mainPath_)) + ", ") + ff_core_Show.ff_core_Show_Show$ff_core_List_List(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.argument_)) + ")")
875
- return
876
- }
877
684
  }
878
- {
879
685
  if(value_a.BrowserCommand) {
880
686
  const z_ = value_a;
881
687
  return ((("BrowserCommand" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.mainPath_)) + ")")
882
- return
883
688
  }
884
- }
885
- {
886
689
  if(value_a.BuildCommand) {
887
690
  const z_ = value_a;
888
691
  return ((("BuildCommand" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.mainPath_)) + ")")
889
- return
890
- }
891
692
  }
892
- {
893
693
  if(value_a.CheckCommand) {
894
694
  const z_ = value_a;
895
695
  return ((("CheckCommand" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.filePath_)) + ")")
896
- return
897
- }
898
- }
899
696
  }
900
697
  },
901
698
  async show_$(value_, $task) {
902
- {
903
699
  const value_a = value_;
904
- {
905
700
  if(value_a.BootstrapCommand) {
906
701
  const z_ = value_a;
907
702
  return "BootstrapCommand"
908
- return
909
703
  }
910
- }
911
- {
912
704
  if(value_a.RunCommand) {
913
705
  const z_ = value_a;
914
706
  return ((((("RunCommand" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.mainPath_)) + ", ") + ff_core_Show.ff_core_Show_Show$ff_core_List_List(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.argument_)) + ")")
915
- return
916
- }
917
707
  }
918
- {
919
708
  if(value_a.BrowserCommand) {
920
709
  const z_ = value_a;
921
710
  return ((("BrowserCommand" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.mainPath_)) + ")")
922
- return
923
711
  }
924
- }
925
- {
926
712
  if(value_a.BuildCommand) {
927
713
  const z_ = value_a;
928
714
  return ((("BuildCommand" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.mainPath_)) + ")")
929
- return
930
715
  }
931
- }
932
- {
933
716
  if(value_a.CheckCommand) {
934
717
  const z_ = value_a;
935
718
  return ((("CheckCommand" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.filePath_)) + ")")
936
- return
937
- }
938
- }
939
719
  }
940
720
  }
941
721
  };
942
722
 
943
723
  export const ff_core_Show_Show$ff_compiler_Main_CommandLineError = {
944
724
  show_(value_) {
945
- {
946
725
  const value_a = value_;
947
726
  {
948
727
  const z_ = value_a;
949
728
  return ((("CommandLineError" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.problem_)) + ")")
950
- return
951
- }
952
729
  }
953
730
  },
954
731
  async show_$(value_, $task) {
955
- {
956
732
  const value_a = value_;
957
733
  {
958
734
  const z_ = value_a;
959
735
  return ((("CommandLineError" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.problem_)) + ")")
960
- return
961
- }
962
736
  }
963
737
  }
964
738
  };
965
739
 
966
740
  export const ff_core_Equal_Equal$ff_compiler_Main_MainCommand = {
967
741
  equals_(x_, y_) {
968
- {
969
742
  const x_a = x_;
970
743
  const y_a = y_;
971
- {
972
- const _guard1 = (x_ === y_);
973
- if(_guard1) {
744
+ if((x_ === y_)) {
974
745
  return true
975
- return
976
746
  }
977
- }
978
- {
979
- if(x_a.RunCommand) {
747
+ if(x_a.RunCommand && y_a.RunCommand) {
980
748
  const x_ = x_a;
981
- if(y_a.RunCommand) {
982
749
  const y_ = y_a;
983
750
  return ((x_.mainPath_ === y_.mainPath_) && ff_core_List.ff_core_Equal_Equal$ff_core_List_List(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.argument_, y_.argument_))
984
- return
985
- }
986
751
  }
987
- }
988
- {
989
- if(x_a.BrowserCommand) {
752
+ if(x_a.BrowserCommand && y_a.BrowserCommand) {
990
753
  const x_ = x_a;
991
- if(y_a.BrowserCommand) {
992
754
  const y_ = y_a;
993
755
  return (x_.mainPath_ === y_.mainPath_)
994
- return
995
- }
996
756
  }
997
- }
998
- {
999
- if(x_a.BuildCommand) {
757
+ if(x_a.BuildCommand && y_a.BuildCommand) {
1000
758
  const x_ = x_a;
1001
- if(y_a.BuildCommand) {
1002
759
  const y_ = y_a;
1003
760
  return (x_.mainPath_ === y_.mainPath_)
1004
- return
1005
- }
1006
761
  }
1007
- }
1008
- {
1009
- if(x_a.CheckCommand) {
762
+ if(x_a.CheckCommand && y_a.CheckCommand) {
1010
763
  const x_ = x_a;
1011
- if(y_a.CheckCommand) {
1012
764
  const y_ = y_a;
1013
765
  return (x_.filePath_ === y_.filePath_)
1014
- return
1015
- }
1016
- }
1017
766
  }
1018
767
  {
1019
768
  return false
1020
- return
1021
- }
1022
769
  }
1023
770
  },
1024
771
  async equals_$(x_, y_, $task) {
1025
- {
1026
772
  const x_a = x_;
1027
773
  const y_a = y_;
1028
- {
1029
- const _guard1 = (x_ === y_);
1030
- if(_guard1) {
774
+ if((x_ === y_)) {
1031
775
  return true
1032
- return
1033
776
  }
1034
- }
1035
- {
1036
- if(x_a.RunCommand) {
777
+ if(x_a.RunCommand && y_a.RunCommand) {
1037
778
  const x_ = x_a;
1038
- if(y_a.RunCommand) {
1039
779
  const y_ = y_a;
1040
780
  return ((x_.mainPath_ === y_.mainPath_) && ff_core_List.ff_core_Equal_Equal$ff_core_List_List(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.argument_, y_.argument_))
1041
- return
1042
- }
1043
781
  }
1044
- }
1045
- {
1046
- if(x_a.BrowserCommand) {
782
+ if(x_a.BrowserCommand && y_a.BrowserCommand) {
1047
783
  const x_ = x_a;
1048
- if(y_a.BrowserCommand) {
1049
784
  const y_ = y_a;
1050
785
  return (x_.mainPath_ === y_.mainPath_)
1051
- return
1052
786
  }
1053
- }
1054
- }
1055
- {
1056
- if(x_a.BuildCommand) {
787
+ if(x_a.BuildCommand && y_a.BuildCommand) {
1057
788
  const x_ = x_a;
1058
- if(y_a.BuildCommand) {
1059
789
  const y_ = y_a;
1060
790
  return (x_.mainPath_ === y_.mainPath_)
1061
- return
1062
791
  }
1063
- }
1064
- }
1065
- {
1066
- if(x_a.CheckCommand) {
792
+ if(x_a.CheckCommand && y_a.CheckCommand) {
1067
793
  const x_ = x_a;
1068
- if(y_a.CheckCommand) {
1069
794
  const y_ = y_a;
1070
795
  return (x_.filePath_ === y_.filePath_)
1071
- return
1072
- }
1073
- }
1074
796
  }
1075
797
  {
1076
798
  return false
1077
- return
1078
- }
1079
799
  }
1080
800
  }
1081
801
  };
1082
802
 
1083
803
  export const ff_core_Equal_Equal$ff_compiler_Main_CommandLineError = {
1084
804
  equals_(x_, y_) {
1085
- {
1086
805
  const x_a = x_;
1087
806
  const y_a = y_;
1088
- {
1089
- const _guard1 = (x_ === y_);
1090
- if(_guard1) {
807
+ if((x_ === y_)) {
1091
808
  return true
1092
- return
1093
- }
1094
809
  }
1095
810
  {
1096
811
  return (x_.problem_ === y_.problem_)
1097
- return
1098
- }
1099
812
  }
1100
813
  },
1101
814
  async equals_$(x_, y_, $task) {
1102
- {
1103
815
  const x_a = x_;
1104
816
  const y_a = y_;
1105
- {
1106
- const _guard1 = (x_ === y_);
1107
- if(_guard1) {
817
+ if((x_ === y_)) {
1108
818
  return true
1109
- return
1110
- }
1111
819
  }
1112
820
  {
1113
821
  return (x_.problem_ === y_.problem_)
1114
- return
1115
- }
1116
822
  }
1117
823
  }
1118
824
  };
1119
825
 
1120
826
  export const ff_core_Ordering_Order$ff_compiler_Main_MainCommand = {
1121
827
  compare_(x_, y_) {
1122
- {
1123
828
  const x_a = x_;
1124
829
  const y_a = y_;
1125
- {
1126
- const _guard1 = (x_ === y_);
1127
- if(_guard1) {
830
+ if((x_ === y_)) {
1128
831
  return ff_core_Ordering.OrderingSame()
1129
- return
1130
- }
1131
832
  }
1132
- {
1133
- if(x_a.RunCommand) {
833
+ if(x_a.RunCommand && y_a.RunCommand) {
1134
834
  const x_ = x_a;
1135
- if(y_a.RunCommand) {
1136
835
  const y_ = y_a;
1137
836
  const mainPathOrdering_ = ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String.compare_(x_.mainPath_, y_.mainPath_);
1138
837
  if((mainPathOrdering_ !== ff_core_Ordering.OrderingSame())) {
@@ -1147,12 +846,8 @@ return ff_core_Ordering.OrderingSame()
1147
846
  }
1148
847
  return
1149
848
  }
1150
- }
1151
- }
1152
- {
1153
- if(x_a.BrowserCommand) {
849
+ if(x_a.BrowserCommand && y_a.BrowserCommand) {
1154
850
  const x_ = x_a;
1155
- if(y_a.BrowserCommand) {
1156
851
  const y_ = y_a;
1157
852
  const mainPathOrdering_ = ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String.compare_(x_.mainPath_, y_.mainPath_);
1158
853
  if((mainPathOrdering_ !== ff_core_Ordering.OrderingSame())) {
@@ -1162,12 +857,8 @@ return ff_core_Ordering.OrderingSame()
1162
857
  }
1163
858
  return
1164
859
  }
1165
- }
1166
- }
1167
- {
1168
- if(x_a.BuildCommand) {
860
+ if(x_a.BuildCommand && y_a.BuildCommand) {
1169
861
  const x_ = x_a;
1170
- if(y_a.BuildCommand) {
1171
862
  const y_ = y_a;
1172
863
  const mainPathOrdering_ = ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String.compare_(x_.mainPath_, y_.mainPath_);
1173
864
  if((mainPathOrdering_ !== ff_core_Ordering.OrderingSame())) {
@@ -1177,12 +868,8 @@ return ff_core_Ordering.OrderingSame()
1177
868
  }
1178
869
  return
1179
870
  }
1180
- }
1181
- }
1182
- {
1183
- if(x_a.CheckCommand) {
871
+ if(x_a.CheckCommand && y_a.CheckCommand) {
1184
872
  const x_ = x_a;
1185
- if(y_a.CheckCommand) {
1186
873
  const y_ = y_a;
1187
874
  const filePathOrdering_ = ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String.compare_(x_.filePath_, y_.filePath_);
1188
875
  if((filePathOrdering_ !== ff_core_Ordering.OrderingSame())) {
@@ -1192,64 +879,36 @@ return ff_core_Ordering.OrderingSame()
1192
879
  }
1193
880
  return
1194
881
  }
1195
- }
1196
- }
1197
882
  {
1198
883
  function number_(z_) {
1199
- {
1200
884
  const z_a = z_;
1201
- {
1202
885
  if(z_a.BootstrapCommand) {
1203
886
  return 0
1204
- return
1205
887
  }
1206
- }
1207
- {
1208
888
  if(z_a.RunCommand) {
1209
889
  return 1
1210
- return
1211
- }
1212
890
  }
1213
- {
1214
891
  if(z_a.BrowserCommand) {
1215
892
  return 2
1216
- return
1217
- }
1218
893
  }
1219
- {
1220
894
  if(z_a.BuildCommand) {
1221
895
  return 3
1222
- return
1223
896
  }
1224
- }
1225
- {
1226
897
  if(z_a.CheckCommand) {
1227
898
  return 4
1228
- return
1229
- }
1230
- }
1231
899
  }
1232
900
  }
1233
901
  return ff_core_Ordering.ff_core_Ordering_Order$ff_core_Int_Int.compare_(number_(x_), number_(y_))
1234
- return
1235
- }
1236
902
  }
1237
903
  },
1238
904
  async compare_$(x_, y_, $task) {
1239
- {
1240
905
  const x_a = x_;
1241
906
  const y_a = y_;
1242
- {
1243
- const _guard1 = (x_ === y_);
1244
- if(_guard1) {
907
+ if((x_ === y_)) {
1245
908
  return ff_core_Ordering.OrderingSame()
1246
- return
1247
- }
1248
909
  }
1249
- {
1250
- if(x_a.RunCommand) {
910
+ if(x_a.RunCommand && y_a.RunCommand) {
1251
911
  const x_ = x_a;
1252
- if(y_a.RunCommand) {
1253
912
  const y_ = y_a;
1254
913
  const mainPathOrdering_ = ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String.compare_(x_.mainPath_, y_.mainPath_);
1255
914
  if((mainPathOrdering_ !== ff_core_Ordering.OrderingSame())) {
@@ -1264,12 +923,8 @@ return ff_core_Ordering.OrderingSame()
1264
923
  }
1265
924
  return
1266
925
  }
1267
- }
1268
- }
1269
- {
1270
- if(x_a.BrowserCommand) {
926
+ if(x_a.BrowserCommand && y_a.BrowserCommand) {
1271
927
  const x_ = x_a;
1272
- if(y_a.BrowserCommand) {
1273
928
  const y_ = y_a;
1274
929
  const mainPathOrdering_ = ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String.compare_(x_.mainPath_, y_.mainPath_);
1275
930
  if((mainPathOrdering_ !== ff_core_Ordering.OrderingSame())) {
@@ -1279,12 +934,8 @@ return ff_core_Ordering.OrderingSame()
1279
934
  }
1280
935
  return
1281
936
  }
1282
- }
1283
- }
1284
- {
1285
- if(x_a.BuildCommand) {
937
+ if(x_a.BuildCommand && y_a.BuildCommand) {
1286
938
  const x_ = x_a;
1287
- if(y_a.BuildCommand) {
1288
939
  const y_ = y_a;
1289
940
  const mainPathOrdering_ = ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String.compare_(x_.mainPath_, y_.mainPath_);
1290
941
  if((mainPathOrdering_ !== ff_core_Ordering.OrderingSame())) {
@@ -1294,12 +945,8 @@ return ff_core_Ordering.OrderingSame()
1294
945
  }
1295
946
  return
1296
947
  }
1297
- }
1298
- }
1299
- {
1300
- if(x_a.CheckCommand) {
948
+ if(x_a.CheckCommand && y_a.CheckCommand) {
1301
949
  const x_ = x_a;
1302
- if(y_a.CheckCommand) {
1303
950
  const y_ = y_a;
1304
951
  const filePathOrdering_ = ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String.compare_(x_.filePath_, y_.filePath_);
1305
952
  if((filePathOrdering_ !== ff_core_Ordering.OrderingSame())) {
@@ -1309,62 +956,36 @@ return ff_core_Ordering.OrderingSame()
1309
956
  }
1310
957
  return
1311
958
  }
1312
- }
1313
- }
1314
959
  {
1315
960
  function number_(z_) {
1316
- {
1317
961
  const z_a = z_;
1318
- {
1319
962
  if(z_a.BootstrapCommand) {
1320
963
  return 0
1321
- return
1322
- }
1323
964
  }
1324
- {
1325
965
  if(z_a.RunCommand) {
1326
966
  return 1
1327
- return
1328
967
  }
1329
- }
1330
- {
1331
968
  if(z_a.BrowserCommand) {
1332
969
  return 2
1333
- return
1334
- }
1335
970
  }
1336
- {
1337
971
  if(z_a.BuildCommand) {
1338
972
  return 3
1339
- return
1340
- }
1341
973
  }
1342
- {
1343
974
  if(z_a.CheckCommand) {
1344
975
  return 4
1345
- return
1346
- }
1347
- }
1348
976
  }
1349
977
  }
1350
978
  return ff_core_Ordering.ff_core_Ordering_Order$ff_core_Int_Int.compare_(number_(x_), number_(y_))
1351
- return
1352
- }
1353
979
  }
1354
980
  }
1355
981
  };
1356
982
 
1357
983
  export const ff_core_Ordering_Order$ff_compiler_Main_CommandLineError = {
1358
984
  compare_(x_, y_) {
1359
- {
1360
985
  const x_a = x_;
1361
986
  const y_a = y_;
1362
- {
1363
- const _guard1 = (x_ === y_);
1364
- if(_guard1) {
987
+ if((x_ === y_)) {
1365
988
  return ff_core_Ordering.OrderingSame()
1366
- return
1367
- }
1368
989
  }
1369
990
  {
1370
991
  const problemOrdering_ = ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String.compare_(x_.problem_, y_.problem_);
@@ -1375,18 +996,12 @@ return ff_core_Ordering.OrderingSame()
1375
996
  }
1376
997
  return
1377
998
  }
1378
- }
1379
999
  },
1380
1000
  async compare_$(x_, y_, $task) {
1381
- {
1382
1001
  const x_a = x_;
1383
1002
  const y_a = y_;
1384
- {
1385
- const _guard1 = (x_ === y_);
1386
- if(_guard1) {
1003
+ if((x_ === y_)) {
1387
1004
  return ff_core_Ordering.OrderingSame()
1388
- return
1389
- }
1390
1005
  }
1391
1006
  {
1392
1007
  const problemOrdering_ = ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String.compare_(x_.problem_, y_.problem_);
@@ -1398,15 +1013,12 @@ return ff_core_Ordering.OrderingSame()
1398
1013
  return
1399
1014
  }
1400
1015
  }
1401
- }
1402
1016
  };
1403
1017
 
1404
1018
  export const ff_core_Serializable_Serializable$ff_compiler_Main_MainCommand = {
1405
1019
  serializeUsing_(serialization_, value_) {
1406
- {
1407
1020
  const serialization_a = serialization_;
1408
1021
  const value_a = value_;
1409
- {
1410
1022
  if(value_a.BootstrapCommand) {
1411
1023
  const v_ = value_a;
1412
1024
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 33), 0);
@@ -1415,8 +1027,6 @@ ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, 0
1415
1027
  serialization_.offset_ += 1
1416
1028
  return
1417
1029
  }
1418
- }
1419
- {
1420
1030
  if(value_a.RunCommand) {
1421
1031
  const v_ = value_a;
1422
1032
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 27), 0);
@@ -1427,8 +1037,6 @@ ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.ser
1427
1037
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).serializeUsing_(serialization_, v_.argument_)
1428
1038
  return
1429
1039
  }
1430
- }
1431
- {
1432
1040
  if(value_a.BrowserCommand) {
1433
1041
  const v_ = value_a;
1434
1042
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 31), 0);
@@ -1438,8 +1046,6 @@ serialization_.offset_ += 1;
1438
1046
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.serializeUsing_(serialization_, v_.mainPath_)
1439
1047
  return
1440
1048
  }
1441
- }
1442
- {
1443
1049
  if(value_a.BuildCommand) {
1444
1050
  const v_ = value_a;
1445
1051
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
@@ -1449,8 +1055,6 @@ serialization_.offset_ += 1;
1449
1055
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.serializeUsing_(serialization_, v_.mainPath_)
1450
1056
  return
1451
1057
  }
1452
- }
1453
- {
1454
1058
  if(value_a.CheckCommand) {
1455
1059
  const v_ = value_a;
1456
1060
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
@@ -1460,60 +1064,40 @@ serialization_.offset_ += 1;
1460
1064
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.serializeUsing_(serialization_, v_.filePath_)
1461
1065
  return
1462
1066
  }
1463
- }
1464
- }
1465
1067
  },
1466
1068
  deserializeUsing_(serialization_) {
1467
1069
  const variantIndex_ = ff_core_Buffer.Buffer_grabUint8(serialization_.buffer_, serialization_.offset_);
1468
1070
  serialization_.offset_ += 1;
1469
1071
  {
1470
1072
  const _1 = variantIndex_;
1471
- {
1472
1073
  if(_1 === 0) {
1473
1074
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 33), 0);
1474
1075
  return ff_compiler_Main.BootstrapCommand()
1475
- return
1476
- }
1477
1076
  }
1478
- {
1479
1077
  if(_1 === 1) {
1480
1078
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 27), 0);
1481
1079
  return ff_compiler_Main.RunCommand(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_))
1482
- return
1483
1080
  }
1484
- }
1485
- {
1486
1081
  if(_1 === 2) {
1487
1082
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 31), 0);
1488
1083
  return ff_compiler_Main.BrowserCommand(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_))
1489
- return
1490
- }
1491
1084
  }
1492
- {
1493
1085
  if(_1 === 3) {
1494
1086
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
1495
1087
  return ff_compiler_Main.BuildCommand(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_))
1496
- return
1497
1088
  }
1498
- }
1499
- {
1500
1089
  if(_1 === 4) {
1501
1090
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
1502
1091
  return ff_compiler_Main.CheckCommand(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_))
1503
- return
1504
- }
1505
1092
  }
1506
1093
  {
1507
1094
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_core_Serializable.DeserializationChecksumException(), ff_core_Serializable.ff_core_Any_HasAnyTag$ff_core_Serializable_DeserializationChecksumException)})
1508
- return
1509
1095
  }
1510
1096
  }
1511
1097
  },
1512
1098
  async serializeUsing_$(serialization_, value_, $task) {
1513
- {
1514
1099
  const serialization_a = serialization_;
1515
1100
  const value_a = value_;
1516
- {
1517
1101
  if(value_a.BootstrapCommand) {
1518
1102
  const v_ = value_a;
1519
1103
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 33), 0);
@@ -1522,8 +1106,6 @@ ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, 0
1522
1106
  serialization_.offset_ += 1
1523
1107
  return
1524
1108
  }
1525
- }
1526
- {
1527
1109
  if(value_a.RunCommand) {
1528
1110
  const v_ = value_a;
1529
1111
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 27), 0);
@@ -1534,8 +1116,6 @@ ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.ser
1534
1116
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).serializeUsing_(serialization_, v_.argument_)
1535
1117
  return
1536
1118
  }
1537
- }
1538
- {
1539
1119
  if(value_a.BrowserCommand) {
1540
1120
  const v_ = value_a;
1541
1121
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 31), 0);
@@ -1545,8 +1125,6 @@ serialization_.offset_ += 1;
1545
1125
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.serializeUsing_(serialization_, v_.mainPath_)
1546
1126
  return
1547
1127
  }
1548
- }
1549
- {
1550
1128
  if(value_a.BuildCommand) {
1551
1129
  const v_ = value_a;
1552
1130
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
@@ -1556,8 +1134,6 @@ serialization_.offset_ += 1;
1556
1134
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.serializeUsing_(serialization_, v_.mainPath_)
1557
1135
  return
1558
1136
  }
1559
- }
1560
- {
1561
1137
  if(value_a.CheckCommand) {
1562
1138
  const v_ = value_a;
1563
1139
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
@@ -1567,52 +1143,34 @@ serialization_.offset_ += 1;
1567
1143
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.serializeUsing_(serialization_, v_.filePath_)
1568
1144
  return
1569
1145
  }
1570
- }
1571
- }
1572
1146
  },
1573
1147
  async deserializeUsing_$(serialization_, $task) {
1574
1148
  const variantIndex_ = ff_core_Buffer.Buffer_grabUint8(serialization_.buffer_, serialization_.offset_);
1575
1149
  serialization_.offset_ += 1;
1576
1150
  {
1577
1151
  const _1 = variantIndex_;
1578
- {
1579
1152
  if(_1 === 0) {
1580
1153
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 33), 0);
1581
1154
  return ff_compiler_Main.BootstrapCommand()
1582
- return
1583
1155
  }
1584
- }
1585
- {
1586
1156
  if(_1 === 1) {
1587
1157
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 27), 0);
1588
1158
  return ff_compiler_Main.RunCommand(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_))
1589
- return
1590
- }
1591
1159
  }
1592
- {
1593
1160
  if(_1 === 2) {
1594
1161
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 31), 0);
1595
1162
  return ff_compiler_Main.BrowserCommand(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_))
1596
- return
1597
- }
1598
1163
  }
1599
- {
1600
1164
  if(_1 === 3) {
1601
1165
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
1602
1166
  return ff_compiler_Main.BuildCommand(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_))
1603
- return
1604
1167
  }
1605
- }
1606
- {
1607
1168
  if(_1 === 4) {
1608
1169
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
1609
1170
  return ff_compiler_Main.CheckCommand(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_))
1610
- return
1611
- }
1612
1171
  }
1613
1172
  {
1614
1173
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_core_Serializable.DeserializationChecksumException(), ff_core_Serializable.ff_core_Any_HasAnyTag$ff_core_Serializable_DeserializationChecksumException)})
1615
- return
1616
1174
  }
1617
1175
  }
1618
1176
  }
@@ -1620,7 +1178,6 @@ return
1620
1178
 
1621
1179
  export const ff_core_Serializable_Serializable$ff_compiler_Main_CommandLineError = {
1622
1180
  serializeUsing_(serialization_, value_) {
1623
- {
1624
1181
  const serialization_a = serialization_;
1625
1182
  const value_a = value_;
1626
1183
  {
@@ -1632,28 +1189,22 @@ serialization_.offset_ += 1;
1632
1189
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.serializeUsing_(serialization_, v_.problem_)
1633
1190
  return
1634
1191
  }
1635
- }
1636
1192
  },
1637
1193
  deserializeUsing_(serialization_) {
1638
1194
  const variantIndex_ = ff_core_Buffer.Buffer_grabUint8(serialization_.buffer_, serialization_.offset_);
1639
1195
  serialization_.offset_ += 1;
1640
1196
  {
1641
1197
  const _1 = variantIndex_;
1642
- {
1643
1198
  if(_1 === 0) {
1644
1199
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 33), 0);
1645
1200
  return ff_compiler_Main.CommandLineError(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_))
1646
- return
1647
- }
1648
1201
  }
1649
1202
  {
1650
1203
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_core_Serializable.DeserializationChecksumException(), ff_core_Serializable.ff_core_Any_HasAnyTag$ff_core_Serializable_DeserializationChecksumException)})
1651
- return
1652
1204
  }
1653
1205
  }
1654
1206
  },
1655
1207
  async serializeUsing_$(serialization_, value_, $task) {
1656
- {
1657
1208
  const serialization_a = serialization_;
1658
1209
  const value_a = value_;
1659
1210
  {
@@ -1665,23 +1216,18 @@ serialization_.offset_ += 1;
1665
1216
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.serializeUsing_(serialization_, v_.problem_)
1666
1217
  return
1667
1218
  }
1668
- }
1669
1219
  },
1670
1220
  async deserializeUsing_$(serialization_, $task) {
1671
1221
  const variantIndex_ = ff_core_Buffer.Buffer_grabUint8(serialization_.buffer_, serialization_.offset_);
1672
1222
  serialization_.offset_ += 1;
1673
1223
  {
1674
1224
  const _1 = variantIndex_;
1675
- {
1676
1225
  if(_1 === 0) {
1677
1226
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 33), 0);
1678
1227
  return ff_compiler_Main.CommandLineError(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_))
1679
- return
1680
- }
1681
1228
  }
1682
1229
  {
1683
1230
  throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_core_Serializable.DeserializationChecksumException(), ff_core_Serializable.ff_core_Any_HasAnyTag$ff_core_Serializable_DeserializationChecksumException)})
1684
- return
1685
1231
  }
1686
1232
  }
1687
1233
  }