firefly-compiler 0.4.79 → 0.4.81

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.
Files changed (164) hide show
  1. package/.hintrc +4 -4
  2. package/.vscode/settings.json +4 -4
  3. package/bin/Release.ff +153 -153
  4. package/bin/firefly.mjs +1 -1
  5. package/compiler/Builder.ff +257 -257
  6. package/compiler/Compiler.ff +227 -227
  7. package/compiler/Dependencies.ff +187 -187
  8. package/compiler/DependencyLock.ff +17 -17
  9. package/compiler/Inference.ff +2 -1
  10. package/compiler/JsEmitter.ff +940 -946
  11. package/compiler/LspHook.ff +202 -202
  12. package/compiler/Main.ff +3 -3
  13. package/compiler/ModuleCache.ff +178 -178
  14. package/compiler/Tokenizer.ff +1 -1
  15. package/compiler/Unification.ff +1 -1
  16. package/compiler/Workspace.ff +88 -88
  17. package/core/.firefly/include/package-lock.json +564 -564
  18. package/core/.firefly/include/package.json +5 -5
  19. package/core/.firefly/include/prepare.sh +1 -1
  20. package/core/.firefly/package.ff +2 -2
  21. package/core/Array.ff +265 -265
  22. package/core/Atomic.ff +64 -64
  23. package/core/Box.ff +7 -7
  24. package/core/BrowserSystem.ff +40 -40
  25. package/core/BuildSystem.ff +148 -148
  26. package/core/Crypto.ff +96 -96
  27. package/core/Equal.ff +36 -36
  28. package/core/Float.ff +25 -0
  29. package/core/HttpClient.ff +148 -148
  30. package/core/JsSystem.ff +69 -69
  31. package/core/Json.ff +434 -434
  32. package/core/List.ff +486 -486
  33. package/core/Lock.ff +144 -144
  34. package/core/NodeSystem.ff +216 -216
  35. package/core/Ordering.ff +161 -161
  36. package/core/Path.ff +401 -401
  37. package/core/Random.ff +134 -134
  38. package/core/RbMap.ff +216 -216
  39. package/core/Show.ff +43 -43
  40. package/core/SourceLocation.ff +68 -68
  41. package/core/Stream.ff +9 -9
  42. package/core/Task.ff +149 -141
  43. package/core/Try.ff +25 -4
  44. package/experimental/benchmarks/ListGrab.ff +23 -23
  45. package/experimental/benchmarks/ListGrab.java +55 -55
  46. package/experimental/benchmarks/Pyrotek45.ff +30 -30
  47. package/experimental/benchmarks/Pyrotek45.java +64 -64
  48. package/experimental/bidirectional/Bidi.ff +88 -88
  49. package/experimental/random/Index.ff +53 -53
  50. package/experimental/random/Process.ff +120 -120
  51. package/experimental/random/Scrape.ff +51 -51
  52. package/experimental/random/Symbols.ff +73 -73
  53. package/experimental/random/Tensor.ff +52 -52
  54. package/experimental/random/Units.ff +36 -36
  55. package/experimental/s3/S3TestAuthorizationHeader.ff +39 -39
  56. package/experimental/s3/S3TestPut.ff +16 -16
  57. package/experimental/tests/TestJson.ff +26 -26
  58. package/firefly.sh +0 -0
  59. package/fireflysite/.firefly/package.ff +4 -4
  60. package/fireflysite/CommunityOverview.ff +20 -20
  61. package/fireflysite/CountingButtonDemo.ff +58 -58
  62. package/fireflysite/DocumentParser.ff +331 -217
  63. package/fireflysite/ExamplesOverview.ff +40 -40
  64. package/fireflysite/FrontPage.ff +344 -360
  65. package/fireflysite/{GuideIntroduction.ff → GettingStarted.ff} +45 -52
  66. package/fireflysite/Guide.ff +442 -411
  67. package/fireflysite/Main.ff +151 -137
  68. package/fireflysite/MatchingPasswordsDemo.ff +82 -82
  69. package/fireflysite/PackagesOverview.ff +49 -49
  70. package/fireflysite/PostgresqlDemo.ff +34 -34
  71. package/fireflysite/ReferenceAll.ff +18 -0
  72. package/fireflysite/ReferenceIntroduction.ff +11 -0
  73. package/fireflysite/Styles.ff +567 -495
  74. package/fireflysite/Test.ff +46 -0
  75. package/fireflysite/assets/markdown/reference/BaseTypes.md +209 -0
  76. package/fireflysite/assets/markdown/reference/EmittedJavascript.md +66 -0
  77. package/fireflysite/assets/markdown/reference/Exceptions.md +101 -0
  78. package/fireflysite/assets/markdown/reference/FunctionsAndMethods.md +338 -0
  79. package/fireflysite/assets/markdown/reference/JavascriptInterop.md +134 -0
  80. package/fireflysite/assets/markdown/reference/ModulesAndPackages.md +162 -0
  81. package/fireflysite/assets/markdown/reference/OldStructuredConcurrency.md +48 -0
  82. package/fireflysite/assets/markdown/reference/PatternMatching.md +224 -0
  83. package/fireflysite/assets/markdown/reference/StatementsAndExpressions.md +86 -0
  84. package/fireflysite/assets/markdown/reference/StructuredConcurrency.md +99 -0
  85. package/fireflysite/assets/markdown/reference/TraitsAndInstances.md +100 -0
  86. package/fireflysite/assets/markdown/reference/UserDefinedTypes.md +184 -0
  87. package/fireflysite/assets/markdown/{ControlFlow.md → scratch/ControlFlow.md} +136 -136
  88. package/fireflysite/assets/markdown/scratch/Toc.md +41 -0
  89. package/lsp/.firefly/package.ff +1 -1
  90. package/lsp/CompletionHandler.ff +828 -828
  91. package/lsp/Handler.ff +714 -714
  92. package/lsp/HoverHandler.ff +79 -79
  93. package/lsp/LanguageServer.ff +272 -272
  94. package/lsp/SignatureHelpHandler.ff +55 -55
  95. package/lsp/SymbolHandler.ff +181 -181
  96. package/lsp/TestReferences.ff +17 -17
  97. package/lsp/TestReferencesCase.ff +7 -7
  98. package/lsp/stderr.txt +1 -1
  99. package/lsp/stdout.txt +34 -34
  100. package/lux/.firefly/package.ff +1 -1
  101. package/lux/Css.ff +648 -648
  102. package/lux/CssTest.ff +48 -48
  103. package/lux/Lux.ff +593 -487
  104. package/lux/LuxEvent.ff +116 -116
  105. package/lux/Main.ff +123 -123
  106. package/lux/Main2.ff +143 -143
  107. package/lux/TestDry.ff +27 -0
  108. package/output/js/ff/compiler/Builder.mjs +47 -47
  109. package/output/js/ff/compiler/Dependencies.mjs +3 -3
  110. package/output/js/ff/compiler/Inference.mjs +2 -2
  111. package/output/js/ff/compiler/JsEmitter.mjs +18 -72
  112. package/output/js/ff/compiler/Main.mjs +4 -4
  113. package/output/js/ff/compiler/ModuleCache.mjs +4 -4
  114. package/output/js/ff/core/Array.mjs +59 -59
  115. package/output/js/ff/core/Atomic.mjs +36 -36
  116. package/output/js/ff/core/BrowserSystem.mjs +11 -11
  117. package/output/js/ff/core/BuildSystem.mjs +30 -30
  118. package/output/js/ff/core/Crypto.mjs +40 -40
  119. package/output/js/ff/core/Float.mjs +50 -0
  120. package/output/js/ff/core/HttpClient.mjs +56 -56
  121. package/output/js/ff/core/Json.mjs +147 -147
  122. package/output/js/ff/core/List.mjs +50 -50
  123. package/output/js/ff/core/Lock.mjs +97 -97
  124. package/output/js/ff/core/NodeSystem.mjs +87 -87
  125. package/output/js/ff/core/Ordering.mjs +8 -8
  126. package/output/js/ff/core/Path.mjs +231 -231
  127. package/output/js/ff/core/Random.mjs +56 -56
  128. package/output/js/ff/core/Task.mjs +71 -39
  129. package/output/js/ff/core/Try.mjs +98 -4
  130. package/package.json +1 -1
  131. package/postgresql/Pg.ff +1 -1
  132. package/rpc/.firefly/package.ff +1 -1
  133. package/rpc/Rpc.ff +70 -70
  134. package/s3/.firefly/package.ff +1 -1
  135. package/s3/S3.ff +94 -94
  136. package/unsafejs/UnsafeJs.ff +19 -19
  137. package/vscode/LICENSE.txt +21 -21
  138. package/vscode/Prepublish.ff +15 -15
  139. package/vscode/README.md +16 -16
  140. package/vscode/client/package.json +22 -22
  141. package/vscode/client/src/extension.ts +104 -104
  142. package/vscode/icons/firefly-icon.svg +10 -10
  143. package/vscode/language-configuration.json +61 -61
  144. package/vscode/package-lock.json +3623 -3623
  145. package/vscode/package.json +1 -1
  146. package/vscode/snippets.json +241 -241
  147. package/vscode/syntaxes/firefly-markdown-injection.json +45 -45
  148. package/webserver/.firefly/include/package-lock.json +22 -22
  149. package/webserver/.firefly/include/package.json +5 -5
  150. package/webserver/.firefly/package.ff +2 -2
  151. package/webserver/WebServer.ff +685 -685
  152. package/websocket/.firefly/package.ff +1 -1
  153. package/websocket/WebSocket.ff +131 -131
  154. package/fireflysite/GuideAll.ff +0 -21
  155. package/fireflysite/GuideBaseTypes.ff +0 -168
  156. package/fireflysite/GuideControlFlow.ff +0 -212
  157. package/fireflysite/assets/markdown/Example.md +0 -78
  158. /package/fireflysite/assets/{NotoSansMono-Regular.ttf → font/NotoSansMono-Regular.ttf} +0 -0
  159. /package/fireflysite/assets/{NunitoSans-VariableFont_YTLC,opsz,wdth,wght.ttf → font/NunitoSans-VariableFont_YTLC,opsz,wdth,wght.ttf} +0 -0
  160. /package/fireflysite/assets/{autocomplete-small.png → image/autocomplete-small.png} +0 -0
  161. /package/fireflysite/assets/{autocomplete.png → image/autocomplete.png} +0 -0
  162. /package/fireflysite/assets/{edit-time-error.png → image/edit-time-error.png} +0 -0
  163. /package/fireflysite/assets/{firefly-logo-notext.png → image/firefly-logo-notext.png} +0 -0
  164. /package/fireflysite/assets/{firefly-logo-yellow.png → image/firefly-logo-yellow.png} +0 -0
@@ -1,203 +1,203 @@
1
- import Syntax
2
- import Unification
3
- import Environment
4
-
5
- class LspHook(
6
- at: Location
7
- definedAt: Location
8
- insertIdentifier: Bool
9
- trackSymbols: Bool
10
- arrayOfResults: Array[ResultHook]
11
- )
12
-
13
- disabled(): LspHook {
14
- new(None, None, False, False)
15
- }
16
-
17
- new(at: Option[Location], definedAt: Option[Location], insertIdentifier: Bool, trackSymbols: Bool): LspHook {
18
- LspHook( // Default dummy values instead of Option[Location] to speed up location hit check
19
- at = at.else {Location("^lsp", -7, -7)}
20
- definedAt = definedAt.else {Location("^lsp", -7, -7)}
21
- insertIdentifier = insertIdentifier
22
- trackSymbols = trackSymbols
23
- arrayOfResults = [].toArray()
24
- )
25
- }
26
-
27
- extend self: LspHook {
28
- isEnabled(): Bool {
29
- self.at.line != -7 ||
30
- self.definedAt.line != -7 ||
31
- self.trackSymbols
32
- }
33
- isAt(at: Location): Bool {
34
- self.at.line == at.line &&
35
- self.at.column == at.column &&
36
- self.at.file == at.file
37
- }
38
- isDefinedAt(at: Location): Bool {
39
- self.definedAt.line == at.line &&
40
- self.definedAt.column == at.column &&
41
- self.definedAt.file == at.file
42
- }
43
- emit(result: ResultHook) {
44
- self.arrayOfResults.push(result)
45
- }
46
- results(): List[ResultHook] {
47
- self.arrayOfResults.toList()
48
- }
49
- }
50
-
51
- strictlyBetween(afterAt: Location, beforeAt: Location, at: Location, extraColumns: Int): Bool {
52
- at.file == afterAt.file && (
53
- (at.line == afterAt.line && at.column > afterAt.column) ||
54
- at.line > afterAt.line
55
- ) && (
56
- (at.line == beforeAt.line && at.column < beforeAt.column + extraColumns) ||
57
- at.line < beforeAt.line
58
- )
59
- }
60
-
61
- data SymbolHook(
62
- qualifiedName: String
63
- usageAt: Location
64
- definedAt: Location
65
- )
66
-
67
- class Box[T](mutable value: T)
68
-
69
- data DocumentSymbolKind {
70
- SLet(mutable: Bool)
71
- SFunction(member: Bool)
72
- SExtend
73
- STraitFunction
74
- STrait
75
- SInstance
76
- SVariant
77
- SType
78
- SParameter
79
- }
80
-
81
- class ResultHook {
82
- ParseSymbolBegin
83
- ParseSymbolEnd(
84
- name: String
85
- kind: DocumentSymbolKind
86
- selectionStart: Location
87
- selectionEnd: Location
88
- start: Location
89
- end: Location
90
- )
91
- ParseArgumentHook(
92
- callAt: Location
93
- argumentIndex: Int
94
- parameterName: Option[String]
95
- )
96
- ResolveSymbolHook(
97
- symbol: SymbolHook
98
- annotation: Option[Type]
99
- topLevel: Bool
100
- )
101
- ResolveTypeHook(
102
- types: Map[String, String]
103
- typeGenerics: Map[String, List[String]]
104
- symbol: SymbolHook
105
- explicitType: Type
106
- )
107
- ResolveConstraintHook(
108
- symbol: SymbolHook
109
- constrant: Constraint
110
- )
111
- ResolveSignatureHook(
112
- signature: Signature
113
- isInstanceMethod: Bool
114
- topLevel: Bool
115
- )
116
- ResolveVariantFieldHook(
117
- symbol: SymbolHook
118
- type: Type
119
- commonField: Bool
120
- )
121
- InferTermHook(
122
- unification: Unification
123
- environment: Environment
124
- expected: Type
125
- term: Term
126
- recordType: Box[Option[Type]]
127
- missing: StringMap[Pair[Instantiated, Option[List[Argument]]]]
128
- )
129
- InferLambdaStartHook(
130
- unification: Unification
131
- environment: Environment
132
- lambdaType: Type
133
- )
134
- InferSequentialStartHook(
135
- unification: Unification
136
- term: Term
137
- missing: StringMap[Pair[Instantiated, Option[List[Argument]]]]
138
- )
139
- InferFunctionDefinitionHook(
140
- unification: Unification
141
- environment: Environment
142
- definition: DFunction
143
- missing: StringMap[Pair[Instantiated, Option[List[Argument]]]]
144
- )
145
- InferPatternHook(
146
- unification: Unification
147
- environment: Environment
148
- expected: Type
149
- pattern: MatchPattern
150
- )
151
- InferParameterHook(
152
- unification: Unification
153
- environment: Environment
154
- parameter: Parameter
155
- missing: StringMap[Pair[Instantiated, Option[List[Argument]]]]
156
- )
157
- InferArgumentHook(
158
- unification: Unification
159
- environment: Environment
160
- isCopy: Bool
161
- callAt: Location
162
- callName: String
163
- parameters: List[Parameter]
164
- arguments: List[Argument]
165
- argumentIndex: Int
166
- )
167
- InferLookupHook(
168
- unification: Unification
169
- environment: Environment
170
- expected: Type
171
- selfVariable: Option[String]
172
- symbol: Box[SymbolHook]
173
- instantiated: Box[Option[Instantiated]]
174
- )
175
- InferRecordFieldHook(
176
- usageAt: Location
177
- unification: Unification
178
- environment: Environment
179
- expected: Type
180
- recordType: Type
181
- fieldName: String
182
- )
183
- }
184
-
185
- showHook(hook: ResultHook): String {
186
- | InferArgumentHook(unification, environment, isCopy, callAt, callName, parameters, arguments, argumentIndex) => "InferArgumentHook(...)"
187
- | InferFunctionDefinitionHook(unification, environment, definition, missing) => "InferFunctionDefinitionHook(...)"
188
- | InferLambdaStartHook(unification, environment, lambdaType) => "InferLambdaStartHook(...)"
189
- | InferLookupHook(unification, environment, expected, selfVariable, symbol, instantiated) => "InferLookupHook(...)"
190
- | InferParameterHook(unification, environment, parameter, missing) => "InferParameterHook(...)"
191
- | InferPatternHook(unification, environment, expected, pattern) => "InferPatternHook(...)"
192
- | InferRecordFieldHook(usageAt, unification, environment, expected, recordType, fieldName) => "InferRecordFieldHook(...)"
193
- | InferSequentialStartHook(unification, term, missing) => "InferSequentialStartHook(...)"
194
- | InferTermHook(unification, environment, expected, term, recordType, missing) => "InferTermHook(...)"
195
- | ParseArgumentHook(callAt, argumentIndex, parameterName) => "ParseArgumentHook(...)"
196
- | ParseSymbolBegin => "ParseSymbolBegin(...)"
197
- | ParseSymbolEnd(name, kind, selectionStart, selectionEnd, start, end) => "ParseSymbolEnd(...)"
198
- | ResolveConstraintHook(symbol, constrant) => "ResolveConstraintHook(...)"
199
- | ResolveSignatureHook(signature, _, _) => "ResolveSignatureHook(...)"
200
- | ResolveSymbolHook(symbol, annotation, _) => "ResolveSymbolHook(...)"
201
- | ResolveTypeHook(types, typeGenerics, symbol, explicitType) => "ResolveTypeHook(...)"
202
- | ResolveVariantFieldHook(symbol, type, commonField) => "ResolveVariantFieldHook(...)"
1
+ import Syntax
2
+ import Unification
3
+ import Environment
4
+
5
+ class LspHook(
6
+ at: Location
7
+ definedAt: Location
8
+ insertIdentifier: Bool
9
+ trackSymbols: Bool
10
+ arrayOfResults: Array[ResultHook]
11
+ )
12
+
13
+ disabled(): LspHook {
14
+ new(None, None, False, False)
15
+ }
16
+
17
+ new(at: Option[Location], definedAt: Option[Location], insertIdentifier: Bool, trackSymbols: Bool): LspHook {
18
+ LspHook( // Default dummy values instead of Option[Location] to speed up location hit check
19
+ at = at.else {Location("^lsp", -7, -7)}
20
+ definedAt = definedAt.else {Location("^lsp", -7, -7)}
21
+ insertIdentifier = insertIdentifier
22
+ trackSymbols = trackSymbols
23
+ arrayOfResults = [].toArray()
24
+ )
25
+ }
26
+
27
+ extend self: LspHook {
28
+ isEnabled(): Bool {
29
+ self.at.line != -7 ||
30
+ self.definedAt.line != -7 ||
31
+ self.trackSymbols
32
+ }
33
+ isAt(at: Location): Bool {
34
+ self.at.line == at.line &&
35
+ self.at.column == at.column &&
36
+ self.at.file == at.file
37
+ }
38
+ isDefinedAt(at: Location): Bool {
39
+ self.definedAt.line == at.line &&
40
+ self.definedAt.column == at.column &&
41
+ self.definedAt.file == at.file
42
+ }
43
+ emit(result: ResultHook) {
44
+ self.arrayOfResults.push(result)
45
+ }
46
+ results(): List[ResultHook] {
47
+ self.arrayOfResults.toList()
48
+ }
49
+ }
50
+
51
+ strictlyBetween(afterAt: Location, beforeAt: Location, at: Location, extraColumns: Int): Bool {
52
+ at.file == afterAt.file && (
53
+ (at.line == afterAt.line && at.column > afterAt.column) ||
54
+ at.line > afterAt.line
55
+ ) && (
56
+ (at.line == beforeAt.line && at.column < beforeAt.column + extraColumns) ||
57
+ at.line < beforeAt.line
58
+ )
59
+ }
60
+
61
+ data SymbolHook(
62
+ qualifiedName: String
63
+ usageAt: Location
64
+ definedAt: Location
65
+ )
66
+
67
+ class Box[T](mutable value: T)
68
+
69
+ data DocumentSymbolKind {
70
+ SLet(mutable: Bool)
71
+ SFunction(member: Bool)
72
+ SExtend
73
+ STraitFunction
74
+ STrait
75
+ SInstance
76
+ SVariant
77
+ SType
78
+ SParameter
79
+ }
80
+
81
+ class ResultHook {
82
+ ParseSymbolBegin
83
+ ParseSymbolEnd(
84
+ name: String
85
+ kind: DocumentSymbolKind
86
+ selectionStart: Location
87
+ selectionEnd: Location
88
+ start: Location
89
+ end: Location
90
+ )
91
+ ParseArgumentHook(
92
+ callAt: Location
93
+ argumentIndex: Int
94
+ parameterName: Option[String]
95
+ )
96
+ ResolveSymbolHook(
97
+ symbol: SymbolHook
98
+ annotation: Option[Type]
99
+ topLevel: Bool
100
+ )
101
+ ResolveTypeHook(
102
+ types: Map[String, String]
103
+ typeGenerics: Map[String, List[String]]
104
+ symbol: SymbolHook
105
+ explicitType: Type
106
+ )
107
+ ResolveConstraintHook(
108
+ symbol: SymbolHook
109
+ constrant: Constraint
110
+ )
111
+ ResolveSignatureHook(
112
+ signature: Signature
113
+ isInstanceMethod: Bool
114
+ topLevel: Bool
115
+ )
116
+ ResolveVariantFieldHook(
117
+ symbol: SymbolHook
118
+ type: Type
119
+ commonField: Bool
120
+ )
121
+ InferTermHook(
122
+ unification: Unification
123
+ environment: Environment
124
+ expected: Type
125
+ term: Term
126
+ recordType: Box[Option[Type]]
127
+ missing: StringMap[Pair[Instantiated, Option[List[Argument]]]]
128
+ )
129
+ InferLambdaStartHook(
130
+ unification: Unification
131
+ environment: Environment
132
+ lambdaType: Type
133
+ )
134
+ InferSequentialStartHook(
135
+ unification: Unification
136
+ term: Term
137
+ missing: StringMap[Pair[Instantiated, Option[List[Argument]]]]
138
+ )
139
+ InferFunctionDefinitionHook(
140
+ unification: Unification
141
+ environment: Environment
142
+ definition: DFunction
143
+ missing: StringMap[Pair[Instantiated, Option[List[Argument]]]]
144
+ )
145
+ InferPatternHook(
146
+ unification: Unification
147
+ environment: Environment
148
+ expected: Type
149
+ pattern: MatchPattern
150
+ )
151
+ InferParameterHook(
152
+ unification: Unification
153
+ environment: Environment
154
+ parameter: Parameter
155
+ missing: StringMap[Pair[Instantiated, Option[List[Argument]]]]
156
+ )
157
+ InferArgumentHook(
158
+ unification: Unification
159
+ environment: Environment
160
+ isCopy: Bool
161
+ callAt: Location
162
+ callName: String
163
+ parameters: List[Parameter]
164
+ arguments: List[Argument]
165
+ argumentIndex: Int
166
+ )
167
+ InferLookupHook(
168
+ unification: Unification
169
+ environment: Environment
170
+ expected: Type
171
+ selfVariable: Option[String]
172
+ symbol: Box[SymbolHook]
173
+ instantiated: Box[Option[Instantiated]]
174
+ )
175
+ InferRecordFieldHook(
176
+ usageAt: Location
177
+ unification: Unification
178
+ environment: Environment
179
+ expected: Type
180
+ recordType: Type
181
+ fieldName: String
182
+ )
183
+ }
184
+
185
+ showHook(hook: ResultHook): String {
186
+ | InferArgumentHook(unification, environment, isCopy, callAt, callName, parameters, arguments, argumentIndex) => "InferArgumentHook(...)"
187
+ | InferFunctionDefinitionHook(unification, environment, definition, missing) => "InferFunctionDefinitionHook(...)"
188
+ | InferLambdaStartHook(unification, environment, lambdaType) => "InferLambdaStartHook(...)"
189
+ | InferLookupHook(unification, environment, expected, selfVariable, symbol, instantiated) => "InferLookupHook(...)"
190
+ | InferParameterHook(unification, environment, parameter, missing) => "InferParameterHook(...)"
191
+ | InferPatternHook(unification, environment, expected, pattern) => "InferPatternHook(...)"
192
+ | InferRecordFieldHook(usageAt, unification, environment, expected, recordType, fieldName) => "InferRecordFieldHook(...)"
193
+ | InferSequentialStartHook(unification, term, missing) => "InferSequentialStartHook(...)"
194
+ | InferTermHook(unification, environment, expected, term, recordType, missing) => "InferTermHook(...)"
195
+ | ParseArgumentHook(callAt, argumentIndex, parameterName) => "ParseArgumentHook(...)"
196
+ | ParseSymbolBegin => "ParseSymbolBegin(...)"
197
+ | ParseSymbolEnd(name, kind, selectionStart, selectionEnd, start, end) => "ParseSymbolEnd(...)"
198
+ | ResolveConstraintHook(symbol, constrant) => "ResolveConstraintHook(...)"
199
+ | ResolveSignatureHook(signature, _, _) => "ResolveSignatureHook(...)"
200
+ | ResolveSymbolHook(symbol, annotation, _) => "ResolveSymbolHook(...)"
201
+ | ResolveTypeHook(types, typeGenerics, symbol, explicitType) => "ResolveTypeHook(...)"
202
+ | ResolveVariantFieldHook(symbol, type, commonField) => "ResolveVariantFieldHook(...)"
203
203
  }
package/compiler/Main.ff CHANGED
@@ -148,9 +148,9 @@ main(system: NodeSystem): Unit {
148
148
  try {
149
149
  let command = parseCommandLine(system.arguments())
150
150
  runCommand(command)
151
- } catch {| CommandLineError(message), _ =>
151
+ } tryCatch {| CommandLineError(message), _ =>
152
152
  Log.debug(message)
153
- } catch {| CompileError(at, message), _ =>
153
+ } tryCatch {| CompileError(at, message), _ =>
154
154
  Log.debug(message)
155
155
  Log.debug(" at " + at.file.replace("./", "") + ":" + at.line + ":" + at.column)
156
156
  } catch {| CompileErrors(errors), _ =>
@@ -158,7 +158,7 @@ main(system: NodeSystem): Unit {
158
158
  Log.debug(message)
159
159
  Log.debug(" at " + at.file.replace("./", "") + ":" + at.line + ":" + at.column)
160
160
  }
161
- } grab()
161
+ }
162
162
  }
163
163
 
164
164
  usageString = """