firefly-compiler 0.4.17 → 0.4.19
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/Compiler.ff +6 -5
- package/compiler/Inference.ff +31 -19
- package/compiler/JsEmitter.ff +98 -71
- package/compiler/JsImporter.ff +1 -1
- package/compiler/LspHook.ff +4 -4
- package/compiler/Main.ff +6 -6
- package/compiler/Parser.ff +39 -39
- package/compiler/Patterns.ff +2 -0
- package/compiler/Syntax.ff +1 -1
- package/compiler/Tokenizer.ff +2 -2
- package/compiler/Workspace.ff +2 -2
- package/core/Array.ff +135 -294
- package/core/Buffer.ff +3 -3
- package/core/BuildSystem.ff +1 -1
- package/core/Equal.ff +36 -52
- package/core/HttpClient.ff +1 -1
- package/core/IntMap.ff +14 -18
- package/core/JsSystem.ff +1 -1
- package/core/JsValue.ff +6 -12
- package/core/Json.ff +19 -28
- package/core/List.ff +281 -312
- package/core/Map.ff +4 -8
- package/core/NodeSystem.ff +2 -2
- package/core/Option.ff +0 -4
- package/core/Ordering.ff +10 -6
- package/core/Pair.ff +0 -4
- package/core/Random.ff +12 -26
- package/core/RbMap.ff +216 -216
- package/core/Serializable.ff +9 -18
- package/core/Set.ff +0 -1
- package/core/SourceLocation.ff +1 -1
- package/core/Stack.ff +32 -45
- package/core/Stream.ff +10 -14
- package/core/String.ff +24 -6
- package/core/StringMap.ff +15 -19
- package/guide/Main.ff +20 -2
- package/lsp/CompletionHandler.ff +4 -4
- package/lsp/Handler.ff +45 -34
- package/lsp/HoverHandler.ff +2 -2
- package/lsp/LanguageServer.ff +2 -2
- package/lsp/SignatureHelpHandler.ff +1 -1
- package/lsp/SymbolHandler.ff +1 -1
- package/lux/Lux.ff +3 -3
- package/output/js/ff/compiler/Builder.mjs +19 -21
- package/output/js/ff/compiler/Compiler.mjs +18 -20
- package/output/js/ff/compiler/Dependencies.mjs +8 -10
- package/output/js/ff/compiler/Deriver.mjs +234 -236
- package/output/js/ff/compiler/Dictionaries.mjs +6 -8
- package/output/js/ff/compiler/Environment.mjs +42 -44
- package/output/js/ff/compiler/Inference.mjs +346 -304
- package/output/js/ff/compiler/JsEmitter.mjs +907 -833
- package/output/js/ff/compiler/JsImporter.mjs +0 -2
- package/output/js/ff/compiler/LspHook.mjs +10 -12
- package/output/js/ff/compiler/Main.mjs +109 -111
- package/output/js/ff/compiler/Parser.mjs +405 -407
- package/output/js/ff/compiler/Patterns.mjs +64 -50
- package/output/js/ff/compiler/Resolver.mjs +36 -38
- package/output/js/ff/compiler/Substitution.mjs +4 -6
- package/output/js/ff/compiler/Syntax.mjs +160 -162
- package/output/js/ff/compiler/Token.mjs +52 -54
- package/output/js/ff/compiler/Tokenizer.mjs +16 -18
- package/output/js/ff/compiler/Unification.mjs +24 -26
- package/output/js/ff/compiler/Wildcards.mjs +0 -2
- package/output/js/ff/compiler/Workspace.mjs +18 -20
- package/output/js/ff/core/Any.mjs +0 -2
- package/output/js/ff/core/Array.mjs +216 -613
- package/output/js/ff/core/AssetSystem.mjs +2 -4
- package/output/js/ff/core/Atomic.mjs +0 -2
- package/output/js/ff/core/Bool.mjs +0 -2
- package/output/js/ff/core/Box.mjs +0 -2
- package/output/js/ff/core/BrowserSystem.mjs +0 -2
- package/output/js/ff/core/Buffer.mjs +0 -2
- package/output/js/ff/core/BuildSystem.mjs +12 -14
- package/output/js/ff/core/Channel.mjs +0 -2
- package/output/js/ff/core/Char.mjs +0 -2
- package/output/js/ff/core/Core.mjs +0 -2
- package/output/js/ff/core/Duration.mjs +0 -2
- package/output/js/ff/core/Equal.mjs +0 -22
- package/output/js/ff/core/Error.mjs +0 -2
- package/output/js/ff/core/FileHandle.mjs +0 -2
- package/output/js/ff/core/Float.mjs +0 -2
- package/output/js/ff/core/HttpClient.mjs +2 -4
- package/output/js/ff/core/Instant.mjs +0 -2
- package/output/js/ff/core/Int.mjs +8 -10
- package/output/js/ff/core/IntMap.mjs +32 -42
- package/output/js/ff/core/JsSystem.mjs +1 -3
- package/output/js/ff/core/JsValue.mjs +5 -12
- package/output/js/ff/core/Json.mjs +23 -56
- package/output/js/ff/core/List.mjs +648 -1989
- package/output/js/ff/core/Lock.mjs +0 -2
- package/output/js/ff/core/Log.mjs +0 -2
- package/output/js/ff/core/Map.mjs +10 -20
- package/output/js/ff/core/NodeSystem.mjs +6 -8
- package/output/js/ff/core/Nothing.mjs +0 -2
- package/output/js/ff/core/Option.mjs +8 -18
- package/output/js/ff/core/Ordering.mjs +20 -98
- package/output/js/ff/core/Pair.mjs +6 -16
- package/output/js/ff/core/Path.mjs +12 -14
- package/output/js/ff/core/Random.mjs +24 -54
- package/output/js/ff/core/RbMap.mjs +54 -56
- package/output/js/ff/core/Serializable.mjs +19 -36
- package/output/js/ff/core/Set.mjs +0 -14
- package/output/js/ff/core/Show.mjs +0 -2
- package/output/js/ff/core/SourceLocation.mjs +0 -2
- package/output/js/ff/core/Stream.mjs +34 -44
- package/output/js/ff/core/String.mjs +31 -5
- package/output/js/ff/core/StringMap.mjs +32 -42
- package/output/js/ff/core/Task.mjs +0 -2
- package/output/js/ff/core/Try.mjs +0 -2
- package/output/js/ff/core/Unit.mjs +0 -2
- package/package.json +1 -1
- package/vscode/package.json +1 -1
- package/webserver/WebServer.ff +8 -8
- package/output/js/ff/core/Stack.mjs +0 -603
|
@@ -86,8 +86,6 @@ import * as ff_core_Show from "../../ff/core/Show.mjs"
|
|
|
86
86
|
|
|
87
87
|
import * as ff_core_SourceLocation from "../../ff/core/SourceLocation.mjs"
|
|
88
88
|
|
|
89
|
-
import * as ff_core_Stack from "../../ff/core/Stack.mjs"
|
|
90
|
-
|
|
91
89
|
import * as ff_core_Stream from "../../ff/core/Stream.mjs"
|
|
92
90
|
|
|
93
91
|
import * as ff_core_String from "../../ff/core/String.mjs"
|
|
@@ -133,7 +131,7 @@ return
|
|
|
133
131
|
}
|
|
134
132
|
}
|
|
135
133
|
}))(ff_core_List.List_grabFirst(c_.generics_));
|
|
136
|
-
return ff_core_Pair.Pair(ff_compiler_Unification.InstanceKey(c_.name_, typeName_), ff_compiler_Unification.InstanceValue(
|
|
134
|
+
return ff_core_Pair.Pair(ff_compiler_Unification.InstanceKey(c_.name_, typeName_), ff_compiler_Unification.InstanceValue([], [], ff_compiler_Syntax.PackagePair("", ""), "", c_.name_, c_.generics_))
|
|
137
135
|
})), ff_compiler_Unification.ff_core_Ordering_Order$ff_compiler_Unification_InstanceKey)
|
|
138
136
|
}
|
|
139
137
|
|
|
@@ -163,7 +161,7 @@ return
|
|
|
163
161
|
}
|
|
164
162
|
}
|
|
165
163
|
}))(ff_core_List.List_grabFirst(c_.generics_));
|
|
166
|
-
return ff_core_Pair.Pair(ff_compiler_Unification.InstanceKey(c_.name_, typeName_), ff_compiler_Unification.InstanceValue(
|
|
164
|
+
return ff_core_Pair.Pair(ff_compiler_Unification.InstanceKey(c_.name_, typeName_), ff_compiler_Unification.InstanceValue([], [], ff_compiler_Syntax.PackagePair("", ""), "", c_.name_, c_.generics_))
|
|
167
165
|
})), ff_compiler_Unification.ff_core_Ordering_Order$ff_compiler_Unification_InstanceKey)
|
|
168
166
|
}
|
|
169
167
|
|
|
@@ -618,7 +616,7 @@ return
|
|
|
618
616
|
|
|
619
617
|
export function Dictionaries_makeDictionary(self_, at_, typeParameters_, typeArguments_, constraint_) {
|
|
620
618
|
const instantiationMap_ = ff_core_List.List_toMap(ff_core_List.List_zip(typeParameters_, typeArguments_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String);
|
|
621
|
-
const unification_ = ff_compiler_Unification.make_(
|
|
619
|
+
const unification_ = ff_compiler_Unification.make_([], false);
|
|
622
620
|
const newGenerics_ = ff_core_List.List_map(constraint_.generics_, ((_w1) => {
|
|
623
621
|
return ff_compiler_Unification.Unification_instantiate(unification_, instantiationMap_, _w1)
|
|
624
622
|
}));
|
|
@@ -1098,7 +1096,7 @@ return
|
|
|
1098
1096
|
|
|
1099
1097
|
export async function Dictionaries_makeDictionary$(self_, at_, typeParameters_, typeArguments_, constraint_, $task) {
|
|
1100
1098
|
const instantiationMap_ = ff_core_List.List_toMap(ff_core_List.List_zip(typeParameters_, typeArguments_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String);
|
|
1101
|
-
const unification_ = ff_compiler_Unification.make_(
|
|
1099
|
+
const unification_ = ff_compiler_Unification.make_([], false);
|
|
1102
1100
|
const newGenerics_ = ff_core_List.List_map(constraint_.generics_, ((_w1) => {
|
|
1103
1101
|
return ff_compiler_Unification.Unification_instantiate(unification_, instantiationMap_, _w1)
|
|
1104
1102
|
}));
|
|
@@ -1265,7 +1263,7 @@ serialization_.offset_ += 1;
|
|
|
1265
1263
|
{
|
|
1266
1264
|
const _1 = variantIndex_;
|
|
1267
1265
|
{
|
|
1268
|
-
if(_1
|
|
1266
|
+
if(_1 === 0) {
|
|
1269
1267
|
serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 37), 0);
|
|
1270
1268
|
return ff_compiler_Dictionaries.Dictionaries(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Map_Map(ff_compiler_Unification.ff_core_Serializable_Serializable$ff_compiler_Unification_InstanceKey, ff_compiler_Unification.ff_core_Ordering_Order$ff_compiler_Unification_InstanceKey, ff_compiler_Unification.ff_core_Serializable_Serializable$ff_compiler_Unification_InstanceValue).deserializeUsing_(serialization_))
|
|
1271
1269
|
return
|
|
@@ -1298,7 +1296,7 @@ serialization_.offset_ += 1;
|
|
|
1298
1296
|
{
|
|
1299
1297
|
const _1 = variantIndex_;
|
|
1300
1298
|
{
|
|
1301
|
-
if(_1
|
|
1299
|
+
if(_1 === 0) {
|
|
1302
1300
|
serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 37), 0);
|
|
1303
1301
|
return ff_compiler_Dictionaries.Dictionaries(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Map_Map(ff_compiler_Unification.ff_core_Serializable_Serializable$ff_compiler_Unification_InstanceKey, ff_compiler_Unification.ff_core_Ordering_Order$ff_compiler_Unification_InstanceKey, ff_compiler_Unification.ff_core_Serializable_Serializable$ff_compiler_Unification_InstanceValue).deserializeUsing_(serialization_))
|
|
1304
1302
|
return
|
|
@@ -82,8 +82,6 @@ import * as ff_core_Show from "../../ff/core/Show.mjs"
|
|
|
82
82
|
|
|
83
83
|
import * as ff_core_SourceLocation from "../../ff/core/SourceLocation.mjs"
|
|
84
84
|
|
|
85
|
-
import * as ff_core_Stack from "../../ff/core/Stack.mjs"
|
|
86
|
-
|
|
87
85
|
import * as ff_core_Stream from "../../ff/core/Stream.mjs"
|
|
88
86
|
|
|
89
87
|
import * as ff_core_String from "../../ff/core/String.mjs"
|
|
@@ -128,7 +126,7 @@ return _w1.traits_
|
|
|
128
126
|
return ff_core_Map.Map_addAll(_w1, _w2, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String)
|
|
129
127
|
})), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_core_List.List_toMap(ff_core_List.List_map(module_.imports_, ((i_) => {
|
|
130
128
|
return ff_core_Pair.Pair(i_.alias_, i_)
|
|
131
|
-
})), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_compiler_Syntax.TConstructor(ff_compiler_Syntax.Location(module_.file_, 0, 0), "ff:core/Nothing.Nothing",
|
|
129
|
+
})), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_compiler_Syntax.TConstructor(ff_compiler_Syntax.Location(module_.file_, 0, 0), "ff:core/Nothing.Nothing", []), ff_core_Option.None())
|
|
132
130
|
}
|
|
133
131
|
|
|
134
132
|
export function fullName_(module_, name_) {
|
|
@@ -144,23 +142,23 @@ const functions_ = ff_core_List.List_map(module_.functions_, ((d_) => {
|
|
|
144
142
|
return ff_core_Pair.Pair(ff_compiler_Environment.fullName_(module_, d_.signature_.name_), ff_compiler_Environment.Scheme(false, false, false, false, d_.signature_))
|
|
145
143
|
}));
|
|
146
144
|
const lets_ = ff_core_List.List_map(module_.lets_, ((d_) => {
|
|
147
|
-
const noEffect_ = ff_compiler_Syntax.TConstructor(d_.at_, "ff:core/Nothing.Nothing",
|
|
148
|
-
return ff_core_Pair.Pair(ff_compiler_Environment.fullName_(module_, d_.name_), ff_compiler_Environment.Scheme(true, false, false, false, ff_compiler_Syntax.Signature(d_.at_, d_.name_, false,
|
|
145
|
+
const noEffect_ = ff_compiler_Syntax.TConstructor(d_.at_, "ff:core/Nothing.Nothing", []);
|
|
146
|
+
return ff_core_Pair.Pair(ff_compiler_Environment.fullName_(module_, d_.name_), ff_compiler_Environment.Scheme(true, false, false, false, ff_compiler_Syntax.Signature(d_.at_, d_.name_, false, [], [], [], d_.variableType_, noEffect_)))
|
|
149
147
|
}));
|
|
150
148
|
const traitMethods_ = ff_core_List.List_flatMap(module_.traits_, ((definition_) => {
|
|
151
149
|
const generics_ = ff_core_List.List_map(definition_.generics_, ((name_) => {
|
|
152
|
-
return ff_compiler_Syntax.TConstructor(definition_.at_, name_,
|
|
150
|
+
return ff_compiler_Syntax.TConstructor(definition_.at_, name_, [])
|
|
153
151
|
}));
|
|
154
152
|
const constraint_ = ff_compiler_Syntax.Constraint(definition_.at_, ff_compiler_Environment.fullName_(module_, definition_.name_), generics_);
|
|
155
153
|
const outerConstraints_ = (alreadyFlat_
|
|
156
|
-
?
|
|
154
|
+
? []
|
|
157
155
|
: definition_.constraints_);
|
|
158
156
|
return ff_core_List.List_map(definition_.methods_, ((methodSignature_) => {
|
|
159
|
-
const generics_ = ff_core_List.List_partition(
|
|
157
|
+
const generics_ = ff_core_List.List_partition([...definition_.generics_, ...methodSignature_.generics_], ((_w1) => {
|
|
160
158
|
return (_w1 === "Q$")
|
|
161
159
|
}));
|
|
162
160
|
const signature_ = (((_c) => {
|
|
163
|
-
return ff_compiler_Syntax.Signature(_c.at_, _c.name_, _c.member_, ff_core_List.
|
|
161
|
+
return ff_compiler_Syntax.Signature(_c.at_, _c.name_, _c.member_, [...ff_core_List.List_takeFirst(generics_.first_, 1), ...generics_.second_], [constraint_, ...outerConstraints_, ...methodSignature_.constraints_], _c.parameters_, _c.returnType_, _c.effect_)
|
|
164
162
|
}))(methodSignature_);
|
|
165
163
|
return ff_core_Pair.Pair(ff_compiler_Environment.fullName_(module_, signature_.name_), ff_compiler_Environment.Scheme(false, false, false, true, signature_))
|
|
166
164
|
}))
|
|
@@ -188,13 +186,13 @@ const normalGenerics_ = ff_core_List.List_filter(method_.signature_.generics_, (
|
|
|
188
186
|
return (_w1 !== "Q$")
|
|
189
187
|
}));
|
|
190
188
|
const outerGenerics_ = (alreadyFlat_
|
|
191
|
-
?
|
|
189
|
+
? []
|
|
192
190
|
: d_.generics_);
|
|
193
191
|
const outerConstraints_ = (alreadyFlat_
|
|
194
|
-
?
|
|
192
|
+
? []
|
|
195
193
|
: d_.constraints_);
|
|
196
194
|
return ff_core_Pair.Pair((prefix_ + method_.signature_.name_), ff_compiler_Environment.Scheme(false, false, false, false, (((_c) => {
|
|
197
|
-
return ff_compiler_Syntax.Signature(_c.at_, _c.name_, _c.member_,
|
|
195
|
+
return ff_compiler_Syntax.Signature(_c.at_, _c.name_, _c.member_, [...effect_, ...outerGenerics_, ...normalGenerics_], [...outerConstraints_, ...method_.signature_.constraints_], [selfParameter_, ...method_.signature_.parameters_], _c.returnType_, _c.effect_)
|
|
198
196
|
}))(method_.signature_)))
|
|
199
197
|
}))
|
|
200
198
|
return
|
|
@@ -205,28 +203,28 @@ return
|
|
|
205
203
|
const fields_ = ff_core_List.List_flatMap(module_.types_, ((d_) => {
|
|
206
204
|
const prefix_ = (d_.name_ + "_");
|
|
207
205
|
const t_ = ff_compiler_Syntax.TConstructor(d_.at_, d_.name_, ff_core_List.List_map(d_.generics_, ((g_) => {
|
|
208
|
-
return ff_compiler_Syntax.TConstructor(d_.at_, g_,
|
|
206
|
+
return ff_compiler_Syntax.TConstructor(d_.at_, g_, [])
|
|
209
207
|
})));
|
|
210
208
|
const selfParameter_ = ff_compiler_Syntax.Parameter(d_.at_, false, d_.name_, t_, ff_core_Option.None());
|
|
211
209
|
return ff_core_List.List_map(d_.commonFields_, ((f_) => {
|
|
212
|
-
const noEffect_ = ff_compiler_Syntax.TConstructor(d_.at_, "ff:core/Nothing.Nothing",
|
|
213
|
-
return ff_core_Pair.Pair(ff_compiler_Environment.fullName_(module_, (prefix_ + f_.name_)), ff_compiler_Environment.Scheme(true, f_.mutable_, d_.newtype_, false, ff_compiler_Syntax.Signature(f_.at_, f_.name_, true, d_.generics_, d_.constraints_,
|
|
210
|
+
const noEffect_ = ff_compiler_Syntax.TConstructor(d_.at_, "ff:core/Nothing.Nothing", []);
|
|
211
|
+
return ff_core_Pair.Pair(ff_compiler_Environment.fullName_(module_, (prefix_ + f_.name_)), ff_compiler_Environment.Scheme(true, f_.mutable_, d_.newtype_, false, ff_compiler_Syntax.Signature(f_.at_, f_.name_, true, d_.generics_, d_.constraints_, [selfParameter_], f_.valueType_, noEffect_)))
|
|
214
212
|
}))
|
|
215
213
|
}));
|
|
216
214
|
const variants_ = ff_core_List.List_flatMap(module_.types_, ((d_) => {
|
|
217
215
|
const returnType_ = ff_compiler_Syntax.TConstructor(d_.at_, ff_compiler_Environment.fullName_(module_, d_.name_), ff_core_List.List_map(d_.generics_, ((typeParameter_) => {
|
|
218
|
-
return ff_compiler_Syntax.TConstructor(d_.at_, typeParameter_,
|
|
216
|
+
return ff_compiler_Syntax.TConstructor(d_.at_, typeParameter_, [])
|
|
219
217
|
})));
|
|
220
218
|
return ff_core_List.List_map(d_.variants_, ((variant_) => {
|
|
221
|
-
const noEffect_ = ff_compiler_Syntax.TConstructor(d_.at_, "ff:core/Nothing.Nothing",
|
|
222
|
-
return ff_core_Pair.Pair(ff_compiler_Environment.fullName_(module_, variant_.name_), ff_compiler_Environment.Scheme(false, false, d_.newtype_, false, ff_compiler_Syntax.Signature(variant_.at_, variant_.name_, false, d_.generics_, d_.constraints_,
|
|
219
|
+
const noEffect_ = ff_compiler_Syntax.TConstructor(d_.at_, "ff:core/Nothing.Nothing", []);
|
|
220
|
+
return ff_core_Pair.Pair(ff_compiler_Environment.fullName_(module_, variant_.name_), ff_compiler_Environment.Scheme(false, false, d_.newtype_, false, ff_compiler_Syntax.Signature(variant_.at_, variant_.name_, false, d_.generics_, d_.constraints_, [...d_.commonFields_, ...variant_.fields_], returnType_, noEffect_)))
|
|
223
221
|
}))
|
|
224
222
|
}));
|
|
225
223
|
const traits_ = ff_core_List.List_map(module_.traits_, ((d_) => {
|
|
226
224
|
return ff_core_Pair.Pair(ff_compiler_Environment.fullName_(module_, d_.name_), d_)
|
|
227
225
|
}));
|
|
228
|
-
const effect_ = ff_compiler_Syntax.TConstructor(ff_compiler_Syntax.Location(module_.file_, 0, 0), "ff:core/Nothing.Nothing",
|
|
229
|
-
return ff_compiler_Environment.Environment("", ff_core_List.List_toMap(
|
|
226
|
+
const effect_ = ff_compiler_Syntax.TConstructor(ff_compiler_Syntax.Location(module_.file_, 0, 0), "ff:core/Nothing.Nothing", []);
|
|
227
|
+
return ff_compiler_Environment.Environment("", ff_core_List.List_toMap([...functions_, ...lets_, ...fields_, ...extends_, ...variants_, ...traitMethods_], ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_core_List.List_toMap(traits_, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_core_List.List_toMap([], ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), effect_, ff_core_Option.None())
|
|
230
228
|
}
|
|
231
229
|
|
|
232
230
|
export async function make_$(module_, otherModules_, alreadyFlat_, $task) {
|
|
@@ -244,7 +242,7 @@ return _w1.traits_
|
|
|
244
242
|
return ff_core_Map.Map_addAll(_w1, _w2, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String)
|
|
245
243
|
})), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_core_List.List_toMap(ff_core_List.List_map(module_.imports_, ((i_) => {
|
|
246
244
|
return ff_core_Pair.Pair(i_.alias_, i_)
|
|
247
|
-
})), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_compiler_Syntax.TConstructor(ff_compiler_Syntax.Location(module_.file_, 0, 0), "ff:core/Nothing.Nothing",
|
|
245
|
+
})), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_compiler_Syntax.TConstructor(ff_compiler_Syntax.Location(module_.file_, 0, 0), "ff:core/Nothing.Nothing", []), ff_core_Option.None())
|
|
248
246
|
}
|
|
249
247
|
|
|
250
248
|
export async function fullName_$(module_, name_, $task) {
|
|
@@ -260,23 +258,23 @@ const functions_ = ff_core_List.List_map(module_.functions_, ((d_) => {
|
|
|
260
258
|
return ff_core_Pair.Pair(ff_compiler_Environment.fullName_(module_, d_.signature_.name_), ff_compiler_Environment.Scheme(false, false, false, false, d_.signature_))
|
|
261
259
|
}));
|
|
262
260
|
const lets_ = ff_core_List.List_map(module_.lets_, ((d_) => {
|
|
263
|
-
const noEffect_ = ff_compiler_Syntax.TConstructor(d_.at_, "ff:core/Nothing.Nothing",
|
|
264
|
-
return ff_core_Pair.Pair(ff_compiler_Environment.fullName_(module_, d_.name_), ff_compiler_Environment.Scheme(true, false, false, false, ff_compiler_Syntax.Signature(d_.at_, d_.name_, false,
|
|
261
|
+
const noEffect_ = ff_compiler_Syntax.TConstructor(d_.at_, "ff:core/Nothing.Nothing", []);
|
|
262
|
+
return ff_core_Pair.Pair(ff_compiler_Environment.fullName_(module_, d_.name_), ff_compiler_Environment.Scheme(true, false, false, false, ff_compiler_Syntax.Signature(d_.at_, d_.name_, false, [], [], [], d_.variableType_, noEffect_)))
|
|
265
263
|
}));
|
|
266
264
|
const traitMethods_ = ff_core_List.List_flatMap(module_.traits_, ((definition_) => {
|
|
267
265
|
const generics_ = ff_core_List.List_map(definition_.generics_, ((name_) => {
|
|
268
|
-
return ff_compiler_Syntax.TConstructor(definition_.at_, name_,
|
|
266
|
+
return ff_compiler_Syntax.TConstructor(definition_.at_, name_, [])
|
|
269
267
|
}));
|
|
270
268
|
const constraint_ = ff_compiler_Syntax.Constraint(definition_.at_, ff_compiler_Environment.fullName_(module_, definition_.name_), generics_);
|
|
271
269
|
const outerConstraints_ = (alreadyFlat_
|
|
272
|
-
?
|
|
270
|
+
? []
|
|
273
271
|
: definition_.constraints_);
|
|
274
272
|
return ff_core_List.List_map(definition_.methods_, ((methodSignature_) => {
|
|
275
|
-
const generics_ = ff_core_List.List_partition(
|
|
273
|
+
const generics_ = ff_core_List.List_partition([...definition_.generics_, ...methodSignature_.generics_], ((_w1) => {
|
|
276
274
|
return (_w1 === "Q$")
|
|
277
275
|
}));
|
|
278
276
|
const signature_ = (((_c) => {
|
|
279
|
-
return ff_compiler_Syntax.Signature(_c.at_, _c.name_, _c.member_, ff_core_List.
|
|
277
|
+
return ff_compiler_Syntax.Signature(_c.at_, _c.name_, _c.member_, [...ff_core_List.List_takeFirst(generics_.first_, 1), ...generics_.second_], [constraint_, ...outerConstraints_, ...methodSignature_.constraints_], _c.parameters_, _c.returnType_, _c.effect_)
|
|
280
278
|
}))(methodSignature_);
|
|
281
279
|
return ff_core_Pair.Pair(ff_compiler_Environment.fullName_(module_, signature_.name_), ff_compiler_Environment.Scheme(false, false, false, true, signature_))
|
|
282
280
|
}))
|
|
@@ -304,13 +302,13 @@ const normalGenerics_ = ff_core_List.List_filter(method_.signature_.generics_, (
|
|
|
304
302
|
return (_w1 !== "Q$")
|
|
305
303
|
}));
|
|
306
304
|
const outerGenerics_ = (alreadyFlat_
|
|
307
|
-
?
|
|
305
|
+
? []
|
|
308
306
|
: d_.generics_);
|
|
309
307
|
const outerConstraints_ = (alreadyFlat_
|
|
310
|
-
?
|
|
308
|
+
? []
|
|
311
309
|
: d_.constraints_);
|
|
312
310
|
return ff_core_Pair.Pair((prefix_ + method_.signature_.name_), ff_compiler_Environment.Scheme(false, false, false, false, (((_c) => {
|
|
313
|
-
return ff_compiler_Syntax.Signature(_c.at_, _c.name_, _c.member_,
|
|
311
|
+
return ff_compiler_Syntax.Signature(_c.at_, _c.name_, _c.member_, [...effect_, ...outerGenerics_, ...normalGenerics_], [...outerConstraints_, ...method_.signature_.constraints_], [selfParameter_, ...method_.signature_.parameters_], _c.returnType_, _c.effect_)
|
|
314
312
|
}))(method_.signature_)))
|
|
315
313
|
}))
|
|
316
314
|
return
|
|
@@ -321,28 +319,28 @@ return
|
|
|
321
319
|
const fields_ = ff_core_List.List_flatMap(module_.types_, ((d_) => {
|
|
322
320
|
const prefix_ = (d_.name_ + "_");
|
|
323
321
|
const t_ = ff_compiler_Syntax.TConstructor(d_.at_, d_.name_, ff_core_List.List_map(d_.generics_, ((g_) => {
|
|
324
|
-
return ff_compiler_Syntax.TConstructor(d_.at_, g_,
|
|
322
|
+
return ff_compiler_Syntax.TConstructor(d_.at_, g_, [])
|
|
325
323
|
})));
|
|
326
324
|
const selfParameter_ = ff_compiler_Syntax.Parameter(d_.at_, false, d_.name_, t_, ff_core_Option.None());
|
|
327
325
|
return ff_core_List.List_map(d_.commonFields_, ((f_) => {
|
|
328
|
-
const noEffect_ = ff_compiler_Syntax.TConstructor(d_.at_, "ff:core/Nothing.Nothing",
|
|
329
|
-
return ff_core_Pair.Pair(ff_compiler_Environment.fullName_(module_, (prefix_ + f_.name_)), ff_compiler_Environment.Scheme(true, f_.mutable_, d_.newtype_, false, ff_compiler_Syntax.Signature(f_.at_, f_.name_, true, d_.generics_, d_.constraints_,
|
|
326
|
+
const noEffect_ = ff_compiler_Syntax.TConstructor(d_.at_, "ff:core/Nothing.Nothing", []);
|
|
327
|
+
return ff_core_Pair.Pair(ff_compiler_Environment.fullName_(module_, (prefix_ + f_.name_)), ff_compiler_Environment.Scheme(true, f_.mutable_, d_.newtype_, false, ff_compiler_Syntax.Signature(f_.at_, f_.name_, true, d_.generics_, d_.constraints_, [selfParameter_], f_.valueType_, noEffect_)))
|
|
330
328
|
}))
|
|
331
329
|
}));
|
|
332
330
|
const variants_ = ff_core_List.List_flatMap(module_.types_, ((d_) => {
|
|
333
331
|
const returnType_ = ff_compiler_Syntax.TConstructor(d_.at_, ff_compiler_Environment.fullName_(module_, d_.name_), ff_core_List.List_map(d_.generics_, ((typeParameter_) => {
|
|
334
|
-
return ff_compiler_Syntax.TConstructor(d_.at_, typeParameter_,
|
|
332
|
+
return ff_compiler_Syntax.TConstructor(d_.at_, typeParameter_, [])
|
|
335
333
|
})));
|
|
336
334
|
return ff_core_List.List_map(d_.variants_, ((variant_) => {
|
|
337
|
-
const noEffect_ = ff_compiler_Syntax.TConstructor(d_.at_, "ff:core/Nothing.Nothing",
|
|
338
|
-
return ff_core_Pair.Pair(ff_compiler_Environment.fullName_(module_, variant_.name_), ff_compiler_Environment.Scheme(false, false, d_.newtype_, false, ff_compiler_Syntax.Signature(variant_.at_, variant_.name_, false, d_.generics_, d_.constraints_,
|
|
335
|
+
const noEffect_ = ff_compiler_Syntax.TConstructor(d_.at_, "ff:core/Nothing.Nothing", []);
|
|
336
|
+
return ff_core_Pair.Pair(ff_compiler_Environment.fullName_(module_, variant_.name_), ff_compiler_Environment.Scheme(false, false, d_.newtype_, false, ff_compiler_Syntax.Signature(variant_.at_, variant_.name_, false, d_.generics_, d_.constraints_, [...d_.commonFields_, ...variant_.fields_], returnType_, noEffect_)))
|
|
339
337
|
}))
|
|
340
338
|
}));
|
|
341
339
|
const traits_ = ff_core_List.List_map(module_.traits_, ((d_) => {
|
|
342
340
|
return ff_core_Pair.Pair(ff_compiler_Environment.fullName_(module_, d_.name_), d_)
|
|
343
341
|
}));
|
|
344
|
-
const effect_ = ff_compiler_Syntax.TConstructor(ff_compiler_Syntax.Location(module_.file_, 0, 0), "ff:core/Nothing.Nothing",
|
|
345
|
-
return ff_compiler_Environment.Environment("", ff_core_List.List_toMap(
|
|
342
|
+
const effect_ = ff_compiler_Syntax.TConstructor(ff_compiler_Syntax.Location(module_.file_, 0, 0), "ff:core/Nothing.Nothing", []);
|
|
343
|
+
return ff_compiler_Environment.Environment("", ff_core_List.List_toMap([...functions_, ...lets_, ...fields_, ...extends_, ...variants_, ...traitMethods_], ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_core_List.List_toMap(traits_, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), ff_core_List.List_toMap([], ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), effect_, ff_core_Option.None())
|
|
346
344
|
}
|
|
347
345
|
|
|
348
346
|
|
|
@@ -822,7 +820,7 @@ serialization_.offset_ += 1;
|
|
|
822
820
|
{
|
|
823
821
|
const _1 = variantIndex_;
|
|
824
822
|
{
|
|
825
|
-
if(_1
|
|
823
|
+
if(_1 === 0) {
|
|
826
824
|
serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 35), 0);
|
|
827
825
|
return ff_compiler_Environment.Environment(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Map_Map(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String, ff_compiler_Environment.ff_core_Serializable_Serializable$ff_compiler_Environment_Scheme).deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Map_Map(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String, ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_DTrait).deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Map_Map(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String, ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_DImport).deserializeUsing_(serialization_), ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_Type.deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_))
|
|
828
826
|
return
|
|
@@ -860,7 +858,7 @@ serialization_.offset_ += 1;
|
|
|
860
858
|
{
|
|
861
859
|
const _1 = variantIndex_;
|
|
862
860
|
{
|
|
863
|
-
if(_1
|
|
861
|
+
if(_1 === 0) {
|
|
864
862
|
serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 35), 0);
|
|
865
863
|
return ff_compiler_Environment.Environment(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Map_Map(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String, ff_compiler_Environment.ff_core_Serializable_Serializable$ff_compiler_Environment_Scheme).deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Map_Map(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String, ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_DTrait).deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Map_Map(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String, ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_DImport).deserializeUsing_(serialization_), ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_Type.deserializeUsing_(serialization_), ff_core_Option.ff_core_Serializable_Serializable$ff_core_Option_Option(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_))
|
|
866
864
|
return
|
|
@@ -900,7 +898,7 @@ serialization_.offset_ += 1;
|
|
|
900
898
|
{
|
|
901
899
|
const _1 = variantIndex_;
|
|
902
900
|
{
|
|
903
|
-
if(_1
|
|
901
|
+
if(_1 === 0) {
|
|
904
902
|
serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 30), 0);
|
|
905
903
|
return ff_compiler_Environment.Scheme(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Bool_Bool.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Bool_Bool.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Bool_Bool.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Bool_Bool.deserializeUsing_(serialization_), ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_Signature.deserializeUsing_(serialization_))
|
|
906
904
|
return
|
|
@@ -937,7 +935,7 @@ serialization_.offset_ += 1;
|
|
|
937
935
|
{
|
|
938
936
|
const _1 = variantIndex_;
|
|
939
937
|
{
|
|
940
|
-
if(_1
|
|
938
|
+
if(_1 === 0) {
|
|
941
939
|
serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 30), 0);
|
|
942
940
|
return ff_compiler_Environment.Scheme(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Bool_Bool.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Bool_Bool.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Bool_Bool.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_Bool_Bool.deserializeUsing_(serialization_), ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_Signature.deserializeUsing_(serialization_))
|
|
943
941
|
return
|
|
@@ -974,7 +972,7 @@ serialization_.offset_ += 1;
|
|
|
974
972
|
{
|
|
975
973
|
const _1 = variantIndex_;
|
|
976
974
|
{
|
|
977
|
-
if(_1
|
|
975
|
+
if(_1 === 0) {
|
|
978
976
|
serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 36), 0);
|
|
979
977
|
return ff_compiler_Environment.Instantiated(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core_Pair.ff_core_Serializable_Serializable$ff_core_Pair_Pair(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String, ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_Type)).deserializeUsing_(serialization_), ff_compiler_Environment.ff_core_Serializable_Serializable$ff_compiler_Environment_Scheme.deserializeUsing_(serialization_))
|
|
980
978
|
return
|
|
@@ -1008,7 +1006,7 @@ serialization_.offset_ += 1;
|
|
|
1008
1006
|
{
|
|
1009
1007
|
const _1 = variantIndex_;
|
|
1010
1008
|
{
|
|
1011
|
-
if(_1
|
|
1009
|
+
if(_1 === 0) {
|
|
1012
1010
|
serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 36), 0);
|
|
1013
1011
|
return ff_compiler_Environment.Instantiated(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core_Pair.ff_core_Serializable_Serializable$ff_core_Pair_Pair(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String, ff_compiler_Syntax.ff_core_Serializable_Serializable$ff_compiler_Syntax_Type)).deserializeUsing_(serialization_), ff_compiler_Environment.ff_core_Serializable_Serializable$ff_compiler_Environment_Scheme.deserializeUsing_(serialization_))
|
|
1014
1012
|
return
|