firefly-compiler 0.5.15 → 0.5.17
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.
- package/compiler/Builder.ff +15 -1
- package/compiler/Compiler.ff +8 -3
- package/compiler/JsEmitter.ff +6 -6
- package/output/js/ff/compiler/Builder.mjs +34 -2
- package/output/js/ff/compiler/Compiler.mjs +8 -4
- package/output/js/ff/compiler/Inference.mjs +10 -10
- package/output/js/ff/compiler/JsEmitter.mjs +274 -274
- package/output/js/ff/compiler/Parser.mjs +4 -4
- package/output/js/ff/compiler/Resolver.mjs +2 -2
- package/output/js/ff/compiler/Unification.mjs +4 -4
- package/output/js/ff/compiler/Workspace.mjs +2 -2
- package/output/js/ff/core/List.mjs +2 -2
- package/package.json +1 -1
- package/vscode/package.json +1 -1
package/compiler/Builder.ff
CHANGED
|
@@ -44,6 +44,7 @@ build(
|
|
|
44
44
|
if(printMeasurements) {compiler.printMeasurements()}
|
|
45
45
|
resolvedDependencies.packagePaths.each {packagePair, packagePath =>
|
|
46
46
|
resolvedDependencies.packages.get(packagePair).each {packageInfo =>
|
|
47
|
+
processNodeModules(system, jsPathFile, packagePath, packageInfo)
|
|
47
48
|
processIncludes(jsPathFile, packagePath, packageInfo)
|
|
48
49
|
}
|
|
49
50
|
}
|
|
@@ -57,7 +58,7 @@ build(
|
|
|
57
58
|
|
|
58
59
|
}
|
|
59
60
|
|
|
60
|
-
processIncludes(jsPathFile: Path, packagePath: Path, info: PackageInfo)
|
|
61
|
+
processIncludes(jsPathFile: Path, packagePath: Path, info: PackageInfo) {
|
|
61
62
|
info.includes.each {include =>
|
|
62
63
|
let fromPath = packagePath.slash(".firefly").slash("include").slash(include.path)
|
|
63
64
|
let toPath = jsPathFile.slash(info.package.packagePair.groupName("/")).slash(include.path)
|
|
@@ -65,6 +66,19 @@ processIncludes(jsPathFile: Path, packagePath: Path, info: PackageInfo): Unit {
|
|
|
65
66
|
}
|
|
66
67
|
}
|
|
67
68
|
|
|
69
|
+
processNodeModules(system: NodeSystem, jsPathFile: Path, packagePath: Path, info: PackageInfo) {
|
|
70
|
+
if(info.includes.any {_.path == "node_modules"}) {
|
|
71
|
+
let includePath = packagePath.slash(".firefly").slash("include")
|
|
72
|
+
let nodeModules = includePath.slash("node_modules")
|
|
73
|
+
let packageJson = includePath.slash("package.json")
|
|
74
|
+
let packageLockJson = includePath.slash("package-lock.json")
|
|
75
|
+
if(!nodeModules.exists() && packageJson.exists() && packageLockJson.exists()) {
|
|
76
|
+
system.writeErrorLine("Running npm ci --no-bin-links in " + includePath.absolute())
|
|
77
|
+
system.execute("npm", ["ci", "--no-bin-links"], directory = Some(includePath))
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
68
82
|
buildViaBuildSystem(system: NodeSystem, fireflyPath: Path, mainFile: String, target: String) {
|
|
69
83
|
let resolvedDependencies = Dependencies.process(
|
|
70
84
|
system.httpClient()
|
package/compiler/Compiler.ff
CHANGED
|
@@ -216,9 +216,14 @@ extend self: Compiler {
|
|
|
216
216
|
}
|
|
217
217
|
|
|
218
218
|
let allModules = [module, ...otherModules]
|
|
219
|
-
let js =
|
|
220
|
-
|
|
221
|
-
.
|
|
219
|
+
let js = JsEmitter.new(
|
|
220
|
+
otherModules = allModules
|
|
221
|
+
emitTarget = self.emitTarget
|
|
222
|
+
isMainModule = isMainModule
|
|
223
|
+
compilerModuleFileUrl = self.compilerModulePath.map {_.url()}
|
|
224
|
+
packagePair = packagePair
|
|
225
|
+
moduleName = moduleName
|
|
226
|
+
).emitModule(packagePair, module)
|
|
222
227
|
let jsPath = self.jsOutputPath.slash(packagePair.group).slash(packagePair.name)
|
|
223
228
|
let jsFile = jsPath.slash(moduleName + ".mjs")
|
|
224
229
|
jsPath.createDirectory(createParentDirectories = True)
|
package/compiler/JsEmitter.ff
CHANGED
|
@@ -2,12 +2,12 @@ import Syntax
|
|
|
2
2
|
import Patterns
|
|
3
3
|
import JsImporter
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
class JsEmitter(
|
|
6
6
|
otherModules: Map[String, Module]
|
|
7
7
|
jsImporter: JsImporter
|
|
8
8
|
emitTarget: EmitTarget
|
|
9
9
|
isMainModule: Bool
|
|
10
|
-
|
|
10
|
+
compilerModuleFileUrl: Option[String]
|
|
11
11
|
packagePair: PackagePair
|
|
12
12
|
moduleName: String
|
|
13
13
|
mutable emittingAsync: Bool
|
|
@@ -25,7 +25,7 @@ new(
|
|
|
25
25
|
otherModules: List[Module]
|
|
26
26
|
emitTarget: EmitTarget
|
|
27
27
|
isMainModule: Bool
|
|
28
|
-
|
|
28
|
+
compilerModuleFileUrl: Option[String]
|
|
29
29
|
packagePair: PackagePair
|
|
30
30
|
moduleName: String
|
|
31
31
|
): JsEmitter {
|
|
@@ -37,7 +37,7 @@ new(
|
|
|
37
37
|
jsImporter = JsImporter.new()
|
|
38
38
|
emitTarget = emitTarget
|
|
39
39
|
isMainModule = isMainModule
|
|
40
|
-
|
|
40
|
+
compilerModuleFileUrl = compilerModuleFileUrl
|
|
41
41
|
packagePair = packagePair
|
|
42
42
|
moduleName = moduleName
|
|
43
43
|
emittingAsync = False
|
|
@@ -56,7 +56,7 @@ extend self: JsEmitter {
|
|
|
56
56
|
"import * as " + packagePair.groupName("_") + "_" + module.file.dropLast(3) + " " +
|
|
57
57
|
"from \"../../" + packagePair.groupName("/") + "/" + module.file.dropLast(3) + ".mjs\""
|
|
58
58
|
let imports = [
|
|
59
|
-
self.
|
|
59
|
+
self.compilerModuleFileUrl.map {"import * as $firefly_compiler from '" + _ + "'"}.toList()
|
|
60
60
|
module.imports.sortBy {i => Pair(i.package, i.file) }.map {self.emitImportDefinition(_)}
|
|
61
61
|
].flatten()
|
|
62
62
|
let parts = [
|
|
@@ -696,7 +696,7 @@ extend self: JsEmitter {
|
|
|
696
696
|
MatchCase(_, [PVariable(_, name)], [], body)
|
|
697
697
|
]))]} =>
|
|
698
698
|
Some(
|
|
699
|
-
"for(
|
|
699
|
+
"for(const for_o = " + self.emitTerm(list, async) + "; for_o.Some;) {\n" +
|
|
700
700
|
name.map {"const " + escapeKeyword(_) + " = for_o.value_;\n"}.else {""} +
|
|
701
701
|
self.emitStatements(body, last, async) +
|
|
702
702
|
"\nbreak\n}"
|
|
@@ -137,8 +137,9 @@ if(printMeasurements_) {
|
|
|
137
137
|
ff_compiler_Compiler.Compiler_printMeasurements(compiler_)
|
|
138
138
|
};
|
|
139
139
|
ff_core_Map.Map_each(resolvedDependencies_.packagePaths_, ((packagePair_, packagePath_) => {
|
|
140
|
-
for(
|
|
140
|
+
for(const for_o = ff_core_Map.Map_get(resolvedDependencies_.packages_, packagePair_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair); for_o.Some;) {
|
|
141
141
|
const packageInfo_ = for_o.value_;
|
|
142
|
+
ff_compiler_Builder.processNodeModules_(system_, jsPathFile_, packagePath_, packageInfo_);
|
|
142
143
|
ff_compiler_Builder.processIncludes_(jsPathFile_, packagePath_, packageInfo_)
|
|
143
144
|
break
|
|
144
145
|
}
|
|
@@ -162,6 +163,21 @@ ff_core_Path.Path_copyTo(fromPath_, toPath_, 0, 100)
|
|
|
162
163
|
}
|
|
163
164
|
}
|
|
164
165
|
|
|
166
|
+
export function processNodeModules_(system_, jsPathFile_, packagePath_, info_) {
|
|
167
|
+
if(ff_core_List.List_any(info_.includes_, ((_w1) => {
|
|
168
|
+
return (_w1.path_ === "node_modules")
|
|
169
|
+
}))) {
|
|
170
|
+
const includePath_ = ff_core_Path.Path_slash(ff_core_Path.Path_slash(packagePath_, ".firefly"), "include");
|
|
171
|
+
const nodeModules_ = ff_core_Path.Path_slash(includePath_, "node_modules");
|
|
172
|
+
const packageJson_ = ff_core_Path.Path_slash(includePath_, "package.json");
|
|
173
|
+
const packageLockJson_ = ff_core_Path.Path_slash(includePath_, "package-lock.json");
|
|
174
|
+
if((((!ff_core_Path.Path_exists(nodeModules_, false, false, false)) && ff_core_Path.Path_exists(packageJson_, false, false, false)) && ff_core_Path.Path_exists(packageLockJson_, false, false, false))) {
|
|
175
|
+
ff_core_NodeSystem.NodeSystem_writeErrorLine(system_, ("Running npm ci --no-bin-links in " + ff_core_Path.Path_absolute(includePath_)));
|
|
176
|
+
ff_core_NodeSystem.NodeSystem_execute(system_, "npm", ["ci", "--no-bin-links"], ff_core_Buffer.new_(0, false), ff_core_Option.Some(includePath_), ff_core_Option.None(), 16777216, 9, true)
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
165
181
|
export function buildViaBuildSystem_(system_, fireflyPath_, mainFile_, target_) {
|
|
166
182
|
const resolvedDependencies_ = ff_compiler_Dependencies.process_(ff_core_NodeSystem.NodeSystem_httpClient(system_), ff_compiler_DependencyLock.new_(ff_core_NodeSystem.NodeSystem_mainTask(system_)), ff_core_NodeSystem.NodeSystem_path(system_, mainFile_));
|
|
167
183
|
const fixedPackagePaths_ = (ff_core_Map.Map_contains(resolvedDependencies_.packagePaths_, ff_compiler_Syntax.PackagePair("ff", "core"), ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair)
|
|
@@ -336,8 +352,9 @@ if(printMeasurements_) {
|
|
|
336
352
|
(await ff_compiler_Compiler.Compiler_printMeasurements$(compiler_, $task))
|
|
337
353
|
};
|
|
338
354
|
(await ff_core_Map.Map_each$(resolvedDependencies_.packagePaths_, (async (packagePair_, packagePath_, $task) => {
|
|
339
|
-
for(
|
|
355
|
+
for(const for_o = ff_core_Map.Map_get(resolvedDependencies_.packages_, packagePair_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair); for_o.Some;) {
|
|
340
356
|
const packageInfo_ = for_o.value_;
|
|
357
|
+
(await ff_compiler_Builder.processNodeModules_$(system_, jsPathFile_, packagePath_, packageInfo_, $task));
|
|
341
358
|
(await ff_compiler_Builder.processIncludes_$(jsPathFile_, packagePath_, packageInfo_, $task))
|
|
342
359
|
break
|
|
343
360
|
}
|
|
@@ -361,6 +378,21 @@ const toPath_ = (await ff_core_Path.Path_slash$((await ff_core_Path.Path_slash$(
|
|
|
361
378
|
}
|
|
362
379
|
}
|
|
363
380
|
|
|
381
|
+
export async function processNodeModules_$(system_, jsPathFile_, packagePath_, info_, $task) {
|
|
382
|
+
if(ff_core_List.List_any(info_.includes_, ((_w1) => {
|
|
383
|
+
return (_w1.path_ === "node_modules")
|
|
384
|
+
}))) {
|
|
385
|
+
const includePath_ = (await ff_core_Path.Path_slash$((await ff_core_Path.Path_slash$(packagePath_, ".firefly", $task)), "include", $task));
|
|
386
|
+
const nodeModules_ = (await ff_core_Path.Path_slash$(includePath_, "node_modules", $task));
|
|
387
|
+
const packageJson_ = (await ff_core_Path.Path_slash$(includePath_, "package.json", $task));
|
|
388
|
+
const packageLockJson_ = (await ff_core_Path.Path_slash$(includePath_, "package-lock.json", $task));
|
|
389
|
+
if((((!(await ff_core_Path.Path_exists$(nodeModules_, false, false, false, $task))) && (await ff_core_Path.Path_exists$(packageJson_, false, false, false, $task))) && (await ff_core_Path.Path_exists$(packageLockJson_, false, false, false, $task)))) {
|
|
390
|
+
(await ff_core_NodeSystem.NodeSystem_writeErrorLine$(system_, ("Running npm ci --no-bin-links in " + (await ff_core_Path.Path_absolute$(includePath_, $task))), $task));
|
|
391
|
+
(await ff_core_NodeSystem.NodeSystem_execute$(system_, "npm", ["ci", "--no-bin-links"], ff_core_Buffer.new_(0, false), ff_core_Option.Some(includePath_), ff_core_Option.None(), 16777216, 9, true, $task))
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
|
|
364
396
|
export async function buildViaBuildSystem_$(system_, fireflyPath_, mainFile_, target_, $task) {
|
|
365
397
|
const resolvedDependencies_ = (await ff_compiler_Dependencies.process_$((await ff_core_NodeSystem.NodeSystem_httpClient$(system_, $task)), (await ff_compiler_DependencyLock.new_$((await ff_core_NodeSystem.NodeSystem_mainTask$(system_, $task)), $task)), (await ff_core_NodeSystem.NodeSystem_path$(system_, mainFile_, $task)), $task));
|
|
366
398
|
const fixedPackagePaths_ = (ff_core_Map.Map_contains(resolvedDependencies_.packagePaths_, ff_compiler_Syntax.PackagePair("ff", "core"), ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair)
|
|
@@ -171,7 +171,7 @@ return ff_compiler_ModuleCache.ModuleCache_cacheParsedModule(self_.cache_, self_
|
|
|
171
171
|
const packageName_ = ff_compiler_Syntax.PackagePair_groupName(packagePair_, ":");
|
|
172
172
|
return ff_compiler_Compiler.Compiler_measure(self_, "Parse", packagePair_, moduleName_, (() => {
|
|
173
173
|
const code_ = ff_core_Option.Option_else(ff_core_Map.Map_get(self_.virtualFiles_, ff_core_Path.Path_absolute(path_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), (() => {
|
|
174
|
-
for(
|
|
174
|
+
for(const for_o = importedAt_; for_o.Some;) {
|
|
175
175
|
const at_ = for_o.value_;
|
|
176
176
|
if((!ff_core_Path.Path_exists(path_, false, false, false))) {
|
|
177
177
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, ((("Imported module not found: " + packageName_) + "/") + moduleName_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
@@ -265,7 +265,9 @@ ff_compiler_Compiler.Compiler_emit(self_, i_.packagePair_, newModuleName_, false
|
|
|
265
265
|
return ff_compiler_Compiler.Compiler_infer(self_, i_.packagePair_, newModuleName_)
|
|
266
266
|
}));
|
|
267
267
|
const allModules_ = [module_, ...otherModules_];
|
|
268
|
-
const js_ = ff_compiler_JsEmitter.JsEmitter_emitModule(ff_compiler_JsEmitter.new_(allModules_, self_.emitTarget_, isMainModule_, self_.compilerModulePath_,
|
|
268
|
+
const js_ = ff_compiler_JsEmitter.JsEmitter_emitModule(ff_compiler_JsEmitter.new_(allModules_, self_.emitTarget_, isMainModule_, ff_core_Option.Option_map(self_.compilerModulePath_, ((_w1) => {
|
|
269
|
+
return ff_core_Path.Path_url(_w1)
|
|
270
|
+
})), packagePair_, moduleName_), packagePair_, module_);
|
|
269
271
|
const jsPath_ = ff_core_Path.Path_slash(ff_core_Path.Path_slash(self_.jsOutputPath_, packagePair_.group_), packagePair_.name_);
|
|
270
272
|
const jsFile_ = ff_core_Path.Path_slash(jsPath_, (moduleName_ + ".mjs"));
|
|
271
273
|
ff_core_Path.Path_createDirectory(jsPath_, true);
|
|
@@ -304,7 +306,7 @@ return (await ff_compiler_ModuleCache.ModuleCache_cacheParsedModule$(self_.cache
|
|
|
304
306
|
const packageName_ = ff_compiler_Syntax.PackagePair_groupName(packagePair_, ":");
|
|
305
307
|
return (await ff_compiler_Compiler.Compiler_measure$(self_, "Parse", packagePair_, moduleName_, (async ($task) => {
|
|
306
308
|
const code_ = (await ff_core_Option.Option_else$(ff_core_Map.Map_get(self_.virtualFiles_, (await ff_core_Path.Path_absolute$(path_, $task)), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), (async ($task) => {
|
|
307
|
-
for(
|
|
309
|
+
for(const for_o = importedAt_; for_o.Some;) {
|
|
308
310
|
const at_ = for_o.value_;
|
|
309
311
|
if((!(await ff_core_Path.Path_exists$(path_, false, false, false, $task)))) {
|
|
310
312
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, ((("Imported module not found: " + packageName_) + "/") + moduleName_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
@@ -398,7 +400,9 @@ const newModuleName_ = ff_core_String.String_dropLast(i_.file_, ff_core_String.S
|
|
|
398
400
|
return (await ff_compiler_Compiler.Compiler_infer$(self_, i_.packagePair_, newModuleName_, $task))
|
|
399
401
|
}), $task));
|
|
400
402
|
const allModules_ = [module_, ...otherModules_];
|
|
401
|
-
const js_ =
|
|
403
|
+
const js_ = ff_compiler_JsEmitter.JsEmitter_emitModule(ff_compiler_JsEmitter.new_(allModules_, self_.emitTarget_, isMainModule_, (await ff_core_Option.Option_map$(self_.compilerModulePath_, (async (_w1, $task) => {
|
|
404
|
+
return (await ff_core_Path.Path_url$(_w1, $task))
|
|
405
|
+
}), $task)), packagePair_, moduleName_), packagePair_, module_);
|
|
402
406
|
const jsPath_ = (await ff_core_Path.Path_slash$((await ff_core_Path.Path_slash$(self_.jsOutputPath_, packagePair_.group_, $task)), packagePair_.name_, $task));
|
|
403
407
|
const jsFile_ = (await ff_core_Path.Path_slash$(jsPath_, (moduleName_ + ".mjs"), $task));
|
|
404
408
|
(await ff_core_Path.Path_createDirectory$(jsPath_, true, $task));
|
|
@@ -669,7 +669,7 @@ if(_1.EField) {
|
|
|
669
669
|
const e_ = _1;
|
|
670
670
|
const recordType_ = ff_compiler_Unification.Unification_freshUnificationVariable(self_.unification_, e_.at_);
|
|
671
671
|
if(ff_compiler_LspHook.LspHook_isAt(self_.lspHook_, term_.at_)) {
|
|
672
|
-
for(
|
|
672
|
+
for(const for_o = hookRecordTypeBox_; for_o.Some;) {
|
|
673
673
|
const _w1 = for_o.value_;
|
|
674
674
|
_w1.value_ = ff_core_Option.Some(recordType_)
|
|
675
675
|
break
|
|
@@ -1203,7 +1203,7 @@ if(_1.EField) {
|
|
|
1203
1203
|
const f_ = _1;
|
|
1204
1204
|
const recordType_ = ff_compiler_Unification.Unification_freshUnificationVariable(self_.unification_, f_.at_);
|
|
1205
1205
|
if(ff_compiler_LspHook.LspHook_isAt(self_.lspHook_, term_.at_)) {
|
|
1206
|
-
for(
|
|
1206
|
+
for(const for_o = hookRecordTypeBox_; for_o.Some;) {
|
|
1207
1207
|
const _w1 = for_o.value_;
|
|
1208
1208
|
_w1.value_ = ff_core_Option.Some(recordType_)
|
|
1209
1209
|
break
|
|
@@ -1507,7 +1507,7 @@ const arguments_ = ff_core_List.List_map(ff_core_List.List_zip(e_.arguments_, ar
|
|
|
1507
1507
|
{
|
|
1508
1508
|
const argument_ = _1.first_;
|
|
1509
1509
|
const t_ = _1.second_;
|
|
1510
|
-
for(
|
|
1510
|
+
for(const for_o = argument_.name_; for_o.Some;) {
|
|
1511
1511
|
const name_ = for_o.value_;
|
|
1512
1512
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(argument_.at_, ("Named argument not allowed here: " + name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
1513
1513
|
break
|
|
@@ -1522,7 +1522,7 @@ return ff_compiler_Syntax.Argument(_c.at_, _c.name_, ff_compiler_Inference.Infer
|
|
|
1522
1522
|
return
|
|
1523
1523
|
}
|
|
1524
1524
|
}));
|
|
1525
|
-
for(
|
|
1525
|
+
for(const for_o = ff_core_List.List_first(e_.typeArguments_); for_o.Some;) {
|
|
1526
1526
|
const typeArgument_ = for_o.value_;
|
|
1527
1527
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(typeArgument_.at_, "Type arguments not allowed here"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
1528
1528
|
break
|
|
@@ -1889,7 +1889,7 @@ return ff_core_Option.Option_contains(_w1.name_, p_.name_, ff_core_Equal.ff_core
|
|
|
1889
1889
|
{
|
|
1890
1890
|
const at_ = _1.at_;
|
|
1891
1891
|
const e_ = _1.value_;
|
|
1892
|
-
for(
|
|
1892
|
+
for(const for_o = ff_core_Array.Array_indexWhere(remainingArguments_, ((_w1) => {
|
|
1893
1893
|
return ff_core_Option.Option_contains(_w1.name_, p_.name_, ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String)
|
|
1894
1894
|
})); for_o.Some;) {
|
|
1895
1895
|
const _w1 = for_o.value_;
|
|
@@ -2531,7 +2531,7 @@ if(_1.EField) {
|
|
|
2531
2531
|
const e_ = _1;
|
|
2532
2532
|
const recordType_ = ff_compiler_Unification.Unification_freshUnificationVariable(self_.unification_, e_.at_);
|
|
2533
2533
|
if(ff_compiler_LspHook.LspHook_isAt(self_.lspHook_, term_.at_)) {
|
|
2534
|
-
for(
|
|
2534
|
+
for(const for_o = hookRecordTypeBox_; for_o.Some;) {
|
|
2535
2535
|
const _w1 = for_o.value_;
|
|
2536
2536
|
_w1.value_ = ff_core_Option.Some(recordType_)
|
|
2537
2537
|
break
|
|
@@ -3065,7 +3065,7 @@ if(_1.EField) {
|
|
|
3065
3065
|
const f_ = _1;
|
|
3066
3066
|
const recordType_ = ff_compiler_Unification.Unification_freshUnificationVariable(self_.unification_, f_.at_);
|
|
3067
3067
|
if(ff_compiler_LspHook.LspHook_isAt(self_.lspHook_, term_.at_)) {
|
|
3068
|
-
for(
|
|
3068
|
+
for(const for_o = hookRecordTypeBox_; for_o.Some;) {
|
|
3069
3069
|
const _w1 = for_o.value_;
|
|
3070
3070
|
_w1.value_ = ff_core_Option.Some(recordType_)
|
|
3071
3071
|
break
|
|
@@ -3369,7 +3369,7 @@ const arguments_ = ff_core_List.List_map(ff_core_List.List_zip(e_.arguments_, ar
|
|
|
3369
3369
|
{
|
|
3370
3370
|
const argument_ = _1.first_;
|
|
3371
3371
|
const t_ = _1.second_;
|
|
3372
|
-
for(
|
|
3372
|
+
for(const for_o = argument_.name_; for_o.Some;) {
|
|
3373
3373
|
const name_ = for_o.value_;
|
|
3374
3374
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(argument_.at_, ("Named argument not allowed here: " + name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
3375
3375
|
break
|
|
@@ -3384,7 +3384,7 @@ return ff_compiler_Syntax.Argument(_c.at_, _c.name_, ff_compiler_Inference.Infer
|
|
|
3384
3384
|
return
|
|
3385
3385
|
}
|
|
3386
3386
|
}));
|
|
3387
|
-
for(
|
|
3387
|
+
for(const for_o = ff_core_List.List_first(e_.typeArguments_); for_o.Some;) {
|
|
3388
3388
|
const typeArgument_ = for_o.value_;
|
|
3389
3389
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(typeArgument_.at_, "Type arguments not allowed here"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
3390
3390
|
break
|
|
@@ -3751,7 +3751,7 @@ return ff_core_Option.Option_contains(_w1.name_, p_.name_, ff_core_Equal.ff_core
|
|
|
3751
3751
|
{
|
|
3752
3752
|
const at_ = _1.at_;
|
|
3753
3753
|
const e_ = _1.value_;
|
|
3754
|
-
for(
|
|
3754
|
+
for(const for_o = ff_core_Array.Array_indexWhere(remainingArguments_, ((_w1) => {
|
|
3755
3755
|
return ff_core_Option.Option_contains(_w1.name_, p_.name_, ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String)
|
|
3756
3756
|
})); for_o.Some;) {
|
|
3757
3757
|
const _w1 = for_o.value_;
|