firefly-compiler 0.5.78 → 0.5.79
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 +1 -1
- package/compiler/JsEmitter.ff +11 -2
- package/compiler/Main.ff +6 -1
- package/core/Core.ff +4 -4
- package/core/Error.ff +7 -1
- package/core/Js.ff +13 -2
- package/fireflysite/Html.ff +15 -2
- package/output/js/ff/compiler/Builder.mjs +2 -3
- package/output/js/ff/compiler/Builder.mjs.map +2 -2
- package/output/js/ff/compiler/Compiler.mjs +8 -8
- package/output/js/ff/compiler/Compiler.mjs.map +1 -1
- package/output/js/ff/compiler/Dependencies.mjs +10 -10
- package/output/js/ff/compiler/Dependencies.mjs.map +1 -1
- package/output/js/ff/compiler/Deriver.mjs +2 -2
- package/output/js/ff/compiler/Deriver.mjs.map +1 -1
- package/output/js/ff/compiler/Dictionaries.mjs +4 -4
- package/output/js/ff/compiler/Dictionaries.mjs.map +1 -1
- package/output/js/ff/compiler/Environment.mjs +6 -6
- package/output/js/ff/compiler/Environment.mjs.map +1 -1
- package/output/js/ff/compiler/Inference.mjs +80 -80
- package/output/js/ff/compiler/Inference.mjs.map +1 -1
- package/output/js/ff/compiler/JsEmitter.mjs +60 -14
- package/output/js/ff/compiler/JsEmitter.mjs.map +2 -2
- package/output/js/ff/compiler/JsImporter.mjs +8 -8
- package/output/js/ff/compiler/JsImporter.mjs.map +1 -1
- package/output/js/ff/compiler/LspHook.mjs +4 -4
- package/output/js/ff/compiler/LspHook.mjs.map +1 -1
- package/output/js/ff/compiler/Main.mjs +42 -32
- package/output/js/ff/compiler/Main.mjs.map +7 -2
- package/output/js/ff/compiler/Parser.mjs +50 -50
- package/output/js/ff/compiler/Parser.mjs.map +1 -1
- package/output/js/ff/compiler/Patterns.mjs +6 -6
- package/output/js/ff/compiler/Patterns.mjs.map +1 -1
- package/output/js/ff/compiler/Resolver.mjs +32 -32
- package/output/js/ff/compiler/Resolver.mjs.map +1 -1
- package/output/js/ff/compiler/Syntax.mjs +74 -74
- package/output/js/ff/compiler/Syntax.mjs.map +1 -1
- package/output/js/ff/compiler/Token.mjs +4 -4
- package/output/js/ff/compiler/Token.mjs.map +1 -1
- package/output/js/ff/compiler/Tokenizer.mjs +4 -4
- package/output/js/ff/compiler/Tokenizer.mjs.map +1 -1
- package/output/js/ff/compiler/Unification.mjs +14 -14
- package/output/js/ff/compiler/Unification.mjs.map +1 -1
- package/output/js/ff/compiler/Workspace.mjs +4 -4
- package/output/js/ff/compiler/Workspace.mjs.map +1 -1
- package/output/js/ff/core/Array.mjs +10 -10
- package/output/js/ff/core/Array.mjs.map +1 -1
- package/output/js/ff/core/Buffer.mjs +4 -4
- package/output/js/ff/core/Buffer.mjs.map +1 -1
- package/output/js/ff/core/Core.mjs +4 -8
- package/output/js/ff/core/Core.mjs.map +4 -6
- package/output/js/ff/core/Error.mjs +32 -2
- package/output/js/ff/core/Error.mjs.map +15 -2
- package/output/js/ff/core/IntMap.mjs +2 -2
- package/output/js/ff/core/IntMap.mjs.map +1 -1
- package/output/js/ff/core/Js.mjs +20 -4
- package/output/js/ff/core/Js.mjs.map +8 -4
- package/output/js/ff/core/JsValue.mjs +20 -20
- package/output/js/ff/core/JsValue.mjs.map +1 -1
- package/output/js/ff/core/Json.mjs +10 -10
- package/output/js/ff/core/Json.mjs.map +1 -1
- package/output/js/ff/core/List.mjs +4 -4
- package/output/js/ff/core/List.mjs.map +1 -1
- package/output/js/ff/core/Lock.mjs +4 -4
- package/output/js/ff/core/Lock.mjs.map +1 -1
- package/output/js/ff/core/NodeSystem.mjs +2 -2
- package/output/js/ff/core/NodeSystem.mjs.map +1 -1
- package/output/js/ff/core/Option.mjs +2 -2
- package/output/js/ff/core/Option.mjs.map +1 -1
- package/output/js/ff/core/Pair.mjs +2 -2
- package/output/js/ff/core/Pair.mjs.map +1 -1
- package/output/js/ff/core/Serializable.mjs +2 -2
- package/output/js/ff/core/Serializable.mjs.map +1 -1
- package/output/js/ff/core/String.mjs +10 -10
- package/output/js/ff/core/String.mjs.map +1 -1
- package/output/js/ff/core/StringMap.mjs +2 -2
- package/output/js/ff/core/StringMap.mjs.map +1 -1
- package/output/js/ff/core/Try.mjs +2 -2
- package/output/js/ff/core/Try.mjs.map +1 -1
- package/package.json +1 -2
- package/vscode/package.json +1 -1
- package/webserver/WebServer.ff +1 -1
|
@@ -114,7 +114,7 @@ return ff_compiler_Inference.Inference(ff_compiler_Unification.new_(modules_, ff
|
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
export function fail_(at_, message_) {
|
|
117
|
-
throw ff_core_Js.initializeError_(
|
|
117
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, message_), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
export function core_(name_) {
|
|
@@ -143,7 +143,7 @@ return ff_compiler_Inference.Inference(ff_compiler_Unification.new_(modules_, ff
|
|
|
143
143
|
}
|
|
144
144
|
|
|
145
145
|
export async function fail_$(at_, message_, $task) {
|
|
146
|
-
throw ff_core_Js.initializeError_(
|
|
146
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, message_), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
147
147
|
}
|
|
148
148
|
|
|
149
149
|
export async function core_$(name_, $task) {
|
|
@@ -198,9 +198,9 @@ break
|
|
|
198
198
|
}
|
|
199
199
|
{
|
|
200
200
|
const allErrors_ = _1;
|
|
201
|
-
throw ff_core_Js.initializeError_(
|
|
201
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileErrors(ff_core_List.List_map(allErrors_, ((_w1) => {
|
|
202
202
|
return _w1.first_
|
|
203
|
-
}))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileErrors)
|
|
203
|
+
}))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileErrors)
|
|
204
204
|
}
|
|
205
205
|
} while(false);
|
|
206
206
|
const result_ = (((_c) => {
|
|
@@ -228,10 +228,10 @@ const instances_ = ff_compiler_Inference.constraintsToInstances_(definition_.con
|
|
|
228
228
|
return ff_compiler_Unification.Unification_withLocalInstances(self_.unification_, instances_, (() => {
|
|
229
229
|
const traitName_ = definition_.traitName_;
|
|
230
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), (() => {
|
|
231
|
-
throw ff_core_Js.initializeError_(
|
|
231
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(definition_.at_, ("No such trait: " + traitName_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
232
232
|
}));
|
|
233
233
|
if((traitDefinition_.generics_.length !== definition_.typeArguments_.length)) {
|
|
234
|
-
throw ff_core_Js.initializeError_(
|
|
234
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(definition_.at_, ((((("Wrong number of type arguments for " + traitName_) + ", expected ") + (traitDefinition_.generics_.length - 1)) + ", got ") + (definition_.typeArguments_.length - 1))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
235
235
|
};
|
|
236
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);
|
|
237
237
|
for(let for_a = traitDefinition_.methods_, for_i = 0, for_l = for_a.length; for_i < for_l; for_i++) {
|
|
@@ -240,11 +240,11 @@ const found_ = ff_core_List.List_filter(definition_.methods_, ((_w1) => {
|
|
|
240
240
|
return (_w1.signature_.name_ === traitMethod_.name_)
|
|
241
241
|
}));
|
|
242
242
|
if(ff_core_List.List_isEmpty(found_)) {
|
|
243
|
-
throw ff_core_Js.initializeError_(
|
|
243
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(definition_.at_, ("Missing instance method: " + traitMethod_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
244
244
|
};
|
|
245
245
|
for(let for_a = found_, for_i = 1, for_l = for_a.length; for_i < for_l; for_i++) {
|
|
246
246
|
const duplicateMethod_ = for_a[for_i];
|
|
247
|
-
throw ff_core_Js.initializeError_(
|
|
247
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(duplicateMethod_.at_, ("Duplicated instance method: " + traitMethod_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
248
248
|
}
|
|
249
249
|
};
|
|
250
250
|
{
|
|
@@ -257,7 +257,7 @@ const traitMethodName_ = (ff_core_String.String_reverse(ff_core_String.String_dr
|
|
|
257
257
|
return (_w1 !== 46)
|
|
258
258
|
}))) + methodName_);
|
|
259
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), (() => {
|
|
260
|
-
throw ff_core_Js.initializeError_(
|
|
260
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(instanceFunction_.at_, ((("Trait " + traitName_) + " has no such method: ") + methodName_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
261
261
|
}));
|
|
262
262
|
const parameters_ = ff_core_List.List_map(traitMethodScheme_.signature_.parameters_, ((p_) => {
|
|
263
263
|
{
|
|
@@ -271,11 +271,11 @@ return ff_compiler_Syntax.Parameter(_c.at_, _c.mutable_, _c.name_, ff_compiler_U
|
|
|
271
271
|
const returnType_ = ff_compiler_Unification.Unification_instantiate(self_.unification_, instantiationMap_, traitMethodScheme_.signature_.returnType_);
|
|
272
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++) {
|
|
273
273
|
const instanceParameter_ = for_a[for_i];
|
|
274
|
-
throw ff_core_Js.initializeError_(
|
|
274
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(instanceParameter_.at_, ("Unexpected parameter: " + instanceParameter_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
275
275
|
};
|
|
276
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++) {
|
|
277
277
|
const traitParameter_ = for_a[for_i];
|
|
278
|
-
throw ff_core_Js.initializeError_(
|
|
278
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(instanceFunction_.at_, ("Missing parameter: " + traitParameter_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
279
279
|
};
|
|
280
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++) {
|
|
281
281
|
const traitParameter_ = for_a[for_i];
|
|
@@ -542,10 +542,10 @@ const name_ = _1.name_;
|
|
|
542
542
|
const variableAt_ = _1.variableAt_;
|
|
543
543
|
const variableOption_ = _1.variable_;
|
|
544
544
|
const instantiated_ = ff_core_Option.Option_else(ff_compiler_Inference.Inference_lookup(self_, environment_, expected_, at_, name_, [], ff_core_Option.None()), (() => {
|
|
545
|
-
throw ff_core_Js.initializeError_(
|
|
545
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, ("No such variant: " + name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
546
546
|
}));
|
|
547
547
|
if(instantiated_.scheme_.isNewtype_) {
|
|
548
|
-
throw ff_core_Js.initializeError_(
|
|
548
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, "This kind of pattern is not allowed for newtypes"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
549
549
|
};
|
|
550
550
|
ff_compiler_Unification.Unification_unify(self_.unification_, at_, expected_, instantiated_.scheme_.signature_.returnType_);
|
|
551
551
|
const parameters_ = ff_core_List.List_sortBy(instantiated_.scheme_.signature_.parameters_, ((_w1) => {
|
|
@@ -609,11 +609,11 @@ const at_ = _1.at_;
|
|
|
609
609
|
const name_ = _1.name_;
|
|
610
610
|
const patterns_ = _1.patterns_;
|
|
611
611
|
const instantiated_ = ff_core_Option.Option_else(ff_compiler_Inference.Inference_lookup(self_, environment_, expected_, at_, name_, [], ff_core_Option.None()), (() => {
|
|
612
|
-
throw ff_core_Js.initializeError_(
|
|
612
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, ("No such variant: " + name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
613
613
|
}));
|
|
614
614
|
ff_compiler_Unification.Unification_unify(self_.unification_, at_, expected_, instantiated_.scheme_.signature_.returnType_);
|
|
615
615
|
if(((patterns_.length !== instantiated_.scheme_.signature_.parameters_.length) && (!ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)))) {
|
|
616
|
-
throw ff_core_Js.initializeError_(
|
|
616
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, (((("Wrong number of subpatterns, expected " + instantiated_.scheme_.signature_.parameters_.length) + ", got ") + patterns_.length) + ".")), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
617
617
|
};
|
|
618
618
|
return ff_core_List.List_foldLeft(ff_core_List.List_map(ff_core_List.List_zip(patterns_, instantiated_.scheme_.signature_.parameters_), ((_1) => {
|
|
619
619
|
{
|
|
@@ -665,7 +665,7 @@ return term_
|
|
|
665
665
|
return ff_compiler_Inference.Inference_inferEtaExpansion(self_, environment_, expected_, e_.at_, instantiated_.scheme_.signature_, term_)
|
|
666
666
|
}
|
|
667
667
|
})), (() => {
|
|
668
|
-
throw ff_core_Js.initializeError_(
|
|
668
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
669
669
|
}))
|
|
670
670
|
return
|
|
671
671
|
}
|
|
@@ -726,7 +726,7 @@ return ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)
|
|
|
726
726
|
}), (() => {
|
|
727
727
|
return term_
|
|
728
728
|
})), (() => {
|
|
729
|
-
throw ff_core_Js.initializeError_(
|
|
729
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
730
730
|
}))
|
|
731
731
|
return
|
|
732
732
|
}
|
|
@@ -762,7 +762,7 @@ return ff_compiler_Syntax.EField(_c.at_, instantiated_.scheme_.isNewtype_, recor
|
|
|
762
762
|
return
|
|
763
763
|
}
|
|
764
764
|
{
|
|
765
|
-
throw ff_core_Js.initializeError_(
|
|
765
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
766
766
|
}
|
|
767
767
|
}
|
|
768
768
|
return
|
|
@@ -772,7 +772,7 @@ return term_
|
|
|
772
772
|
}
|
|
773
773
|
{
|
|
774
774
|
const index_ = _1.index_;
|
|
775
|
-
throw ff_core_Js.initializeError_(
|
|
775
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on unknown type: $") + index_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
776
776
|
}
|
|
777
777
|
}
|
|
778
778
|
return
|
|
@@ -1018,7 +1018,7 @@ return ff_compiler_Syntax.ELambda(at_, lambda_)
|
|
|
1018
1018
|
if(_1.EVariant) {
|
|
1019
1019
|
const e_ = _1;
|
|
1020
1020
|
const instantiated_ = ff_core_Option.Option_else(ff_compiler_Inference.Inference_lookup(self_, environment_, expected_, e_.at_, e_.name_, e_.typeArguments_, e_.arguments_), (() => {
|
|
1021
|
-
throw ff_core_Js.initializeError_(
|
|
1021
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1022
1022
|
}));
|
|
1023
1023
|
ff_compiler_Unification.Unification_unify(self_.unification_, e_.at_, expected_, instantiated_.scheme_.signature_.returnType_);
|
|
1024
1024
|
const arguments_ = ff_core_Option.Option_map(e_.arguments_, ((_w1) => {
|
|
@@ -1039,7 +1039,7 @@ return
|
|
|
1039
1039
|
if(_1.EVariantIs) {
|
|
1040
1040
|
const e_ = _1;
|
|
1041
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()), (() => {
|
|
1042
|
-
throw ff_core_Js.initializeError_(
|
|
1042
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1043
1043
|
}));
|
|
1044
1044
|
const parameters_ = ff_core_List.List_sortBy(instantiated_.scheme_.signature_.parameters_, ((_w1) => {
|
|
1045
1045
|
return _w1.name_
|
|
@@ -1066,10 +1066,10 @@ return
|
|
|
1066
1066
|
if(_1.ECopy) {
|
|
1067
1067
|
const e_ = _1;
|
|
1068
1068
|
const scheme_ = ff_core_Option.Option_else(ff_compiler_Inference.Inference_lookup(self_, environment_, expected_, e_.at_, e_.name_, [], ff_core_Option.None()), (() => {
|
|
1069
|
-
throw ff_core_Js.initializeError_(
|
|
1069
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1070
1070
|
})).scheme_;
|
|
1071
1071
|
if(scheme_.isNewtype_) {
|
|
1072
|
-
throw ff_core_Js.initializeError_(
|
|
1072
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, "Newtypes can't be copied"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1073
1073
|
};
|
|
1074
1074
|
const signature_ = scheme_.signature_;
|
|
1075
1075
|
if(ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)) {
|
|
@@ -1107,7 +1107,7 @@ return (_w1 === a_.name_)
|
|
|
1107
1107
|
const at_ = _1.at_;
|
|
1108
1108
|
const name_ = _1.name_;
|
|
1109
1109
|
const value_ = _1.value_;
|
|
1110
|
-
throw ff_core_Js.initializeError_(
|
|
1110
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, ("Unknown parameter: " + name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1111
1111
|
}
|
|
1112
1112
|
}));
|
|
1113
1113
|
const arguments_ = ff_core_List.List_map(parameterNames_, ((name_) => {
|
|
@@ -1195,7 +1195,7 @@ return ff_compiler_Inference.Inference_inferFunctionCall(self_, environment_, ex
|
|
|
1195
1195
|
return
|
|
1196
1196
|
}
|
|
1197
1197
|
{
|
|
1198
|
-
throw ff_core_Js.initializeError_(
|
|
1198
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(variableAt_, ("No such function: " + x_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1199
1199
|
}
|
|
1200
1200
|
}
|
|
1201
1201
|
}
|
|
@@ -1241,7 +1241,7 @@ const instantiated_ = _1.value_;
|
|
|
1241
1241
|
return ff_compiler_Inference.Inference_inferLambdaCall(self_, environment_, expected_, e2_)
|
|
1242
1242
|
}
|
|
1243
1243
|
{
|
|
1244
|
-
throw ff_core_Js.initializeError_(
|
|
1244
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(f_.at_, ((("No such field " + f_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1245
1245
|
}
|
|
1246
1246
|
}
|
|
1247
1247
|
return
|
|
@@ -1251,7 +1251,7 @@ return ff_compiler_Inference.Inference_inferLambdaCall(self_, environment_, expe
|
|
|
1251
1251
|
}
|
|
1252
1252
|
{
|
|
1253
1253
|
const index_ = _1.index_;
|
|
1254
|
-
throw ff_core_Js.initializeError_(
|
|
1254
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(f_.at_, ((("No such field " + f_.field_) + " on unknown type: $") + index_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1255
1255
|
}
|
|
1256
1256
|
}
|
|
1257
1257
|
return
|
|
@@ -1328,10 +1328,10 @@ return ff_compiler_Syntax.EAssign(_c.at_, _c.operator_, _c.variable_, value_)
|
|
|
1328
1328
|
}
|
|
1329
1329
|
}
|
|
1330
1330
|
} else {
|
|
1331
|
-
throw ff_core_Js.initializeError_(
|
|
1331
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ("Symbol is not mutable: " + e_.variable_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1332
1332
|
}
|
|
1333
1333
|
})), (() => {
|
|
1334
|
-
throw ff_core_Js.initializeError_(
|
|
1334
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.variable_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1335
1335
|
}))
|
|
1336
1336
|
return
|
|
1337
1337
|
}
|
|
@@ -1346,7 +1346,7 @@ const t_ = _1;
|
|
|
1346
1346
|
const name_ = _1.name_;
|
|
1347
1347
|
const typeArguments_ = _1.generics_;
|
|
1348
1348
|
if(ff_core_String.String_startsWith(name_, "Record$", 0)) {
|
|
1349
|
-
throw ff_core_Js.initializeError_(
|
|
1349
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ("Can't assign fields of anonymous records: " + e_.field_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1350
1350
|
}
|
|
1351
1351
|
}
|
|
1352
1352
|
if(_1.TConstructor) {
|
|
@@ -1372,10 +1372,10 @@ return
|
|
|
1372
1372
|
}
|
|
1373
1373
|
if(_1.Some) {
|
|
1374
1374
|
const instantiated_ = _1.value_;
|
|
1375
|
-
throw ff_core_Js.initializeError_(
|
|
1375
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ((("Can't assign an immutable field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1376
1376
|
}
|
|
1377
1377
|
{
|
|
1378
|
-
throw ff_core_Js.initializeError_(
|
|
1378
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1379
1379
|
}
|
|
1380
1380
|
}
|
|
1381
1381
|
return
|
|
@@ -1385,7 +1385,7 @@ return term_
|
|
|
1385
1385
|
}
|
|
1386
1386
|
{
|
|
1387
1387
|
const index_ = _1.index_;
|
|
1388
|
-
throw ff_core_Js.initializeError_(
|
|
1388
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on unknown type: $") + index_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1389
1389
|
}
|
|
1390
1390
|
}
|
|
1391
1391
|
return
|
|
@@ -1411,7 +1411,7 @@ ff_compiler_Unification.Unification_unify(self_.unification_, at_, t_, ff_compil
|
|
|
1411
1411
|
}
|
|
1412
1412
|
} while(false)
|
|
1413
1413
|
} else if((operator_ !== "")) {
|
|
1414
|
-
throw ff_core_Js.initializeError_(
|
|
1414
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, (("Only +=, -=, *=, /= and = assignments are supported. Got: " + operator_) + "=")), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1415
1415
|
} else {};
|
|
1416
1416
|
ff_compiler_Unification.Unification_unify(self_.unification_, at_, expected_, ff_compiler_Syntax.TConstructor(at_, ff_compiler_Inference.core_("Unit"), []));
|
|
1417
1417
|
return newValue_
|
|
@@ -1525,7 +1525,7 @@ return
|
|
|
1525
1525
|
}
|
|
1526
1526
|
}
|
|
1527
1527
|
if(_1.DynamicCall) {
|
|
1528
|
-
throw ff_core_Js.initializeError_(
|
|
1528
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, "Tailcalls not supported on lambda functions"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1529
1529
|
}
|
|
1530
1530
|
{
|
|
1531
1531
|
return ff_compiler_Inference.fail_(e_.at_, "Internal error: Static calls not expected in inferLambdaCall")
|
|
@@ -1545,7 +1545,7 @@ const t_ = _1.second_;
|
|
|
1545
1545
|
const if_o = argument_.name_
|
|
1546
1546
|
if(if_o.Some) {
|
|
1547
1547
|
const name_ = if_o.value_;
|
|
1548
|
-
throw ff_core_Js.initializeError_(
|
|
1548
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(argument_.at_, ("Named argument not allowed here: " + name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1549
1549
|
}
|
|
1550
1550
|
};
|
|
1551
1551
|
{
|
|
@@ -1562,7 +1562,7 @@ return
|
|
|
1562
1562
|
const if_o = ff_core_List.List_first(e_.typeArguments_)
|
|
1563
1563
|
if(if_o.Some) {
|
|
1564
1564
|
const typeArgument_ = if_o.value_;
|
|
1565
|
-
throw ff_core_Js.initializeError_(
|
|
1565
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(typeArgument_.at_, "Type arguments not allowed here"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1566
1566
|
}
|
|
1567
1567
|
};
|
|
1568
1568
|
ff_compiler_Unification.Unification_affect(self_.unification_, term_.at_, effect_, environment_.effect_);
|
|
@@ -1637,7 +1637,7 @@ if(ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)) {
|
|
|
1637
1637
|
break
|
|
1638
1638
|
}
|
|
1639
1639
|
{
|
|
1640
|
-
throw ff_core_Js.initializeError_(
|
|
1640
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, "Operators on unknown types not currently supported"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1641
1641
|
}
|
|
1642
1642
|
} while(false);
|
|
1643
1643
|
{
|
|
@@ -1838,10 +1838,10 @@ if(ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)) {
|
|
|
1838
1838
|
return
|
|
1839
1839
|
}
|
|
1840
1840
|
if(_1.Some && _2.Some) {
|
|
1841
|
-
throw ff_core_Js.initializeError_(
|
|
1841
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, "Operators on these types not currently supported"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1842
1842
|
}
|
|
1843
1843
|
{
|
|
1844
|
-
throw ff_core_Js.initializeError_(
|
|
1844
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, "Operators on unknown types not currently supported"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1845
1845
|
}
|
|
1846
1846
|
});
|
|
1847
1847
|
chooseType_(magic_(t1_), magic_(t2_));
|
|
@@ -2027,7 +2027,7 @@ return (_w1 === "Q$")
|
|
|
2027
2027
|
: typeArguments_);
|
|
2028
2028
|
if(((scheme_.signature_.generics_.length !== newTypeArguments_.length) && (!ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)))) {
|
|
2029
2029
|
const extra_ = (newTypeArguments_.length - typeArguments_.length);
|
|
2030
|
-
throw ff_core_Js.initializeError_(
|
|
2030
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, ((((("Wrong number of type arguments for " + symbol_) + ", expected ") + (scheme_.signature_.generics_.length - extra_)) + ", got ") + (newTypeArguments_.length - extra_))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2031
2031
|
};
|
|
2032
2032
|
return ff_core_List.List_zip(scheme_.signature_.generics_, newTypeArguments_)
|
|
2033
2033
|
})()
|
|
@@ -2115,9 +2115,9 @@ break
|
|
|
2115
2115
|
}
|
|
2116
2116
|
{
|
|
2117
2117
|
const allErrors_ = _1;
|
|
2118
|
-
throw ff_core_Js.initializeError_(
|
|
2118
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileErrors(ff_core_List.List_map(allErrors_, ((_w1) => {
|
|
2119
2119
|
return _w1.first_
|
|
2120
|
-
}))), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileErrors)
|
|
2120
|
+
}))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileErrors)
|
|
2121
2121
|
}
|
|
2122
2122
|
} while(false);
|
|
2123
2123
|
const result_ = (((_c) => {
|
|
@@ -2145,10 +2145,10 @@ const instances_ = ff_compiler_Inference.constraintsToInstances_(definition_.con
|
|
|
2145
2145
|
return ff_compiler_Unification.Unification_withLocalInstances(self_.unification_, instances_, (() => {
|
|
2146
2146
|
const traitName_ = definition_.traitName_;
|
|
2147
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), (() => {
|
|
2148
|
-
throw ff_core_Js.initializeError_(
|
|
2148
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(definition_.at_, ("No such trait: " + traitName_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2149
2149
|
}));
|
|
2150
2150
|
if((traitDefinition_.generics_.length !== definition_.typeArguments_.length)) {
|
|
2151
|
-
throw ff_core_Js.initializeError_(
|
|
2151
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(definition_.at_, ((((("Wrong number of type arguments for " + traitName_) + ", expected ") + (traitDefinition_.generics_.length - 1)) + ", got ") + (definition_.typeArguments_.length - 1))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2152
2152
|
};
|
|
2153
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);
|
|
2154
2154
|
for(let for_a = traitDefinition_.methods_, for_i = 0, for_l = for_a.length; for_i < for_l; for_i++) {
|
|
@@ -2157,11 +2157,11 @@ const found_ = ff_core_List.List_filter(definition_.methods_, ((_w1) => {
|
|
|
2157
2157
|
return (_w1.signature_.name_ === traitMethod_.name_)
|
|
2158
2158
|
}));
|
|
2159
2159
|
if(ff_core_List.List_isEmpty(found_)) {
|
|
2160
|
-
throw ff_core_Js.initializeError_(
|
|
2160
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(definition_.at_, ("Missing instance method: " + traitMethod_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2161
2161
|
};
|
|
2162
2162
|
for(let for_a = found_, for_i = 1, for_l = for_a.length; for_i < for_l; for_i++) {
|
|
2163
2163
|
const duplicateMethod_ = for_a[for_i];
|
|
2164
|
-
throw ff_core_Js.initializeError_(
|
|
2164
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(duplicateMethod_.at_, ("Duplicated instance method: " + traitMethod_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2165
2165
|
}
|
|
2166
2166
|
};
|
|
2167
2167
|
{
|
|
@@ -2174,7 +2174,7 @@ const traitMethodName_ = (ff_core_String.String_reverse(ff_core_String.String_dr
|
|
|
2174
2174
|
return (_w1 !== 46)
|
|
2175
2175
|
}))) + methodName_);
|
|
2176
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), (() => {
|
|
2177
|
-
throw ff_core_Js.initializeError_(
|
|
2177
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(instanceFunction_.at_, ((("Trait " + traitName_) + " has no such method: ") + methodName_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2178
2178
|
}));
|
|
2179
2179
|
const parameters_ = ff_core_List.List_map(traitMethodScheme_.signature_.parameters_, ((p_) => {
|
|
2180
2180
|
{
|
|
@@ -2188,11 +2188,11 @@ return ff_compiler_Syntax.Parameter(_c.at_, _c.mutable_, _c.name_, ff_compiler_U
|
|
|
2188
2188
|
const returnType_ = ff_compiler_Unification.Unification_instantiate(self_.unification_, instantiationMap_, traitMethodScheme_.signature_.returnType_);
|
|
2189
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++) {
|
|
2190
2190
|
const instanceParameter_ = for_a[for_i];
|
|
2191
|
-
throw ff_core_Js.initializeError_(
|
|
2191
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(instanceParameter_.at_, ("Unexpected parameter: " + instanceParameter_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2192
2192
|
};
|
|
2193
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++) {
|
|
2194
2194
|
const traitParameter_ = for_a[for_i];
|
|
2195
|
-
throw ff_core_Js.initializeError_(
|
|
2195
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(instanceFunction_.at_, ("Missing parameter: " + traitParameter_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2196
2196
|
};
|
|
2197
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++) {
|
|
2198
2198
|
const traitParameter_ = for_a[for_i];
|
|
@@ -2459,10 +2459,10 @@ const name_ = _1.name_;
|
|
|
2459
2459
|
const variableAt_ = _1.variableAt_;
|
|
2460
2460
|
const variableOption_ = _1.variable_;
|
|
2461
2461
|
const instantiated_ = ff_core_Option.Option_else(ff_compiler_Inference.Inference_lookup(self_, environment_, expected_, at_, name_, [], ff_core_Option.None()), (() => {
|
|
2462
|
-
throw ff_core_Js.initializeError_(
|
|
2462
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, ("No such variant: " + name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2463
2463
|
}));
|
|
2464
2464
|
if(instantiated_.scheme_.isNewtype_) {
|
|
2465
|
-
throw ff_core_Js.initializeError_(
|
|
2465
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, "This kind of pattern is not allowed for newtypes"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2466
2466
|
};
|
|
2467
2467
|
ff_compiler_Unification.Unification_unify(self_.unification_, at_, expected_, instantiated_.scheme_.signature_.returnType_);
|
|
2468
2468
|
const parameters_ = ff_core_List.List_sortBy(instantiated_.scheme_.signature_.parameters_, ((_w1) => {
|
|
@@ -2526,11 +2526,11 @@ const at_ = _1.at_;
|
|
|
2526
2526
|
const name_ = _1.name_;
|
|
2527
2527
|
const patterns_ = _1.patterns_;
|
|
2528
2528
|
const instantiated_ = ff_core_Option.Option_else(ff_compiler_Inference.Inference_lookup(self_, environment_, expected_, at_, name_, [], ff_core_Option.None()), (() => {
|
|
2529
|
-
throw ff_core_Js.initializeError_(
|
|
2529
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, ("No such variant: " + name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2530
2530
|
}));
|
|
2531
2531
|
ff_compiler_Unification.Unification_unify(self_.unification_, at_, expected_, instantiated_.scheme_.signature_.returnType_);
|
|
2532
2532
|
if(((patterns_.length !== instantiated_.scheme_.signature_.parameters_.length) && (!ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)))) {
|
|
2533
|
-
throw ff_core_Js.initializeError_(
|
|
2533
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, (((("Wrong number of subpatterns, expected " + instantiated_.scheme_.signature_.parameters_.length) + ", got ") + patterns_.length) + ".")), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2534
2534
|
};
|
|
2535
2535
|
return ff_core_List.List_foldLeft(ff_core_List.List_map(ff_core_List.List_zip(patterns_, instantiated_.scheme_.signature_.parameters_), ((_1) => {
|
|
2536
2536
|
{
|
|
@@ -2582,7 +2582,7 @@ return term_
|
|
|
2582
2582
|
return ff_compiler_Inference.Inference_inferEtaExpansion(self_, environment_, expected_, e_.at_, instantiated_.scheme_.signature_, term_)
|
|
2583
2583
|
}
|
|
2584
2584
|
})), (() => {
|
|
2585
|
-
throw ff_core_Js.initializeError_(
|
|
2585
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2586
2586
|
}))
|
|
2587
2587
|
return
|
|
2588
2588
|
}
|
|
@@ -2643,7 +2643,7 @@ return ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)
|
|
|
2643
2643
|
}), (() => {
|
|
2644
2644
|
return term_
|
|
2645
2645
|
})), (() => {
|
|
2646
|
-
throw ff_core_Js.initializeError_(
|
|
2646
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2647
2647
|
}))
|
|
2648
2648
|
return
|
|
2649
2649
|
}
|
|
@@ -2679,7 +2679,7 @@ return ff_compiler_Syntax.EField(_c.at_, instantiated_.scheme_.isNewtype_, recor
|
|
|
2679
2679
|
return
|
|
2680
2680
|
}
|
|
2681
2681
|
{
|
|
2682
|
-
throw ff_core_Js.initializeError_(
|
|
2682
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2683
2683
|
}
|
|
2684
2684
|
}
|
|
2685
2685
|
return
|
|
@@ -2689,7 +2689,7 @@ return term_
|
|
|
2689
2689
|
}
|
|
2690
2690
|
{
|
|
2691
2691
|
const index_ = _1.index_;
|
|
2692
|
-
throw ff_core_Js.initializeError_(
|
|
2692
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on unknown type: $") + index_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2693
2693
|
}
|
|
2694
2694
|
}
|
|
2695
2695
|
return
|
|
@@ -2935,7 +2935,7 @@ return ff_compiler_Syntax.ELambda(at_, lambda_)
|
|
|
2935
2935
|
if(_1.EVariant) {
|
|
2936
2936
|
const e_ = _1;
|
|
2937
2937
|
const instantiated_ = ff_core_Option.Option_else(ff_compiler_Inference.Inference_lookup(self_, environment_, expected_, e_.at_, e_.name_, e_.typeArguments_, e_.arguments_), (() => {
|
|
2938
|
-
throw ff_core_Js.initializeError_(
|
|
2938
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2939
2939
|
}));
|
|
2940
2940
|
ff_compiler_Unification.Unification_unify(self_.unification_, e_.at_, expected_, instantiated_.scheme_.signature_.returnType_);
|
|
2941
2941
|
const arguments_ = ff_core_Option.Option_map(e_.arguments_, ((_w1) => {
|
|
@@ -2956,7 +2956,7 @@ return
|
|
|
2956
2956
|
if(_1.EVariantIs) {
|
|
2957
2957
|
const e_ = _1;
|
|
2958
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()), (() => {
|
|
2959
|
-
throw ff_core_Js.initializeError_(
|
|
2959
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2960
2960
|
}));
|
|
2961
2961
|
const parameters_ = ff_core_List.List_sortBy(instantiated_.scheme_.signature_.parameters_, ((_w1) => {
|
|
2962
2962
|
return _w1.name_
|
|
@@ -2983,10 +2983,10 @@ return
|
|
|
2983
2983
|
if(_1.ECopy) {
|
|
2984
2984
|
const e_ = _1;
|
|
2985
2985
|
const scheme_ = ff_core_Option.Option_else(ff_compiler_Inference.Inference_lookup(self_, environment_, expected_, e_.at_, e_.name_, [], ff_core_Option.None()), (() => {
|
|
2986
|
-
throw ff_core_Js.initializeError_(
|
|
2986
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2987
2987
|
})).scheme_;
|
|
2988
2988
|
if(scheme_.isNewtype_) {
|
|
2989
|
-
throw ff_core_Js.initializeError_(
|
|
2989
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, "Newtypes can't be copied"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2990
2990
|
};
|
|
2991
2991
|
const signature_ = scheme_.signature_;
|
|
2992
2992
|
if(ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)) {
|
|
@@ -3024,7 +3024,7 @@ return (_w1 === a_.name_)
|
|
|
3024
3024
|
const at_ = _1.at_;
|
|
3025
3025
|
const name_ = _1.name_;
|
|
3026
3026
|
const value_ = _1.value_;
|
|
3027
|
-
throw ff_core_Js.initializeError_(
|
|
3027
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, ("Unknown parameter: " + name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3028
3028
|
}
|
|
3029
3029
|
}));
|
|
3030
3030
|
const arguments_ = ff_core_List.List_map(parameterNames_, ((name_) => {
|
|
@@ -3112,7 +3112,7 @@ return ff_compiler_Inference.Inference_inferFunctionCall(self_, environment_, ex
|
|
|
3112
3112
|
return
|
|
3113
3113
|
}
|
|
3114
3114
|
{
|
|
3115
|
-
throw ff_core_Js.initializeError_(
|
|
3115
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(variableAt_, ("No such function: " + x_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3116
3116
|
}
|
|
3117
3117
|
}
|
|
3118
3118
|
}
|
|
@@ -3158,7 +3158,7 @@ const instantiated_ = _1.value_;
|
|
|
3158
3158
|
return ff_compiler_Inference.Inference_inferLambdaCall(self_, environment_, expected_, e2_)
|
|
3159
3159
|
}
|
|
3160
3160
|
{
|
|
3161
|
-
throw ff_core_Js.initializeError_(
|
|
3161
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(f_.at_, ((("No such field " + f_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3162
3162
|
}
|
|
3163
3163
|
}
|
|
3164
3164
|
return
|
|
@@ -3168,7 +3168,7 @@ return ff_compiler_Inference.Inference_inferLambdaCall(self_, environment_, expe
|
|
|
3168
3168
|
}
|
|
3169
3169
|
{
|
|
3170
3170
|
const index_ = _1.index_;
|
|
3171
|
-
throw ff_core_Js.initializeError_(
|
|
3171
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(f_.at_, ((("No such field " + f_.field_) + " on unknown type: $") + index_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3172
3172
|
}
|
|
3173
3173
|
}
|
|
3174
3174
|
return
|
|
@@ -3245,10 +3245,10 @@ return ff_compiler_Syntax.EAssign(_c.at_, _c.operator_, _c.variable_, value_)
|
|
|
3245
3245
|
}
|
|
3246
3246
|
}
|
|
3247
3247
|
} else {
|
|
3248
|
-
throw ff_core_Js.initializeError_(
|
|
3248
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ("Symbol is not mutable: " + e_.variable_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3249
3249
|
}
|
|
3250
3250
|
})), (() => {
|
|
3251
|
-
throw ff_core_Js.initializeError_(
|
|
3251
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ("Symbol not in scope: " + e_.variable_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3252
3252
|
}))
|
|
3253
3253
|
return
|
|
3254
3254
|
}
|
|
@@ -3263,7 +3263,7 @@ const t_ = _1;
|
|
|
3263
3263
|
const name_ = _1.name_;
|
|
3264
3264
|
const typeArguments_ = _1.generics_;
|
|
3265
3265
|
if(ff_core_String.String_startsWith(name_, "Record$", 0)) {
|
|
3266
|
-
throw ff_core_Js.initializeError_(
|
|
3266
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ("Can't assign fields of anonymous records: " + e_.field_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3267
3267
|
}
|
|
3268
3268
|
}
|
|
3269
3269
|
if(_1.TConstructor) {
|
|
@@ -3289,10 +3289,10 @@ return
|
|
|
3289
3289
|
}
|
|
3290
3290
|
if(_1.Some) {
|
|
3291
3291
|
const instantiated_ = _1.value_;
|
|
3292
|
-
throw ff_core_Js.initializeError_(
|
|
3292
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ((("Can't assign an immutable field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3293
3293
|
}
|
|
3294
3294
|
{
|
|
3295
|
-
throw ff_core_Js.initializeError_(
|
|
3295
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on type: ") + ff_compiler_Syntax.Type_show(t_, []))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3296
3296
|
}
|
|
3297
3297
|
}
|
|
3298
3298
|
return
|
|
@@ -3302,7 +3302,7 @@ return term_
|
|
|
3302
3302
|
}
|
|
3303
3303
|
{
|
|
3304
3304
|
const index_ = _1.index_;
|
|
3305
|
-
throw ff_core_Js.initializeError_(
|
|
3305
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, ((("No such field " + e_.field_) + " on unknown type: $") + index_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3306
3306
|
}
|
|
3307
3307
|
}
|
|
3308
3308
|
return
|
|
@@ -3328,7 +3328,7 @@ ff_compiler_Unification.Unification_unify(self_.unification_, at_, t_, ff_compil
|
|
|
3328
3328
|
}
|
|
3329
3329
|
} while(false)
|
|
3330
3330
|
} else if((operator_ !== "")) {
|
|
3331
|
-
throw ff_core_Js.initializeError_(
|
|
3331
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, (("Only +=, -=, *=, /= and = assignments are supported. Got: " + operator_) + "=")), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3332
3332
|
} else {};
|
|
3333
3333
|
ff_compiler_Unification.Unification_unify(self_.unification_, at_, expected_, ff_compiler_Syntax.TConstructor(at_, ff_compiler_Inference.core_("Unit"), []));
|
|
3334
3334
|
return newValue_
|
|
@@ -3442,7 +3442,7 @@ return
|
|
|
3442
3442
|
}
|
|
3443
3443
|
}
|
|
3444
3444
|
if(_1.DynamicCall) {
|
|
3445
|
-
throw ff_core_Js.initializeError_(
|
|
3445
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, "Tailcalls not supported on lambda functions"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3446
3446
|
}
|
|
3447
3447
|
{
|
|
3448
3448
|
return ff_compiler_Inference.fail_(e_.at_, "Internal error: Static calls not expected in inferLambdaCall")
|
|
@@ -3462,7 +3462,7 @@ const t_ = _1.second_;
|
|
|
3462
3462
|
const if_o = argument_.name_
|
|
3463
3463
|
if(if_o.Some) {
|
|
3464
3464
|
const name_ = if_o.value_;
|
|
3465
|
-
throw ff_core_Js.initializeError_(
|
|
3465
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(argument_.at_, ("Named argument not allowed here: " + name_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3466
3466
|
}
|
|
3467
3467
|
};
|
|
3468
3468
|
{
|
|
@@ -3479,7 +3479,7 @@ return
|
|
|
3479
3479
|
const if_o = ff_core_List.List_first(e_.typeArguments_)
|
|
3480
3480
|
if(if_o.Some) {
|
|
3481
3481
|
const typeArgument_ = if_o.value_;
|
|
3482
|
-
throw ff_core_Js.initializeError_(
|
|
3482
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(typeArgument_.at_, "Type arguments not allowed here"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3483
3483
|
}
|
|
3484
3484
|
};
|
|
3485
3485
|
ff_compiler_Unification.Unification_affect(self_.unification_, term_.at_, effect_, environment_.effect_);
|
|
@@ -3554,7 +3554,7 @@ if(ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)) {
|
|
|
3554
3554
|
break
|
|
3555
3555
|
}
|
|
3556
3556
|
{
|
|
3557
|
-
throw ff_core_Js.initializeError_(
|
|
3557
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, "Operators on unknown types not currently supported"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3558
3558
|
}
|
|
3559
3559
|
} while(false);
|
|
3560
3560
|
{
|
|
@@ -3755,10 +3755,10 @@ if(ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)) {
|
|
|
3755
3755
|
return
|
|
3756
3756
|
}
|
|
3757
3757
|
if(_1.Some && _2.Some) {
|
|
3758
|
-
throw ff_core_Js.initializeError_(
|
|
3758
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, "Operators on these types not currently supported"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3759
3759
|
}
|
|
3760
3760
|
{
|
|
3761
|
-
throw ff_core_Js.initializeError_(
|
|
3761
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(e_.at_, "Operators on unknown types not currently supported"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3762
3762
|
}
|
|
3763
3763
|
});
|
|
3764
3764
|
chooseType_(magic_(t1_), magic_(t2_));
|
|
@@ -3944,7 +3944,7 @@ return (_w1 === "Q$")
|
|
|
3944
3944
|
: typeArguments_);
|
|
3945
3945
|
if(((scheme_.signature_.generics_.length !== newTypeArguments_.length) && (!ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_)))) {
|
|
3946
3946
|
const extra_ = (newTypeArguments_.length - typeArguments_.length);
|
|
3947
|
-
throw ff_core_Js.initializeError_(
|
|
3947
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, ((((("Wrong number of type arguments for " + symbol_) + ", expected ") + (scheme_.signature_.generics_.length - extra_)) + ", got ") + (newTypeArguments_.length - extra_))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3948
3948
|
};
|
|
3949
3949
|
return ff_core_List.List_zip(scheme_.signature_.generics_, newTypeArguments_)
|
|
3950
3950
|
})()
|