firefly-compiler 0.5.76 → 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.
- package/bin/firefly.mjs +1 -1
- package/compiler/Builder.ff +3 -1
- package/compiler/Compiler.ff +7 -3
- package/compiler/JsEmitter.ff +1564 -623
- package/compiler/Main.ff +1 -1
- package/compiler/SourceMap.ff +149 -0
- package/core/Buffer.ff +2 -1
- package/core/BuildSystem.ff +3 -1
- package/core/Js.ff +6 -0
- package/firefly.sh +1 -1
- package/fireflysite/Main.ff +2 -1
- package/output/js/ff/compiler/Builder.mjs +8 -44
- package/output/js/ff/compiler/Builder.mjs.map +181 -0
- package/output/js/ff/compiler/Compiler.mjs +23 -16
- package/output/js/ff/compiler/Compiler.mjs.map +155 -0
- package/output/js/ff/compiler/Dependencies.mjs +12 -14
- package/output/js/ff/compiler/Dependencies.mjs.map +128 -0
- package/output/js/ff/compiler/DependencyLock.mjs +1 -4
- package/output/js/ff/compiler/DependencyLock.mjs.map +22 -0
- package/output/js/ff/compiler/Deriver.mjs +10 -11
- package/output/js/ff/compiler/Deriver.mjs.map +204 -0
- package/output/js/ff/compiler/Dictionaries.mjs +12 -13
- package/output/js/ff/compiler/Dictionaries.mjs.map +183 -0
- package/output/js/ff/compiler/Environment.mjs +24 -27
- package/output/js/ff/compiler/Environment.mjs.map +141 -0
- package/output/js/ff/compiler/Inference.mjs +83 -92
- package/output/js/ff/compiler/Inference.mjs.map +355 -0
- package/output/js/ff/compiler/JsEmitter.mjs +3689 -1687
- package/output/js/ff/compiler/JsEmitter.mjs.map +423 -0
- package/output/js/ff/compiler/JsImporter.mjs +9 -12
- package/output/js/ff/compiler/JsImporter.mjs.map +52 -0
- package/output/js/ff/compiler/LspHook.mjs +17 -18
- package/output/js/ff/compiler/LspHook.mjs.map +140 -0
- package/output/js/ff/compiler/Main.mjs +57 -67
- package/output/js/ff/compiler/Main.mjs.map +226 -0
- package/output/js/ff/compiler/ModuleCache.mjs +1 -4
- package/output/js/ff/compiler/ModuleCache.mjs.map +82 -0
- package/output/js/ff/compiler/Parser.mjs +54 -57
- package/output/js/ff/compiler/Parser.mjs.map +406 -0
- package/output/js/ff/compiler/Patterns.mjs +19 -22
- package/output/js/ff/compiler/Patterns.mjs.map +119 -0
- package/output/js/ff/compiler/Resolver.mjs +40 -39
- package/output/js/ff/compiler/Resolver.mjs.map +294 -0
- package/output/js/ff/compiler/SourceMap.mjs +402 -0
- package/output/js/ff/compiler/SourceMap.mjs.map +83 -0
- package/output/js/ff/compiler/Substitution.mjs +1 -4
- package/output/js/ff/compiler/Substitution.mjs.map +138 -0
- package/output/js/ff/compiler/Syntax.mjs +250 -249
- package/output/js/ff/compiler/Syntax.mjs.map +351 -0
- package/output/js/ff/compiler/Token.mjs +17 -22
- package/output/js/ff/compiler/Token.mjs.map +113 -0
- package/output/js/ff/compiler/Tokenizer.mjs +5 -12
- package/output/js/ff/compiler/Tokenizer.mjs.map +101 -0
- package/output/js/ff/compiler/Unification.mjs +32 -33
- package/output/js/ff/compiler/Unification.mjs.map +135 -0
- package/output/js/ff/compiler/Wildcards.mjs +1 -4
- package/output/js/ff/compiler/Wildcards.mjs.map +69 -0
- package/output/js/ff/compiler/Workspace.mjs +17 -16
- package/output/js/ff/compiler/Workspace.mjs.map +96 -0
- package/output/js/ff/core/Any.mjs +1 -4
- package/output/js/ff/core/Any.mjs.map +21 -0
- package/output/js/ff/core/Array.mjs +14 -15
- package/output/js/ff/core/Array.mjs.map +90 -0
- package/output/js/ff/core/AssetSystem.mjs +1 -4
- package/output/js/ff/core/AssetSystem.mjs.map +56 -0
- package/output/js/ff/core/Atomic.mjs +1 -4
- package/output/js/ff/core/Atomic.mjs.map +24 -0
- package/output/js/ff/core/Bool.mjs +4 -9
- package/output/js/ff/core/Bool.mjs.map +19 -0
- package/output/js/ff/core/BrowserSystem.mjs +1 -8
- package/output/js/ff/core/BrowserSystem.mjs.map +47 -0
- package/output/js/ff/core/Buffer.mjs +18 -17
- package/output/js/ff/core/Buffer.mjs.map +123 -0
- package/output/js/ff/core/BuildSystem.mjs +7 -10
- package/output/js/ff/core/BuildSystem.mjs.map +87 -0
- package/output/js/ff/core/Channel.mjs +1 -4
- package/output/js/ff/core/Channel.mjs.map +67 -0
- package/output/js/ff/core/Char.mjs +1 -8
- package/output/js/ff/core/Char.mjs.map +21 -0
- package/output/js/ff/core/Core.mjs +5 -8
- package/output/js/ff/core/Core.mjs.map +40 -0
- package/output/js/ff/core/Crypto.mjs +1 -4
- package/output/js/ff/core/Crypto.mjs.map +65 -0
- package/output/js/ff/core/Date.mjs +8 -7
- package/output/js/ff/core/Date.mjs.map +168 -0
- package/output/js/ff/core/Duration.mjs +4 -9
- package/output/js/ff/core/Duration.mjs.map +18 -0
- package/output/js/ff/core/Equal.mjs +9 -14
- package/output/js/ff/core/Equal.mjs.map +22 -0
- package/output/js/ff/core/Error.mjs +1 -8
- package/output/js/ff/core/Error.mjs.map +21 -0
- package/output/js/ff/core/FileHandle.mjs +1 -8
- package/output/js/ff/core/FileHandle.mjs.map +32 -0
- package/output/js/ff/core/Float.mjs +4 -5
- package/output/js/ff/core/Float.mjs.map +93 -0
- package/output/js/ff/core/HttpClient.mjs +1 -4
- package/output/js/ff/core/HttpClient.mjs.map +62 -0
- package/output/js/ff/core/Int.mjs +4 -9
- package/output/js/ff/core/Int.mjs.map +49 -0
- package/output/js/ff/core/IntMap.mjs +3 -6
- package/output/js/ff/core/IntMap.mjs.map +52 -0
- package/output/js/ff/core/Js.mjs +13 -8
- package/output/js/ff/core/Js.mjs.map +121 -0
- package/output/js/ff/core/JsSystem.mjs +1 -8
- package/output/js/ff/core/JsSystem.mjs.map +59 -0
- package/output/js/ff/core/JsValue.mjs +23 -42
- package/output/js/ff/core/JsValue.mjs.map +155 -0
- package/output/js/ff/core/Json.mjs +25 -26
- package/output/js/ff/core/Json.mjs.map +134 -0
- package/output/js/ff/core/List.mjs +11 -12
- package/output/js/ff/core/List.mjs.map +123 -0
- package/output/js/ff/core/Lock.mjs +7 -14
- package/output/js/ff/core/Lock.mjs.map +52 -0
- package/output/js/ff/core/Log.mjs +1 -8
- package/output/js/ff/core/Log.mjs.map +26 -0
- package/output/js/ff/core/Map.mjs +6 -7
- package/output/js/ff/core/Map.mjs.map +67 -0
- package/output/js/ff/core/NodeSystem.mjs +11 -14
- package/output/js/ff/core/NodeSystem.mjs.map +137 -0
- package/output/js/ff/core/Nothing.mjs +1 -10
- package/output/js/ff/core/Nothing.mjs.map +11 -0
- package/output/js/ff/core/Option.mjs +10 -15
- package/output/js/ff/core/Option.mjs.map +67 -0
- package/output/js/ff/core/Ordering.mjs +12 -13
- package/output/js/ff/core/Ordering.mjs.map +48 -0
- package/output/js/ff/core/Pair.mjs +8 -13
- package/output/js/ff/core/Pair.mjs.map +48 -0
- package/output/js/ff/core/Path.mjs +5 -14
- package/output/js/ff/core/Path.mjs.map +178 -0
- package/output/js/ff/core/Queue.mjs +1 -4
- package/output/js/ff/core/Queue.mjs.map +45 -0
- package/output/js/ff/core/Random.mjs +1 -4
- package/output/js/ff/core/Random.mjs.map +79 -0
- package/output/js/ff/core/RbMap.mjs +1 -16
- package/output/js/ff/core/RbMap.mjs.map +92 -0
- package/output/js/ff/core/Serializable.mjs +17 -22
- package/output/js/ff/core/Serializable.mjs.map +73 -0
- package/output/js/ff/core/Set.mjs +6 -7
- package/output/js/ff/core/Set.mjs.map +45 -0
- package/output/js/ff/core/Show.mjs +11 -20
- package/output/js/ff/core/Show.mjs.map +29 -0
- package/output/js/ff/core/SourceLocation.mjs +7 -8
- package/output/js/ff/core/SourceLocation.mjs.map +41 -0
- package/output/js/ff/core/Stream.mjs +1 -4
- package/output/js/ff/core/Stream.mjs.map +92 -0
- package/output/js/ff/core/String.mjs +14 -19
- package/output/js/ff/core/String.mjs.map +106 -0
- package/output/js/ff/core/StringMap.mjs +3 -6
- package/output/js/ff/core/StringMap.mjs.map +52 -0
- package/output/js/ff/core/Task.mjs +1 -8
- package/output/js/ff/core/Task.mjs.map +79 -0
- package/output/js/ff/core/Try.mjs +3 -6
- package/output/js/ff/core/Try.mjs.map +41 -0
- package/output/js/ff/core/Unit.mjs +5 -12
- package/output/js/ff/core/Unit.mjs.map +18 -0
- package/package.json +1 -1
- package/vscode/package.json +1 -1
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
1
|
import * as ff_compiler_Inference from "../../ff/compiler/Inference.mjs"
|
|
4
2
|
|
|
5
3
|
import * as ff_compiler_Environment from "../../ff/compiler/Environment.mjs"
|
|
@@ -111,14 +109,12 @@ export function Inference(unification_, missing_, lspHook_) {
|
|
|
111
109
|
return {unification_, missing_, lspHook_};
|
|
112
110
|
}
|
|
113
111
|
|
|
114
|
-
|
|
115
|
-
|
|
116
112
|
export function new_(modules_, lspHook_) {
|
|
117
113
|
return ff_compiler_Inference.Inference(ff_compiler_Unification.new_(modules_, ff_compiler_LspHook.LspHook_isEnabled(lspHook_)), ff_core_StringMap.new_(), lspHook_)
|
|
118
114
|
}
|
|
119
115
|
|
|
120
116
|
export function fail_(at_, message_) {
|
|
121
|
-
|
|
117
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, message_), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
122
118
|
}
|
|
123
119
|
|
|
124
120
|
export function core_(name_) {
|
|
@@ -147,7 +143,7 @@ return ff_compiler_Inference.Inference(ff_compiler_Unification.new_(modules_, ff
|
|
|
147
143
|
}
|
|
148
144
|
|
|
149
145
|
export async function fail_$(at_, message_, $task) {
|
|
150
|
-
|
|
146
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, message_), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
151
147
|
}
|
|
152
148
|
|
|
153
149
|
export async function core_$(name_, $task) {
|
|
@@ -202,7 +198,7 @@ break
|
|
|
202
198
|
}
|
|
203
199
|
{
|
|
204
200
|
const allErrors_ = _1;
|
|
205
|
-
|
|
201
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileErrors(ff_core_List.List_map(allErrors_, ((_w1) => {
|
|
206
202
|
return _w1.first_
|
|
207
203
|
}))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileErrors)
|
|
208
204
|
}
|
|
@@ -232,10 +228,10 @@ const instances_ = ff_compiler_Inference.constraintsToInstances_(definition_.con
|
|
|
232
228
|
return ff_compiler_Unification.Unification_withLocalInstances(self_.unification_, instances_, (() => {
|
|
233
229
|
const traitName_ = definition_.traitName_;
|
|
234
230
|
const traitDefinition_ = ff_core_Option.Option_else(ff_core_Map.Map_get(environment_.traits_, traitName_, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), (() => {
|
|
235
|
-
|
|
231
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(definition_.at_, ("No such trait: " + traitName_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
236
232
|
}));
|
|
237
233
|
if((traitDefinition_.generics_.length !== definition_.typeArguments_.length)) {
|
|
238
|
-
|
|
234
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(definition_.at_, ((((("Wrong number of type arguments for " + traitName_) + ", expected ") + (traitDefinition_.generics_.length - 1)) + ", got ") + (definition_.typeArguments_.length - 1))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
239
235
|
};
|
|
240
236
|
const instantiationMap_ = ff_core_List.List_toMap(ff_core_List.List_zip(traitDefinition_.generics_, definition_.typeArguments_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String);
|
|
241
237
|
for(let for_a = traitDefinition_.methods_, for_i = 0, for_l = for_a.length; for_i < for_l; for_i++) {
|
|
@@ -244,11 +240,11 @@ const found_ = ff_core_List.List_filter(definition_.methods_, ((_w1) => {
|
|
|
244
240
|
return (_w1.signature_.name_ === traitMethod_.name_)
|
|
245
241
|
}));
|
|
246
242
|
if(ff_core_List.List_isEmpty(found_)) {
|
|
247
|
-
|
|
243
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(definition_.at_, ("Missing instance method: " + traitMethod_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
248
244
|
};
|
|
249
245
|
for(let for_a = found_, for_i = 1, for_l = for_a.length; for_i < for_l; for_i++) {
|
|
250
246
|
const duplicateMethod_ = for_a[for_i];
|
|
251
|
-
|
|
247
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(duplicateMethod_.at_, ("Duplicated instance method: " + traitMethod_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
252
248
|
}
|
|
253
249
|
};
|
|
254
250
|
{
|
|
@@ -261,7 +257,7 @@ const traitMethodName_ = (ff_core_String.String_reverse(ff_core_String.String_dr
|
|
|
261
257
|
return (_w1 !== 46)
|
|
262
258
|
}))) + methodName_);
|
|
263
259
|
const traitMethodScheme_ = ff_core_Option.Option_else(ff_core_Map.Map_get(environment_.symbols_, traitMethodName_, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), (() => {
|
|
264
|
-
|
|
260
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(instanceFunction_.at_, ((("Trait " + traitName_) + " has no such method: ") + methodName_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
265
261
|
}));
|
|
266
262
|
const parameters_ = ff_core_List.List_map(traitMethodScheme_.signature_.parameters_, ((p_) => {
|
|
267
263
|
{
|
|
@@ -275,11 +271,11 @@ return ff_compiler_Syntax.Parameter(_c.at_, _c.mutable_, _c.name_, ff_compiler_U
|
|
|
275
271
|
const returnType_ = ff_compiler_Unification.Unification_instantiate(self_.unification_, instantiationMap_, traitMethodScheme_.signature_.returnType_);
|
|
276
272
|
for(let for_a = instanceFunction_.signature_.parameters_, for_i = Math.max(parameters_.length, 0), for_l = for_a.length; for_i < for_l; for_i++) {
|
|
277
273
|
const instanceParameter_ = for_a[for_i];
|
|
278
|
-
|
|
274
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(instanceParameter_.at_, ("Unexpected parameter: " + instanceParameter_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
279
275
|
};
|
|
280
276
|
for(let for_a = parameters_, for_i = Math.max(instanceFunction_.signature_.parameters_.length, 0), for_l = for_a.length; for_i < for_l; for_i++) {
|
|
281
277
|
const traitParameter_ = for_a[for_i];
|
|
282
|
-
|
|
278
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(instanceFunction_.at_, ("Missing parameter: " + traitParameter_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
283
279
|
};
|
|
284
280
|
for(let for_a = parameters_, for_i = 0, for_l = for_a.length, for_a2 = instanceFunction_.signature_.parameters_, for_i2 = 0, for_l2 = for_a2.length; for_i < for_l && for_i2 < for_l2; for_i++, for_i2++) {
|
|
285
281
|
const traitParameter_ = for_a[for_i];
|
|
@@ -546,10 +542,10 @@ const name_ = _1.name_;
|
|
|
546
542
|
const variableAt_ = _1.variableAt_;
|
|
547
543
|
const variableOption_ = _1.variable_;
|
|
548
544
|
const instantiated_ = ff_core_Option.Option_else(ff_compiler_Inference.Inference_lookup(self_, environment_, expected_, at_, name_, [], ff_core_Option.None()), (() => {
|
|
549
|
-
|
|
545
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, ("No such variant: " + name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
550
546
|
}));
|
|
551
547
|
if(instantiated_.scheme_.isNewtype_) {
|
|
552
|
-
|
|
548
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, "This kind of pattern is not allowed for newtypes"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
553
549
|
};
|
|
554
550
|
ff_compiler_Unification.Unification_unify(self_.unification_, at_, expected_, instantiated_.scheme_.signature_.returnType_);
|
|
555
551
|
const parameters_ = ff_core_List.List_sortBy(instantiated_.scheme_.signature_.parameters_, ((_w1) => {
|
|
@@ -613,11 +609,11 @@ const at_ = _1.at_;
|
|
|
613
609
|
const name_ = _1.name_;
|
|
614
610
|
const patterns_ = _1.patterns_;
|
|
615
611
|
const instantiated_ = ff_core_Option.Option_else(ff_compiler_Inference.Inference_lookup(self_, environment_, expected_, at_, name_, [], ff_core_Option.None()), (() => {
|
|
616
|
-
|
|
612
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, ("No such variant: " + name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
617
613
|
}));
|
|
618
614
|
ff_compiler_Unification.Unification_unify(self_.unification_, at_, expected_, instantiated_.scheme_.signature_.returnType_);
|
|
619
615
|
if(((patterns_.length !== instantiated_.scheme_.signature_.parameters_.length) && (!ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)))) {
|
|
620
|
-
|
|
616
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, (((("Wrong number of subpatterns, expected " + instantiated_.scheme_.signature_.parameters_.length) + ", got ") + patterns_.length) + ".")), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
621
617
|
};
|
|
622
618
|
return ff_core_List.List_foldLeft(ff_core_List.List_map(ff_core_List.List_zip(patterns_, instantiated_.scheme_.signature_.parameters_), ((_1) => {
|
|
623
619
|
{
|
|
@@ -669,7 +665,7 @@ return term_
|
|
|
669
665
|
return ff_compiler_Inference.Inference_inferEtaExpansion(self_, environment_, expected_, e_.at_, instantiated_.scheme_.signature_, term_)
|
|
670
666
|
}
|
|
671
667
|
})), (() => {
|
|
672
|
-
|
|
668
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
673
669
|
}))
|
|
674
670
|
return
|
|
675
671
|
}
|
|
@@ -730,7 +726,7 @@ return ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)
|
|
|
730
726
|
}), (() => {
|
|
731
727
|
return term_
|
|
732
728
|
})), (() => {
|
|
733
|
-
|
|
729
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
734
730
|
}))
|
|
735
731
|
return
|
|
736
732
|
}
|
|
@@ -766,7 +762,7 @@ return ff_compiler_Syntax.EField(_c.at_, instantiated_.scheme_.isNewtype_, recor
|
|
|
766
762
|
return
|
|
767
763
|
}
|
|
768
764
|
{
|
|
769
|
-
|
|
765
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
770
766
|
}
|
|
771
767
|
}
|
|
772
768
|
return
|
|
@@ -776,7 +772,7 @@ return term_
|
|
|
776
772
|
}
|
|
777
773
|
{
|
|
778
774
|
const index_ = _1.index_;
|
|
779
|
-
|
|
775
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on unknown type: $") + index_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
780
776
|
}
|
|
781
777
|
}
|
|
782
778
|
return
|
|
@@ -1022,7 +1018,7 @@ return ff_compiler_Syntax.ELambda(at_, lambda_)
|
|
|
1022
1018
|
if(_1.EVariant) {
|
|
1023
1019
|
const e_ = _1;
|
|
1024
1020
|
const instantiated_ = ff_core_Option.Option_else(ff_compiler_Inference.Inference_lookup(self_, environment_, expected_, e_.at_, e_.name_, e_.typeArguments_, e_.arguments_), (() => {
|
|
1025
|
-
|
|
1021
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1026
1022
|
}));
|
|
1027
1023
|
ff_compiler_Unification.Unification_unify(self_.unification_, e_.at_, expected_, instantiated_.scheme_.signature_.returnType_);
|
|
1028
1024
|
const arguments_ = ff_core_Option.Option_map(e_.arguments_, ((_w1) => {
|
|
@@ -1043,7 +1039,7 @@ return
|
|
|
1043
1039
|
if(_1.EVariantIs) {
|
|
1044
1040
|
const e_ = _1;
|
|
1045
1041
|
const instantiated_ = ff_core_Option.Option_else(ff_compiler_Inference.Inference_lookup(self_, environment_, expected_, e_.at_, e_.name_, e_.typeArguments_, ff_core_Option.None()), (() => {
|
|
1046
|
-
|
|
1042
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1047
1043
|
}));
|
|
1048
1044
|
const parameters_ = ff_core_List.List_sortBy(instantiated_.scheme_.signature_.parameters_, ((_w1) => {
|
|
1049
1045
|
return _w1.name_
|
|
@@ -1070,10 +1066,10 @@ return
|
|
|
1070
1066
|
if(_1.ECopy) {
|
|
1071
1067
|
const e_ = _1;
|
|
1072
1068
|
const scheme_ = ff_core_Option.Option_else(ff_compiler_Inference.Inference_lookup(self_, environment_, expected_, e_.at_, e_.name_, [], ff_core_Option.None()), (() => {
|
|
1073
|
-
|
|
1069
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1074
1070
|
})).scheme_;
|
|
1075
1071
|
if(scheme_.isNewtype_) {
|
|
1076
|
-
|
|
1072
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, "Newtypes can't be copied"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1077
1073
|
};
|
|
1078
1074
|
const signature_ = scheme_.signature_;
|
|
1079
1075
|
if(ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)) {
|
|
@@ -1111,8 +1107,7 @@ return (_w1 === a_.name_)
|
|
|
1111
1107
|
const at_ = _1.at_;
|
|
1112
1108
|
const name_ = _1.name_;
|
|
1113
1109
|
const value_ = _1.value_;
|
|
1114
|
-
|
|
1115
|
-
return
|
|
1110
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, ("Unknown parameter: " + name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1116
1111
|
}
|
|
1117
1112
|
}));
|
|
1118
1113
|
const arguments_ = ff_core_List.List_map(parameterNames_, ((name_) => {
|
|
@@ -1168,7 +1163,7 @@ const call_ = (((_1) => {
|
|
|
1168
1163
|
if(_1.DynamicCall) {
|
|
1169
1164
|
const call_ = _1;
|
|
1170
1165
|
return {
|
|
1171
|
-
function_: call_.function_,
|
|
1166
|
+
function_: call_.function_,
|
|
1172
1167
|
tailCall_: call_.tailCall_
|
|
1173
1168
|
}
|
|
1174
1169
|
return
|
|
@@ -1200,7 +1195,7 @@ return ff_compiler_Inference.Inference_inferFunctionCall(self_, environment_, ex
|
|
|
1200
1195
|
return
|
|
1201
1196
|
}
|
|
1202
1197
|
{
|
|
1203
|
-
|
|
1198
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(variableAt_, ("No such function: " + x_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1204
1199
|
}
|
|
1205
1200
|
}
|
|
1206
1201
|
}
|
|
@@ -1246,7 +1241,7 @@ const instantiated_ = _1.value_;
|
|
|
1246
1241
|
return ff_compiler_Inference.Inference_inferLambdaCall(self_, environment_, expected_, e2_)
|
|
1247
1242
|
}
|
|
1248
1243
|
{
|
|
1249
|
-
|
|
1244
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(f_.at_, ((("No such field " + f_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1250
1245
|
}
|
|
1251
1246
|
}
|
|
1252
1247
|
return
|
|
@@ -1256,7 +1251,7 @@ return ff_compiler_Inference.Inference_inferLambdaCall(self_, environment_, expe
|
|
|
1256
1251
|
}
|
|
1257
1252
|
{
|
|
1258
1253
|
const index_ = _1.index_;
|
|
1259
|
-
|
|
1254
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(f_.at_, ((("No such field " + f_.field_) + " on unknown type: $") + index_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1260
1255
|
}
|
|
1261
1256
|
}
|
|
1262
1257
|
return
|
|
@@ -1333,10 +1328,10 @@ return ff_compiler_Syntax.EAssign(_c.at_, _c.operator_, _c.variable_, value_)
|
|
|
1333
1328
|
}
|
|
1334
1329
|
}
|
|
1335
1330
|
} else {
|
|
1336
|
-
|
|
1331
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ("Symbol is not mutable: " + e_.variable_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1337
1332
|
}
|
|
1338
1333
|
})), (() => {
|
|
1339
|
-
|
|
1334
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.variable_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1340
1335
|
}))
|
|
1341
1336
|
return
|
|
1342
1337
|
}
|
|
@@ -1351,7 +1346,7 @@ const t_ = _1;
|
|
|
1351
1346
|
const name_ = _1.name_;
|
|
1352
1347
|
const typeArguments_ = _1.generics_;
|
|
1353
1348
|
if(ff_core_String.String_startsWith(name_, "Record$", 0)) {
|
|
1354
|
-
|
|
1349
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ("Can't assign fields of anonymous records: " + e_.field_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1355
1350
|
}
|
|
1356
1351
|
}
|
|
1357
1352
|
if(_1.TConstructor) {
|
|
@@ -1377,10 +1372,10 @@ return
|
|
|
1377
1372
|
}
|
|
1378
1373
|
if(_1.Some) {
|
|
1379
1374
|
const instantiated_ = _1.value_;
|
|
1380
|
-
|
|
1375
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ((("Can't assign an immutable field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1381
1376
|
}
|
|
1382
1377
|
{
|
|
1383
|
-
|
|
1378
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1384
1379
|
}
|
|
1385
1380
|
}
|
|
1386
1381
|
return
|
|
@@ -1390,7 +1385,7 @@ return term_
|
|
|
1390
1385
|
}
|
|
1391
1386
|
{
|
|
1392
1387
|
const index_ = _1.index_;
|
|
1393
|
-
|
|
1388
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on unknown type: $") + index_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1394
1389
|
}
|
|
1395
1390
|
}
|
|
1396
1391
|
return
|
|
@@ -1416,7 +1411,7 @@ ff_compiler_Unification.Unification_unify(self_.unification_, at_, t_, ff_compil
|
|
|
1416
1411
|
}
|
|
1417
1412
|
} while(false)
|
|
1418
1413
|
} else if((operator_ !== "")) {
|
|
1419
|
-
|
|
1414
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, (("Only +=, -=, *=, /= and = assignments are supported. Got: " + operator_) + "=")), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1420
1415
|
} else {};
|
|
1421
1416
|
ff_compiler_Unification.Unification_unify(self_.unification_, at_, expected_, ff_compiler_Syntax.TConstructor(at_, ff_compiler_Inference.core_("Unit"), []));
|
|
1422
1417
|
return newValue_
|
|
@@ -1523,14 +1518,14 @@ if(_1.DynamicCall) {
|
|
|
1523
1518
|
const call_ = _1;
|
|
1524
1519
|
if((!call_.tailCall_)) {
|
|
1525
1520
|
return {
|
|
1526
|
-
function_: call_.function_,
|
|
1521
|
+
function_: call_.function_,
|
|
1527
1522
|
tailCall_: call_.tailCall_
|
|
1528
1523
|
}
|
|
1529
1524
|
return
|
|
1530
1525
|
}
|
|
1531
1526
|
}
|
|
1532
1527
|
if(_1.DynamicCall) {
|
|
1533
|
-
|
|
1528
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, "Tailcalls not supported on lambda functions"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1534
1529
|
}
|
|
1535
1530
|
{
|
|
1536
1531
|
return ff_compiler_Inference.fail_(e_.at_, "Internal error: Static calls not expected in inferLambdaCall")
|
|
@@ -1550,7 +1545,7 @@ const t_ = _1.second_;
|
|
|
1550
1545
|
const if_o = argument_.name_
|
|
1551
1546
|
if(if_o.Some) {
|
|
1552
1547
|
const name_ = if_o.value_;
|
|
1553
|
-
|
|
1548
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(argument_.at_, ("Named argument not allowed here: " + name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1554
1549
|
}
|
|
1555
1550
|
};
|
|
1556
1551
|
{
|
|
@@ -1567,7 +1562,7 @@ return
|
|
|
1567
1562
|
const if_o = ff_core_List.List_first(e_.typeArguments_)
|
|
1568
1563
|
if(if_o.Some) {
|
|
1569
1564
|
const typeArgument_ = if_o.value_;
|
|
1570
|
-
|
|
1565
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(typeArgument_.at_, "Type arguments not allowed here"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1571
1566
|
}
|
|
1572
1567
|
};
|
|
1573
1568
|
ff_compiler_Unification.Unification_affect(self_.unification_, term_.at_, effect_, environment_.effect_);
|
|
@@ -1642,7 +1637,7 @@ if(ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)) {
|
|
|
1642
1637
|
break
|
|
1643
1638
|
}
|
|
1644
1639
|
{
|
|
1645
|
-
|
|
1640
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, "Operators on unknown types not currently supported"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1646
1641
|
}
|
|
1647
1642
|
} while(false);
|
|
1648
1643
|
{
|
|
@@ -1843,12 +1838,10 @@ if(ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)) {
|
|
|
1843
1838
|
return
|
|
1844
1839
|
}
|
|
1845
1840
|
if(_1.Some && _2.Some) {
|
|
1846
|
-
|
|
1847
|
-
return
|
|
1841
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, "Operators on these types not currently supported"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1848
1842
|
}
|
|
1849
1843
|
{
|
|
1850
|
-
|
|
1851
|
-
return
|
|
1844
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, "Operators on unknown types not currently supported"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1852
1845
|
}
|
|
1853
1846
|
});
|
|
1854
1847
|
chooseType_(magic_(t1_), magic_(t2_));
|
|
@@ -2034,7 +2027,7 @@ return (_w1 === "Q$")
|
|
|
2034
2027
|
: typeArguments_);
|
|
2035
2028
|
if(((scheme_.signature_.generics_.length !== newTypeArguments_.length) && (!ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)))) {
|
|
2036
2029
|
const extra_ = (newTypeArguments_.length - typeArguments_.length);
|
|
2037
|
-
|
|
2030
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, ((((("Wrong number of type arguments for " + symbol_) + ", expected ") + (scheme_.signature_.generics_.length - extra_)) + ", got ") + (newTypeArguments_.length - extra_))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2038
2031
|
};
|
|
2039
2032
|
return ff_core_List.List_zip(scheme_.signature_.generics_, newTypeArguments_)
|
|
2040
2033
|
})()
|
|
@@ -2122,7 +2115,7 @@ break
|
|
|
2122
2115
|
}
|
|
2123
2116
|
{
|
|
2124
2117
|
const allErrors_ = _1;
|
|
2125
|
-
|
|
2118
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileErrors(ff_core_List.List_map(allErrors_, ((_w1) => {
|
|
2126
2119
|
return _w1.first_
|
|
2127
2120
|
}))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileErrors)
|
|
2128
2121
|
}
|
|
@@ -2152,10 +2145,10 @@ const instances_ = ff_compiler_Inference.constraintsToInstances_(definition_.con
|
|
|
2152
2145
|
return ff_compiler_Unification.Unification_withLocalInstances(self_.unification_, instances_, (() => {
|
|
2153
2146
|
const traitName_ = definition_.traitName_;
|
|
2154
2147
|
const traitDefinition_ = ff_core_Option.Option_else(ff_core_Map.Map_get(environment_.traits_, traitName_, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), (() => {
|
|
2155
|
-
|
|
2148
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(definition_.at_, ("No such trait: " + traitName_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2156
2149
|
}));
|
|
2157
2150
|
if((traitDefinition_.generics_.length !== definition_.typeArguments_.length)) {
|
|
2158
|
-
|
|
2151
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(definition_.at_, ((((("Wrong number of type arguments for " + traitName_) + ", expected ") + (traitDefinition_.generics_.length - 1)) + ", got ") + (definition_.typeArguments_.length - 1))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2159
2152
|
};
|
|
2160
2153
|
const instantiationMap_ = ff_core_List.List_toMap(ff_core_List.List_zip(traitDefinition_.generics_, definition_.typeArguments_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String);
|
|
2161
2154
|
for(let for_a = traitDefinition_.methods_, for_i = 0, for_l = for_a.length; for_i < for_l; for_i++) {
|
|
@@ -2164,11 +2157,11 @@ const found_ = ff_core_List.List_filter(definition_.methods_, ((_w1) => {
|
|
|
2164
2157
|
return (_w1.signature_.name_ === traitMethod_.name_)
|
|
2165
2158
|
}));
|
|
2166
2159
|
if(ff_core_List.List_isEmpty(found_)) {
|
|
2167
|
-
|
|
2160
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(definition_.at_, ("Missing instance method: " + traitMethod_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2168
2161
|
};
|
|
2169
2162
|
for(let for_a = found_, for_i = 1, for_l = for_a.length; for_i < for_l; for_i++) {
|
|
2170
2163
|
const duplicateMethod_ = for_a[for_i];
|
|
2171
|
-
|
|
2164
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(duplicateMethod_.at_, ("Duplicated instance method: " + traitMethod_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2172
2165
|
}
|
|
2173
2166
|
};
|
|
2174
2167
|
{
|
|
@@ -2181,7 +2174,7 @@ const traitMethodName_ = (ff_core_String.String_reverse(ff_core_String.String_dr
|
|
|
2181
2174
|
return (_w1 !== 46)
|
|
2182
2175
|
}))) + methodName_);
|
|
2183
2176
|
const traitMethodScheme_ = ff_core_Option.Option_else(ff_core_Map.Map_get(environment_.symbols_, traitMethodName_, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), (() => {
|
|
2184
|
-
|
|
2177
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(instanceFunction_.at_, ((("Trait " + traitName_) + " has no such method: ") + methodName_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2185
2178
|
}));
|
|
2186
2179
|
const parameters_ = ff_core_List.List_map(traitMethodScheme_.signature_.parameters_, ((p_) => {
|
|
2187
2180
|
{
|
|
@@ -2195,11 +2188,11 @@ return ff_compiler_Syntax.Parameter(_c.at_, _c.mutable_, _c.name_, ff_compiler_U
|
|
|
2195
2188
|
const returnType_ = ff_compiler_Unification.Unification_instantiate(self_.unification_, instantiationMap_, traitMethodScheme_.signature_.returnType_);
|
|
2196
2189
|
for(let for_a = instanceFunction_.signature_.parameters_, for_i = Math.max(parameters_.length, 0), for_l = for_a.length; for_i < for_l; for_i++) {
|
|
2197
2190
|
const instanceParameter_ = for_a[for_i];
|
|
2198
|
-
|
|
2191
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(instanceParameter_.at_, ("Unexpected parameter: " + instanceParameter_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2199
2192
|
};
|
|
2200
2193
|
for(let for_a = parameters_, for_i = Math.max(instanceFunction_.signature_.parameters_.length, 0), for_l = for_a.length; for_i < for_l; for_i++) {
|
|
2201
2194
|
const traitParameter_ = for_a[for_i];
|
|
2202
|
-
|
|
2195
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(instanceFunction_.at_, ("Missing parameter: " + traitParameter_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2203
2196
|
};
|
|
2204
2197
|
for(let for_a = parameters_, for_i = 0, for_l = for_a.length, for_a2 = instanceFunction_.signature_.parameters_, for_i2 = 0, for_l2 = for_a2.length; for_i < for_l && for_i2 < for_l2; for_i++, for_i2++) {
|
|
2205
2198
|
const traitParameter_ = for_a[for_i];
|
|
@@ -2466,10 +2459,10 @@ const name_ = _1.name_;
|
|
|
2466
2459
|
const variableAt_ = _1.variableAt_;
|
|
2467
2460
|
const variableOption_ = _1.variable_;
|
|
2468
2461
|
const instantiated_ = ff_core_Option.Option_else(ff_compiler_Inference.Inference_lookup(self_, environment_, expected_, at_, name_, [], ff_core_Option.None()), (() => {
|
|
2469
|
-
|
|
2462
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, ("No such variant: " + name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2470
2463
|
}));
|
|
2471
2464
|
if(instantiated_.scheme_.isNewtype_) {
|
|
2472
|
-
|
|
2465
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, "This kind of pattern is not allowed for newtypes"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2473
2466
|
};
|
|
2474
2467
|
ff_compiler_Unification.Unification_unify(self_.unification_, at_, expected_, instantiated_.scheme_.signature_.returnType_);
|
|
2475
2468
|
const parameters_ = ff_core_List.List_sortBy(instantiated_.scheme_.signature_.parameters_, ((_w1) => {
|
|
@@ -2533,11 +2526,11 @@ const at_ = _1.at_;
|
|
|
2533
2526
|
const name_ = _1.name_;
|
|
2534
2527
|
const patterns_ = _1.patterns_;
|
|
2535
2528
|
const instantiated_ = ff_core_Option.Option_else(ff_compiler_Inference.Inference_lookup(self_, environment_, expected_, at_, name_, [], ff_core_Option.None()), (() => {
|
|
2536
|
-
|
|
2529
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, ("No such variant: " + name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2537
2530
|
}));
|
|
2538
2531
|
ff_compiler_Unification.Unification_unify(self_.unification_, at_, expected_, instantiated_.scheme_.signature_.returnType_);
|
|
2539
2532
|
if(((patterns_.length !== instantiated_.scheme_.signature_.parameters_.length) && (!ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)))) {
|
|
2540
|
-
|
|
2533
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, (((("Wrong number of subpatterns, expected " + instantiated_.scheme_.signature_.parameters_.length) + ", got ") + patterns_.length) + ".")), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2541
2534
|
};
|
|
2542
2535
|
return ff_core_List.List_foldLeft(ff_core_List.List_map(ff_core_List.List_zip(patterns_, instantiated_.scheme_.signature_.parameters_), ((_1) => {
|
|
2543
2536
|
{
|
|
@@ -2589,7 +2582,7 @@ return term_
|
|
|
2589
2582
|
return ff_compiler_Inference.Inference_inferEtaExpansion(self_, environment_, expected_, e_.at_, instantiated_.scheme_.signature_, term_)
|
|
2590
2583
|
}
|
|
2591
2584
|
})), (() => {
|
|
2592
|
-
|
|
2585
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2593
2586
|
}))
|
|
2594
2587
|
return
|
|
2595
2588
|
}
|
|
@@ -2650,7 +2643,7 @@ return ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)
|
|
|
2650
2643
|
}), (() => {
|
|
2651
2644
|
return term_
|
|
2652
2645
|
})), (() => {
|
|
2653
|
-
|
|
2646
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2654
2647
|
}))
|
|
2655
2648
|
return
|
|
2656
2649
|
}
|
|
@@ -2686,7 +2679,7 @@ return ff_compiler_Syntax.EField(_c.at_, instantiated_.scheme_.isNewtype_, recor
|
|
|
2686
2679
|
return
|
|
2687
2680
|
}
|
|
2688
2681
|
{
|
|
2689
|
-
|
|
2682
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2690
2683
|
}
|
|
2691
2684
|
}
|
|
2692
2685
|
return
|
|
@@ -2696,7 +2689,7 @@ return term_
|
|
|
2696
2689
|
}
|
|
2697
2690
|
{
|
|
2698
2691
|
const index_ = _1.index_;
|
|
2699
|
-
|
|
2692
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on unknown type: $") + index_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2700
2693
|
}
|
|
2701
2694
|
}
|
|
2702
2695
|
return
|
|
@@ -2942,7 +2935,7 @@ return ff_compiler_Syntax.ELambda(at_, lambda_)
|
|
|
2942
2935
|
if(_1.EVariant) {
|
|
2943
2936
|
const e_ = _1;
|
|
2944
2937
|
const instantiated_ = ff_core_Option.Option_else(ff_compiler_Inference.Inference_lookup(self_, environment_, expected_, e_.at_, e_.name_, e_.typeArguments_, e_.arguments_), (() => {
|
|
2945
|
-
|
|
2938
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2946
2939
|
}));
|
|
2947
2940
|
ff_compiler_Unification.Unification_unify(self_.unification_, e_.at_, expected_, instantiated_.scheme_.signature_.returnType_);
|
|
2948
2941
|
const arguments_ = ff_core_Option.Option_map(e_.arguments_, ((_w1) => {
|
|
@@ -2963,7 +2956,7 @@ return
|
|
|
2963
2956
|
if(_1.EVariantIs) {
|
|
2964
2957
|
const e_ = _1;
|
|
2965
2958
|
const instantiated_ = ff_core_Option.Option_else(ff_compiler_Inference.Inference_lookup(self_, environment_, expected_, e_.at_, e_.name_, e_.typeArguments_, ff_core_Option.None()), (() => {
|
|
2966
|
-
|
|
2959
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2967
2960
|
}));
|
|
2968
2961
|
const parameters_ = ff_core_List.List_sortBy(instantiated_.scheme_.signature_.parameters_, ((_w1) => {
|
|
2969
2962
|
return _w1.name_
|
|
@@ -2990,10 +2983,10 @@ return
|
|
|
2990
2983
|
if(_1.ECopy) {
|
|
2991
2984
|
const e_ = _1;
|
|
2992
2985
|
const scheme_ = ff_core_Option.Option_else(ff_compiler_Inference.Inference_lookup(self_, environment_, expected_, e_.at_, e_.name_, [], ff_core_Option.None()), (() => {
|
|
2993
|
-
|
|
2986
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2994
2987
|
})).scheme_;
|
|
2995
2988
|
if(scheme_.isNewtype_) {
|
|
2996
|
-
|
|
2989
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, "Newtypes can't be copied"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2997
2990
|
};
|
|
2998
2991
|
const signature_ = scheme_.signature_;
|
|
2999
2992
|
if(ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)) {
|
|
@@ -3031,8 +3024,7 @@ return (_w1 === a_.name_)
|
|
|
3031
3024
|
const at_ = _1.at_;
|
|
3032
3025
|
const name_ = _1.name_;
|
|
3033
3026
|
const value_ = _1.value_;
|
|
3034
|
-
|
|
3035
|
-
return
|
|
3027
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, ("Unknown parameter: " + name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3036
3028
|
}
|
|
3037
3029
|
}));
|
|
3038
3030
|
const arguments_ = ff_core_List.List_map(parameterNames_, ((name_) => {
|
|
@@ -3088,7 +3080,7 @@ const call_ = (((_1) => {
|
|
|
3088
3080
|
if(_1.DynamicCall) {
|
|
3089
3081
|
const call_ = _1;
|
|
3090
3082
|
return {
|
|
3091
|
-
function_: call_.function_,
|
|
3083
|
+
function_: call_.function_,
|
|
3092
3084
|
tailCall_: call_.tailCall_
|
|
3093
3085
|
}
|
|
3094
3086
|
return
|
|
@@ -3120,7 +3112,7 @@ return ff_compiler_Inference.Inference_inferFunctionCall(self_, environment_, ex
|
|
|
3120
3112
|
return
|
|
3121
3113
|
}
|
|
3122
3114
|
{
|
|
3123
|
-
|
|
3115
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(variableAt_, ("No such function: " + x_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3124
3116
|
}
|
|
3125
3117
|
}
|
|
3126
3118
|
}
|
|
@@ -3166,7 +3158,7 @@ const instantiated_ = _1.value_;
|
|
|
3166
3158
|
return ff_compiler_Inference.Inference_inferLambdaCall(self_, environment_, expected_, e2_)
|
|
3167
3159
|
}
|
|
3168
3160
|
{
|
|
3169
|
-
|
|
3161
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(f_.at_, ((("No such field " + f_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3170
3162
|
}
|
|
3171
3163
|
}
|
|
3172
3164
|
return
|
|
@@ -3176,7 +3168,7 @@ return ff_compiler_Inference.Inference_inferLambdaCall(self_, environment_, expe
|
|
|
3176
3168
|
}
|
|
3177
3169
|
{
|
|
3178
3170
|
const index_ = _1.index_;
|
|
3179
|
-
|
|
3171
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(f_.at_, ((("No such field " + f_.field_) + " on unknown type: $") + index_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3180
3172
|
}
|
|
3181
3173
|
}
|
|
3182
3174
|
return
|
|
@@ -3253,10 +3245,10 @@ return ff_compiler_Syntax.EAssign(_c.at_, _c.operator_, _c.variable_, value_)
|
|
|
3253
3245
|
}
|
|
3254
3246
|
}
|
|
3255
3247
|
} else {
|
|
3256
|
-
|
|
3248
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ("Symbol is not mutable: " + e_.variable_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3257
3249
|
}
|
|
3258
3250
|
})), (() => {
|
|
3259
|
-
|
|
3251
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.variable_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3260
3252
|
}))
|
|
3261
3253
|
return
|
|
3262
3254
|
}
|
|
@@ -3271,7 +3263,7 @@ const t_ = _1;
|
|
|
3271
3263
|
const name_ = _1.name_;
|
|
3272
3264
|
const typeArguments_ = _1.generics_;
|
|
3273
3265
|
if(ff_core_String.String_startsWith(name_, "Record$", 0)) {
|
|
3274
|
-
|
|
3266
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ("Can't assign fields of anonymous records: " + e_.field_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3275
3267
|
}
|
|
3276
3268
|
}
|
|
3277
3269
|
if(_1.TConstructor) {
|
|
@@ -3297,10 +3289,10 @@ return
|
|
|
3297
3289
|
}
|
|
3298
3290
|
if(_1.Some) {
|
|
3299
3291
|
const instantiated_ = _1.value_;
|
|
3300
|
-
|
|
3292
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ((("Can't assign an immutable field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3301
3293
|
}
|
|
3302
3294
|
{
|
|
3303
|
-
|
|
3295
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3304
3296
|
}
|
|
3305
3297
|
}
|
|
3306
3298
|
return
|
|
@@ -3310,7 +3302,7 @@ return term_
|
|
|
3310
3302
|
}
|
|
3311
3303
|
{
|
|
3312
3304
|
const index_ = _1.index_;
|
|
3313
|
-
|
|
3305
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on unknown type: $") + index_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3314
3306
|
}
|
|
3315
3307
|
}
|
|
3316
3308
|
return
|
|
@@ -3336,7 +3328,7 @@ ff_compiler_Unification.Unification_unify(self_.unification_, at_, t_, ff_compil
|
|
|
3336
3328
|
}
|
|
3337
3329
|
} while(false)
|
|
3338
3330
|
} else if((operator_ !== "")) {
|
|
3339
|
-
|
|
3331
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, (("Only +=, -=, *=, /= and = assignments are supported. Got: " + operator_) + "=")), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3340
3332
|
} else {};
|
|
3341
3333
|
ff_compiler_Unification.Unification_unify(self_.unification_, at_, expected_, ff_compiler_Syntax.TConstructor(at_, ff_compiler_Inference.core_("Unit"), []));
|
|
3342
3334
|
return newValue_
|
|
@@ -3443,14 +3435,14 @@ if(_1.DynamicCall) {
|
|
|
3443
3435
|
const call_ = _1;
|
|
3444
3436
|
if((!call_.tailCall_)) {
|
|
3445
3437
|
return {
|
|
3446
|
-
function_: call_.function_,
|
|
3438
|
+
function_: call_.function_,
|
|
3447
3439
|
tailCall_: call_.tailCall_
|
|
3448
3440
|
}
|
|
3449
3441
|
return
|
|
3450
3442
|
}
|
|
3451
3443
|
}
|
|
3452
3444
|
if(_1.DynamicCall) {
|
|
3453
|
-
|
|
3445
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, "Tailcalls not supported on lambda functions"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3454
3446
|
}
|
|
3455
3447
|
{
|
|
3456
3448
|
return ff_compiler_Inference.fail_(e_.at_, "Internal error: Static calls not expected in inferLambdaCall")
|
|
@@ -3470,7 +3462,7 @@ const t_ = _1.second_;
|
|
|
3470
3462
|
const if_o = argument_.name_
|
|
3471
3463
|
if(if_o.Some) {
|
|
3472
3464
|
const name_ = if_o.value_;
|
|
3473
|
-
|
|
3465
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(argument_.at_, ("Named argument not allowed here: " + name_)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3474
3466
|
}
|
|
3475
3467
|
};
|
|
3476
3468
|
{
|
|
@@ -3487,7 +3479,7 @@ return
|
|
|
3487
3479
|
const if_o = ff_core_List.List_first(e_.typeArguments_)
|
|
3488
3480
|
if(if_o.Some) {
|
|
3489
3481
|
const typeArgument_ = if_o.value_;
|
|
3490
|
-
|
|
3482
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(typeArgument_.at_, "Type arguments not allowed here"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3491
3483
|
}
|
|
3492
3484
|
};
|
|
3493
3485
|
ff_compiler_Unification.Unification_affect(self_.unification_, term_.at_, effect_, environment_.effect_);
|
|
@@ -3562,7 +3554,7 @@ if(ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)) {
|
|
|
3562
3554
|
break
|
|
3563
3555
|
}
|
|
3564
3556
|
{
|
|
3565
|
-
|
|
3557
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, "Operators on unknown types not currently supported"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3566
3558
|
}
|
|
3567
3559
|
} while(false);
|
|
3568
3560
|
{
|
|
@@ -3763,12 +3755,10 @@ if(ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)) {
|
|
|
3763
3755
|
return
|
|
3764
3756
|
}
|
|
3765
3757
|
if(_1.Some && _2.Some) {
|
|
3766
|
-
|
|
3767
|
-
return
|
|
3758
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, "Operators on these types not currently supported"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3768
3759
|
}
|
|
3769
3760
|
{
|
|
3770
|
-
|
|
3771
|
-
return
|
|
3761
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(e_.at_, "Operators on unknown types not currently supported"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3772
3762
|
}
|
|
3773
3763
|
});
|
|
3774
3764
|
chooseType_(magic_(t1_), magic_(t2_));
|
|
@@ -3954,7 +3944,7 @@ return (_w1 === "Q$")
|
|
|
3954
3944
|
: typeArguments_);
|
|
3955
3945
|
if(((scheme_.signature_.generics_.length !== newTypeArguments_.length) && (!ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)))) {
|
|
3956
3946
|
const extra_ = (newTypeArguments_.length - typeArguments_.length);
|
|
3957
|
-
|
|
3947
|
+
throw ff_core_Js.initializeError_(new Error(), ff_compiler_Syntax.CompileError(at_, ((((("Wrong number of type arguments for " + symbol_) + ", expected ") + (scheme_.signature_.generics_.length - extra_)) + ", got ") + (newTypeArguments_.length - extra_))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3958
3948
|
};
|
|
3959
3949
|
return ff_core_List.List_zip(scheme_.signature_.generics_, newTypeArguments_)
|
|
3960
3950
|
})()
|
|
@@ -4012,3 +4002,4 @@ return instantiated_
|
|
|
4012
4002
|
}
|
|
4013
4003
|
|
|
4014
4004
|
|
|
4005
|
+
//# sourceMappingURL=Inference.mjs.map
|