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
|
@@ -168,7 +168,7 @@ if(ff_core_Equal.notEquals_(c_.kind_, kind_, ff_compiler_Token.ff_core_Equal_Equ
|
|
|
168
168
|
if(((ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_) && ff_compiler_Token.ff_core_Equal_Equal$ff_compiler_Token_TokenKind.equals_(kind_, ff_compiler_Token.LUpper())) && ff_compiler_Token.ff_core_Equal_Equal$ff_compiler_Token_TokenKind.equals_(c_.kind_, ff_compiler_Token.LLower()))) {
|
|
169
169
|
|
|
170
170
|
} else {
|
|
171
|
-
throw ff_core_Js.initializeError_(
|
|
171
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(c_), ((("Expected " + ff_compiler_Token.ff_core_Show_Show$ff_compiler_Token_TokenKind.show_(kind_)) + ", got ") + ff_compiler_Token.Token_raw(c_))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
172
172
|
}
|
|
173
173
|
};
|
|
174
174
|
self_.offset_ += 1;
|
|
@@ -181,14 +181,14 @@ if(ff_core_Equal.notEquals_(c_.kind_, kind_, ff_compiler_Token.ff_core_Equal_Equ
|
|
|
181
181
|
if((ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_) && (((value_ === ")") || (value_ === "]")) || (value_ === "}")))) {
|
|
182
182
|
|
|
183
183
|
} else {
|
|
184
|
-
throw ff_core_Js.initializeError_(
|
|
184
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(c_), ((((("Expected " + ff_compiler_Token.ff_core_Show_Show$ff_compiler_Token_TokenKind.show_(kind_)) + " ") + value_) + ", got ") + ff_compiler_Token.Token_raw(c_))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
185
185
|
}
|
|
186
186
|
};
|
|
187
187
|
if((!ff_compiler_Token.Token_rawIs(c_, value_))) {
|
|
188
188
|
if((ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_) && (((value_ === ")") || (value_ === "]")) || (value_ === "}")))) {
|
|
189
189
|
self_.offset_ -= 1
|
|
190
190
|
} else {
|
|
191
|
-
throw ff_core_Js.initializeError_(
|
|
191
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(c_), ((("Expected " + value_) + " got ") + ff_compiler_Token.Token_raw(c_))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
192
192
|
}
|
|
193
193
|
};
|
|
194
194
|
self_.offset_ += 1;
|
|
@@ -219,7 +219,7 @@ const moduleWithPackageInfo_ = ff_compiler_Parser.Parser_parseModuleWithPackageI
|
|
|
219
219
|
const if_o = moduleWithPackageInfo_.packageInfo_
|
|
220
220
|
if(if_o.Some) {
|
|
221
221
|
const info_ = if_o.value_;
|
|
222
|
-
throw ff_core_Js.initializeError_(
|
|
222
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(info_.package_.at_, "Package and dependencies already declared in package.ff"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
223
223
|
}
|
|
224
224
|
};
|
|
225
225
|
return moduleWithPackageInfo_.module_
|
|
@@ -245,7 +245,7 @@ return p_
|
|
|
245
245
|
})()
|
|
246
246
|
: ff_compiler_Syntax.DPackage(location_, self_.moduleKey_.packagePair_, ff_compiler_Syntax.Version(location_, 0, 0, 0), ff_compiler_Syntax.TargetNames(self_.targetIsNode_, (!self_.targetIsNode_))));
|
|
247
247
|
if((ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LKeyword()) && ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "package"))) {
|
|
248
|
-
throw ff_core_Js.initializeError_(
|
|
248
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(ff_compiler_Parser.Parser_current(self_)), "Duplicate package definition"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
249
249
|
};
|
|
250
250
|
const dependencies_ = ff_core_Array.new_();
|
|
251
251
|
while((ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LKeyword()) && ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "dependency"))) {
|
|
@@ -293,11 +293,11 @@ ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LLower())
|
|
|
293
293
|
imports_.array.push(ff_compiler_Parser.Parser_parseImportDefinition(self_, self_.moduleKey_.packagePair_))
|
|
294
294
|
}
|
|
295
295
|
} else if((ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LKeyword()) && ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "include"))) {
|
|
296
|
-
throw ff_core_Js.initializeError_(
|
|
296
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(ff_compiler_Parser.Parser_current(self_)), "Includes must be at the top of the file or below 'package'"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
297
297
|
} else if((ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LKeyword()) && ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "dependency"))) {
|
|
298
|
-
throw ff_core_Js.initializeError_(
|
|
298
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(ff_compiler_Parser.Parser_current(self_)), "Dependencies must be at the top of the file or below 'package'"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
299
299
|
} else if((ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LKeyword()) && ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "package"))) {
|
|
300
|
-
throw ff_core_Js.initializeError_(
|
|
300
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(ff_compiler_Parser.Parser_current(self_)), "Package definition must be at the top of the file"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
301
301
|
} else {
|
|
302
302
|
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LEnd())
|
|
303
303
|
};
|
|
@@ -541,9 +541,9 @@ const variantFields_ = ((!ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parse
|
|
|
541
541
|
if(((!allowMutable_) && ff_core_List.List_any(variantFields_, ((_w1) => {
|
|
542
542
|
return _w1.mutable_
|
|
543
543
|
})))) {
|
|
544
|
-
throw ff_core_Js.initializeError_(
|
|
544
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_core_Option.Option_grab(ff_core_List.List_find(variantFields_, ((_w1) => {
|
|
545
545
|
return _w1.mutable_
|
|
546
|
-
}))).at_, "Only classes can have mutable fields"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
546
|
+
}))).at_, "Only classes can have mutable fields"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
547
547
|
};
|
|
548
548
|
variantsBuilder_.array.push(ff_compiler_Syntax.Variant(ff_compiler_Token.Token_at(variantNameToken_), ff_compiler_Token.Token_raw(variantNameToken_), variantFields_));
|
|
549
549
|
if((!ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LBracketRight()))) {
|
|
@@ -558,14 +558,14 @@ return ff_core_Array.Array_toList(variantsBuilder_, 0, 9007199254740991)
|
|
|
558
558
|
})());
|
|
559
559
|
if((newtype_ && (commonFields_.length !== 1))) {
|
|
560
560
|
ff_core_Log.show_(commonFields_, ff_core_Show.ff_core_Show_Show$ff_core_List_List(ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_Parameter));
|
|
561
|
-
throw ff_core_Js.initializeError_(
|
|
561
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(nameToken_), "Newtypes must have exactly one 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)
|
|
562
562
|
};
|
|
563
563
|
if(((!allowMutable_) && ff_core_List.List_any(commonFields_, ((_w1) => {
|
|
564
564
|
return _w1.mutable_
|
|
565
565
|
})))) {
|
|
566
|
-
throw ff_core_Js.initializeError_(
|
|
566
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_core_Option.Option_grab(ff_core_List.List_find(commonFields_, ((_w1) => {
|
|
567
567
|
return _w1.mutable_
|
|
568
|
-
}))).at_, "Only classes and capabilities can have mutable fields"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
568
|
+
}))).at_, "Only classes and capabilities can have mutable fields"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
569
569
|
};
|
|
570
570
|
const generics_ = [...effectParameter_, ...poly_.generics_];
|
|
571
571
|
const result_ = ff_compiler_Syntax.DType(ff_compiler_Token.Token_at(nameToken_), newtype_, (!allowMutable_), ff_compiler_Token.Token_raw(nameToken_), generics_, poly_.constraints_, commonFields_, variants_);
|
|
@@ -640,7 +640,7 @@ const token_ = (ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(sel
|
|
|
640
640
|
do {
|
|
641
641
|
const _1 = ff_compiler_Token.Token_raw(token_);
|
|
642
642
|
if(_1 === "node" && targets_.node_) {
|
|
643
|
-
throw ff_core_Js.initializeError_(
|
|
643
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(token_), "Duplicate target 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)
|
|
644
644
|
}
|
|
645
645
|
if(_1 === "node") {
|
|
646
646
|
targets_ = (((_c) => {
|
|
@@ -649,7 +649,7 @@ return ff_compiler_Syntax.TargetNames(true, _c.browser_)
|
|
|
649
649
|
break
|
|
650
650
|
}
|
|
651
651
|
if(_1 === "browser" && targets_.browser_) {
|
|
652
|
-
throw ff_core_Js.initializeError_(
|
|
652
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(token_), "Duplicate target 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)
|
|
653
653
|
}
|
|
654
654
|
if(_1 === "browser") {
|
|
655
655
|
targets_ = (((_c) => {
|
|
@@ -659,7 +659,7 @@ break
|
|
|
659
659
|
}
|
|
660
660
|
{
|
|
661
661
|
const t_ = _1;
|
|
662
|
-
throw ff_core_Js.initializeError_(
|
|
662
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(token_), ("Unexpected target: " + 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)
|
|
663
663
|
}
|
|
664
664
|
} while(false)
|
|
665
665
|
};
|
|
@@ -706,14 +706,14 @@ part_ = ((part_ + "-") + readPart_())
|
|
|
706
706
|
if(ff_core_String.String_any(part_, ((_w1) => {
|
|
707
707
|
return ff_core_Char.Char_isAsciiUpper(_w1)
|
|
708
708
|
}))) {
|
|
709
|
-
throw ff_core_Js.initializeError_(
|
|
709
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, ("Package names and paths must not contain upper case letters: " + part_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
710
710
|
};
|
|
711
711
|
if((ff_core_String.String_any(part_, ((_w1) => {
|
|
712
712
|
return (_w1 === 95)
|
|
713
713
|
})) || ff_core_String.String_any(part_, ((_w1) => {
|
|
714
714
|
return (_w1 === 46)
|
|
715
715
|
})))) {
|
|
716
|
-
throw ff_core_Js.initializeError_(
|
|
716
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, ("Package names and paths must not contain underscores or dots: " + part_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
717
717
|
};
|
|
718
718
|
return part_
|
|
719
719
|
}
|
|
@@ -1130,7 +1130,7 @@ const e_ = _1;
|
|
|
1130
1130
|
return ff_compiler_Syntax.EAssignField(e_.at_, operator_, e_.record_, e_.field_, value_)
|
|
1131
1131
|
}
|
|
1132
1132
|
{
|
|
1133
|
-
throw ff_core_Js.initializeError_(
|
|
1133
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(token_), "Only variables and fields are assignable"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1134
1134
|
}
|
|
1135
1135
|
}
|
|
1136
1136
|
}
|
|
@@ -1350,7 +1350,7 @@ let result_ = ff_compiler_Syntax.ECall(record_.at_, objectTarget_, effect_, [],
|
|
|
1350
1350
|
for(let for_a = arguments_.first_, for_i = 0, for_l = for_a.length; for_i < for_l; for_i++) {
|
|
1351
1351
|
const argument_ = for_a[for_i];
|
|
1352
1352
|
if(ff_core_Option.Option_isEmpty(argument_.name_)) {
|
|
1353
|
-
throw ff_core_Js.initializeError_(
|
|
1353
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(argument_.at_, "Expected a named argument"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1354
1354
|
};
|
|
1355
1355
|
const target_ = ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EField(ff_compiler_Token.Token_at(token_), false, result_, "with"), false);
|
|
1356
1356
|
result_ = ff_compiler_Syntax.ECall(record_.at_, target_, effect_, [], [ff_compiler_Syntax.Argument(argument_.at_, ff_core_Option.None(), ff_compiler_Syntax.EString(argument_.at_, (("\"" + ff_core_Option.Option_grab(argument_.name_)) + "\""))), ff_compiler_Syntax.Argument(argument_.value_.at_, ff_core_Option.None(), argument_.value_)], [])
|
|
@@ -1359,7 +1359,7 @@ return result_
|
|
|
1359
1359
|
}
|
|
1360
1360
|
{
|
|
1361
1361
|
const i_ = _1.value_;
|
|
1362
|
-
throw ff_core_Js.initializeError_(
|
|
1362
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError((arguments_.first_[i_] ?? ff_core_List.List_grab(arguments_.first_, i_)).at_, "Unexpected named argument"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1363
1363
|
}
|
|
1364
1364
|
}
|
|
1365
1365
|
} else if(ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "{")) {
|
|
@@ -1385,7 +1385,7 @@ return (!ff_core_Option.Option_isEmpty(_w1.name_))
|
|
|
1385
1385
|
}))
|
|
1386
1386
|
if(if_o.Some) {
|
|
1387
1387
|
const argument_ = if_o.value_;
|
|
1388
|
-
throw ff_core_Js.initializeError_(
|
|
1388
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(argument_.at_, "Unexpected named argument"), 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
|
const effect_ = ff_compiler_Parser.Parser_freshUnificationVariable(self_, record_.at_);
|
|
@@ -1469,7 +1469,7 @@ return result_
|
|
|
1469
1469
|
const token_ = ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LWildcard());
|
|
1470
1470
|
return ff_compiler_Syntax.EWildcard(ff_compiler_Token.Token_at(token_), 0)
|
|
1471
1471
|
} else {
|
|
1472
|
-
throw ff_core_Js.initializeError_(
|
|
1472
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(ff_compiler_Parser.Parser_current(self_)), ("Expected atom, got " + ff_compiler_Token.Token_raw(ff_compiler_Parser.Parser_current(self_)))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1473
1473
|
}
|
|
1474
1474
|
}
|
|
1475
1475
|
|
|
@@ -1592,7 +1592,7 @@ return p_
|
|
|
1592
1592
|
}
|
|
1593
1593
|
{
|
|
1594
1594
|
const p_ = items_a[0].first_;
|
|
1595
|
-
throw ff_core_Js.initializeError_(
|
|
1595
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(p_.at_, "Invalid pattern: ... is only allowed for the last element in a list"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1596
1596
|
}
|
|
1597
1597
|
}
|
|
1598
1598
|
const items_ = ff_core_Array.new_();
|
|
@@ -1677,7 +1677,7 @@ if(ff_core_Equal.notEquals_(c_.kind_, kind_, ff_compiler_Token.ff_core_Equal_Equ
|
|
|
1677
1677
|
if(((ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_) && ff_compiler_Token.ff_core_Equal_Equal$ff_compiler_Token_TokenKind.equals_(kind_, ff_compiler_Token.LUpper())) && ff_compiler_Token.ff_core_Equal_Equal$ff_compiler_Token_TokenKind.equals_(c_.kind_, ff_compiler_Token.LLower()))) {
|
|
1678
1678
|
|
|
1679
1679
|
} else {
|
|
1680
|
-
throw ff_core_Js.initializeError_(
|
|
1680
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(c_), ((("Expected " + ff_compiler_Token.ff_core_Show_Show$ff_compiler_Token_TokenKind.show_(kind_)) + ", got ") + ff_compiler_Token.Token_raw(c_))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1681
1681
|
}
|
|
1682
1682
|
};
|
|
1683
1683
|
self_.offset_ += 1;
|
|
@@ -1690,14 +1690,14 @@ if(ff_core_Equal.notEquals_(c_.kind_, kind_, ff_compiler_Token.ff_core_Equal_Equ
|
|
|
1690
1690
|
if((ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_) && (((value_ === ")") || (value_ === "]")) || (value_ === "}")))) {
|
|
1691
1691
|
|
|
1692
1692
|
} else {
|
|
1693
|
-
throw ff_core_Js.initializeError_(
|
|
1693
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(c_), ((((("Expected " + ff_compiler_Token.ff_core_Show_Show$ff_compiler_Token_TokenKind.show_(kind_)) + " ") + value_) + ", got ") + ff_compiler_Token.Token_raw(c_))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1694
1694
|
}
|
|
1695
1695
|
};
|
|
1696
1696
|
if((!ff_compiler_Token.Token_rawIs(c_, value_))) {
|
|
1697
1697
|
if((ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_) && (((value_ === ")") || (value_ === "]")) || (value_ === "}")))) {
|
|
1698
1698
|
self_.offset_ -= 1
|
|
1699
1699
|
} else {
|
|
1700
|
-
throw ff_core_Js.initializeError_(
|
|
1700
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(c_), ((("Expected " + value_) + " got ") + ff_compiler_Token.Token_raw(c_))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1701
1701
|
}
|
|
1702
1702
|
};
|
|
1703
1703
|
self_.offset_ += 1;
|
|
@@ -1728,7 +1728,7 @@ const moduleWithPackageInfo_ = ff_compiler_Parser.Parser_parseModuleWithPackageI
|
|
|
1728
1728
|
const if_o = moduleWithPackageInfo_.packageInfo_
|
|
1729
1729
|
if(if_o.Some) {
|
|
1730
1730
|
const info_ = if_o.value_;
|
|
1731
|
-
throw ff_core_Js.initializeError_(
|
|
1731
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(info_.package_.at_, "Package and dependencies already declared in package.ff"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1732
1732
|
}
|
|
1733
1733
|
};
|
|
1734
1734
|
return moduleWithPackageInfo_.module_
|
|
@@ -1754,7 +1754,7 @@ return p_
|
|
|
1754
1754
|
})())
|
|
1755
1755
|
: ff_compiler_Syntax.DPackage(location_, self_.moduleKey_.packagePair_, ff_compiler_Syntax.Version(location_, 0, 0, 0), ff_compiler_Syntax.TargetNames(self_.targetIsNode_, (!self_.targetIsNode_))));
|
|
1756
1756
|
if((ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LKeyword()) && ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "package"))) {
|
|
1757
|
-
throw ff_core_Js.initializeError_(
|
|
1757
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(ff_compiler_Parser.Parser_current(self_)), "Duplicate package definition"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1758
1758
|
};
|
|
1759
1759
|
const dependencies_ = ff_core_Array.new_();
|
|
1760
1760
|
while((ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LKeyword()) && ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "dependency"))) {
|
|
@@ -1802,11 +1802,11 @@ ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LLower())
|
|
|
1802
1802
|
imports_.array.push(ff_compiler_Parser.Parser_parseImportDefinition(self_, self_.moduleKey_.packagePair_))
|
|
1803
1803
|
}
|
|
1804
1804
|
} else if((ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LKeyword()) && ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "include"))) {
|
|
1805
|
-
throw ff_core_Js.initializeError_(
|
|
1805
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(ff_compiler_Parser.Parser_current(self_)), "Includes must be at the top of the file or below 'package'"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1806
1806
|
} else if((ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LKeyword()) && ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "dependency"))) {
|
|
1807
|
-
throw ff_core_Js.initializeError_(
|
|
1807
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(ff_compiler_Parser.Parser_current(self_)), "Dependencies must be at the top of the file or below 'package'"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1808
1808
|
} else if((ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LKeyword()) && ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "package"))) {
|
|
1809
|
-
throw ff_core_Js.initializeError_(
|
|
1809
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(ff_compiler_Parser.Parser_current(self_)), "Package definition must be at the top of the file"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
1810
1810
|
} else {
|
|
1811
1811
|
ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LEnd())
|
|
1812
1812
|
};
|
|
@@ -2050,9 +2050,9 @@ const variantFields_ = ((!ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parse
|
|
|
2050
2050
|
if(((!allowMutable_) && ff_core_List.List_any(variantFields_, ((_w1) => {
|
|
2051
2051
|
return _w1.mutable_
|
|
2052
2052
|
})))) {
|
|
2053
|
-
throw ff_core_Js.initializeError_(
|
|
2053
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_core_Option.Option_grab(ff_core_List.List_find(variantFields_, ((_w1) => {
|
|
2054
2054
|
return _w1.mutable_
|
|
2055
|
-
}))).at_, "Only classes can have mutable fields"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2055
|
+
}))).at_, "Only classes can have mutable fields"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2056
2056
|
};
|
|
2057
2057
|
variantsBuilder_.array.push(ff_compiler_Syntax.Variant(ff_compiler_Token.Token_at(variantNameToken_), ff_compiler_Token.Token_raw(variantNameToken_), variantFields_));
|
|
2058
2058
|
if((!ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(self_), ff_compiler_Token.LBracketRight()))) {
|
|
@@ -2067,14 +2067,14 @@ return ff_core_Array.Array_toList(variantsBuilder_, 0, 9007199254740991)
|
|
|
2067
2067
|
})()));
|
|
2068
2068
|
if((newtype_ && (commonFields_.length !== 1))) {
|
|
2069
2069
|
ff_core_Log.show_(commonFields_, ff_core_Show.ff_core_Show_Show$ff_core_List_List(ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_Parameter));
|
|
2070
|
-
throw ff_core_Js.initializeError_(
|
|
2070
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(nameToken_), "Newtypes must have exactly one 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)
|
|
2071
2071
|
};
|
|
2072
2072
|
if(((!allowMutable_) && ff_core_List.List_any(commonFields_, ((_w1) => {
|
|
2073
2073
|
return _w1.mutable_
|
|
2074
2074
|
})))) {
|
|
2075
|
-
throw ff_core_Js.initializeError_(
|
|
2075
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_core_Option.Option_grab(ff_core_List.List_find(commonFields_, ((_w1) => {
|
|
2076
2076
|
return _w1.mutable_
|
|
2077
|
-
}))).at_, "Only classes and capabilities can have mutable fields"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2077
|
+
}))).at_, "Only classes and capabilities can have mutable fields"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2078
2078
|
};
|
|
2079
2079
|
const generics_ = [...effectParameter_, ...poly_.generics_];
|
|
2080
2080
|
const result_ = ff_compiler_Syntax.DType(ff_compiler_Token.Token_at(nameToken_), newtype_, (!allowMutable_), ff_compiler_Token.Token_raw(nameToken_), generics_, poly_.constraints_, commonFields_, variants_);
|
|
@@ -2149,7 +2149,7 @@ const token_ = (ff_compiler_Token.Token_is(ff_compiler_Parser.Parser_current(sel
|
|
|
2149
2149
|
do {
|
|
2150
2150
|
const _1 = ff_compiler_Token.Token_raw(token_);
|
|
2151
2151
|
if(_1 === "node" && targets_.node_) {
|
|
2152
|
-
throw ff_core_Js.initializeError_(
|
|
2152
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(token_), "Duplicate target 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)
|
|
2153
2153
|
}
|
|
2154
2154
|
if(_1 === "node") {
|
|
2155
2155
|
targets_ = (((_c) => {
|
|
@@ -2158,7 +2158,7 @@ return ff_compiler_Syntax.TargetNames(true, _c.browser_)
|
|
|
2158
2158
|
break
|
|
2159
2159
|
}
|
|
2160
2160
|
if(_1 === "browser" && targets_.browser_) {
|
|
2161
|
-
throw ff_core_Js.initializeError_(
|
|
2161
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(token_), "Duplicate target 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)
|
|
2162
2162
|
}
|
|
2163
2163
|
if(_1 === "browser") {
|
|
2164
2164
|
targets_ = (((_c) => {
|
|
@@ -2168,7 +2168,7 @@ break
|
|
|
2168
2168
|
}
|
|
2169
2169
|
{
|
|
2170
2170
|
const t_ = _1;
|
|
2171
|
-
throw ff_core_Js.initializeError_(
|
|
2171
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(token_), ("Unexpected target: " + 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)
|
|
2172
2172
|
}
|
|
2173
2173
|
} while(false)
|
|
2174
2174
|
};
|
|
@@ -2215,14 +2215,14 @@ part_ = ((part_ + "-") + readPart_())
|
|
|
2215
2215
|
if(ff_core_String.String_any(part_, ((_w1) => {
|
|
2216
2216
|
return ff_core_Char.Char_isAsciiUpper(_w1)
|
|
2217
2217
|
}))) {
|
|
2218
|
-
throw ff_core_Js.initializeError_(
|
|
2218
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, ("Package names and paths must not contain upper case letters: " + part_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2219
2219
|
};
|
|
2220
2220
|
if((ff_core_String.String_any(part_, ((_w1) => {
|
|
2221
2221
|
return (_w1 === 95)
|
|
2222
2222
|
})) || ff_core_String.String_any(part_, ((_w1) => {
|
|
2223
2223
|
return (_w1 === 46)
|
|
2224
2224
|
})))) {
|
|
2225
|
-
throw ff_core_Js.initializeError_(
|
|
2225
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, ("Package names and paths must not contain underscores or dots: " + part_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2226
2226
|
};
|
|
2227
2227
|
return part_
|
|
2228
2228
|
}
|
|
@@ -2639,7 +2639,7 @@ const e_ = _1;
|
|
|
2639
2639
|
return ff_compiler_Syntax.EAssignField(e_.at_, operator_, e_.record_, e_.field_, value_)
|
|
2640
2640
|
}
|
|
2641
2641
|
{
|
|
2642
|
-
throw ff_core_Js.initializeError_(
|
|
2642
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(token_), "Only variables and fields are assignable"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2643
2643
|
}
|
|
2644
2644
|
}
|
|
2645
2645
|
}
|
|
@@ -2859,7 +2859,7 @@ let result_ = ff_compiler_Syntax.ECall(record_.at_, objectTarget_, effect_, [],
|
|
|
2859
2859
|
for(let for_a = arguments_.first_, for_i = 0, for_l = for_a.length; for_i < for_l; for_i++) {
|
|
2860
2860
|
const argument_ = for_a[for_i];
|
|
2861
2861
|
if(ff_core_Option.Option_isEmpty(argument_.name_)) {
|
|
2862
|
-
throw ff_core_Js.initializeError_(
|
|
2862
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(argument_.at_, "Expected a named argument"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2863
2863
|
};
|
|
2864
2864
|
const target_ = ff_compiler_Syntax.DynamicCall(ff_compiler_Syntax.EField(ff_compiler_Token.Token_at(token_), false, result_, "with"), false);
|
|
2865
2865
|
result_ = ff_compiler_Syntax.ECall(record_.at_, target_, effect_, [], [ff_compiler_Syntax.Argument(argument_.at_, ff_core_Option.None(), ff_compiler_Syntax.EString(argument_.at_, (("\"" + ff_core_Option.Option_grab(argument_.name_)) + "\""))), ff_compiler_Syntax.Argument(argument_.value_.at_, ff_core_Option.None(), argument_.value_)], [])
|
|
@@ -2868,7 +2868,7 @@ return result_
|
|
|
2868
2868
|
}
|
|
2869
2869
|
{
|
|
2870
2870
|
const i_ = _1.value_;
|
|
2871
|
-
throw ff_core_Js.initializeError_(
|
|
2871
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError((arguments_.first_[i_] ?? ff_core_List.List_grab(arguments_.first_, i_)).at_, "Unexpected named argument"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2872
2872
|
}
|
|
2873
2873
|
}
|
|
2874
2874
|
} else if(ff_compiler_Token.Token_rawIs(ff_compiler_Parser.Parser_current(self_), "{")) {
|
|
@@ -2894,7 +2894,7 @@ return (!ff_core_Option.Option_isEmpty(_w1.name_))
|
|
|
2894
2894
|
}))
|
|
2895
2895
|
if(if_o.Some) {
|
|
2896
2896
|
const argument_ = if_o.value_;
|
|
2897
|
-
throw ff_core_Js.initializeError_(
|
|
2897
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(argument_.at_, "Unexpected named argument"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2898
2898
|
}
|
|
2899
2899
|
};
|
|
2900
2900
|
const effect_ = ff_compiler_Parser.Parser_freshUnificationVariable(self_, record_.at_);
|
|
@@ -2978,7 +2978,7 @@ return result_
|
|
|
2978
2978
|
const token_ = ff_compiler_Parser.Parser_skip(self_, ff_compiler_Token.LWildcard());
|
|
2979
2979
|
return ff_compiler_Syntax.EWildcard(ff_compiler_Token.Token_at(token_), 0)
|
|
2980
2980
|
} else {
|
|
2981
|
-
throw ff_core_Js.initializeError_(
|
|
2981
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Token.Token_at(ff_compiler_Parser.Parser_current(self_)), ("Expected atom, got " + ff_compiler_Token.Token_raw(ff_compiler_Parser.Parser_current(self_)))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
2982
2982
|
}
|
|
2983
2983
|
}
|
|
2984
2984
|
|
|
@@ -3101,7 +3101,7 @@ return p_
|
|
|
3101
3101
|
}
|
|
3102
3102
|
{
|
|
3103
3103
|
const p_ = items_a[0].first_;
|
|
3104
|
-
throw ff_core_Js.initializeError_(
|
|
3104
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(p_.at_, "Invalid pattern: ... is only allowed for the last element in a list"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
3105
3105
|
}
|
|
3106
3106
|
}
|
|
3107
3107
|
const items_ = ff_core_Array.new_();
|
|
@@ -3259,7 +3259,7 @@ serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_
|
|
|
3259
3259
|
return ff_compiler_Parser.Poly(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_Constraint).deserializeUsing_(serialization_))
|
|
3260
3260
|
}
|
|
3261
3261
|
{
|
|
3262
|
-
throw ff_core_Js.initializeError_(
|
|
3262
|
+
throw ff_core_Js.initializeError_(ff_core_Serializable.DeserializationChecksumException(), new Error(), ff_core_Serializable.ff_core_Any_HasAnyTag$ff_core_Serializable_DeserializationChecksumException, ff_core_Serializable.ff_core_Show_Show$ff_core_Serializable_DeserializationChecksumException)
|
|
3263
3263
|
}
|
|
3264
3264
|
}
|
|
3265
3265
|
},
|
|
@@ -3287,7 +3287,7 @@ serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_
|
|
|
3287
3287
|
return ff_compiler_Parser.Poly(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_Constraint).deserializeUsing_(serialization_))
|
|
3288
3288
|
}
|
|
3289
3289
|
{
|
|
3290
|
-
throw ff_core_Js.initializeError_(
|
|
3290
|
+
throw ff_core_Js.initializeError_(ff_core_Serializable.DeserializationChecksumException(), new Error(), ff_core_Serializable.ff_core_Any_HasAnyTag$ff_core_Serializable_DeserializationChecksumException, ff_core_Serializable.ff_core_Show_Show$ff_core_Serializable_DeserializationChecksumException)
|
|
3291
3291
|
}
|
|
3292
3292
|
}
|
|
3293
3293
|
},
|