Skip to content

Commit c1b7650

Browse files
committed
Improve platform modules
1 parent 4215483 commit c1b7650

File tree

3 files changed

+13
-11
lines changed

3 files changed

+13
-11
lines changed

src/parse/AST.zig

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,9 @@ pub fn parseDiagnosticToReport(self: *AST, env: *const CommonEnv, diagnostic: Di
236236
.expected_exposes => "EXPECTED EXPOSES",
237237
.expected_exposes_close_square => "EXPECTED CLOSING BRACKET",
238238
.expected_exposes_open_square => "EXPECTED OPENING BRACKET",
239-
.expected_imports => "EXPECTED IMPORTS",
239+
.expected_packages => "EXPECTED PACKAGES",
240+
.expected_packages_close_curly => "EXPECTED CLOSING BRACE",
241+
.expected_packages_open_curly => "EXPECTED OPENING BRACE",
240242
.pattern_unexpected_token => "UNEXPECTED TOKEN IN PATTERN",
241243
.pattern_list_rest_old_syntax => "BAD LIST REST PATTERN SYNTAX",
242244
.pattern_unexpected_eof => "UNEXPECTED END OF FILE IN PATTERN",
@@ -304,11 +306,13 @@ pub fn parseDiagnosticToReport(self: *AST, env: *const CommonEnv, diagnostic: Di
304306
try report.document.addText("For example: ");
305307
try report.document.addCodeBlock("module [main, add, subtract]");
306308
},
307-
.expected_imports => {
308-
try report.document.addReflowingText("Import statements must specify what is being imported.");
309+
.expected_packages, .expected_packages_close_curly, .expected_packages_open_curly => {
310+
try report.document.addReflowingText("Platform headers must have a ");
311+
try report.document.addKeyword("packages");
312+
try report.document.addReflowingText(" section that lists package dependencies.");
309313
try report.document.addLineBreak();
310314
try report.document.addText("For example: ");
311-
try report.document.addCodeBlock("import pf.Stdout exposing [line!]");
315+
try report.document.addCodeBlock("packages { base: \"../base/main.roc\" }");
312316
},
313317
.pattern_unexpected_token => {
314318
const token_text = if (diagnostic.region.start != diagnostic.region.end)
@@ -586,7 +590,6 @@ pub const Diagnostic = struct {
586590
expected_exposes,
587591
expected_exposes_close_square,
588592
expected_exposes_open_square,
589-
expected_imports,
590593
expected_package_or_platform_name,
591594
expected_package_or_platform_colon,
592595
expected_package_or_platform_string,
@@ -1498,7 +1501,6 @@ pub const Header = union(enum) {
14981501
region: TokenizedRegion,
14991502
},
15001503
platform: struct {
1501-
// TODO: complete this
15021504
name: Token.Idx,
15031505
requires_rigids: Collection.Idx,
15041506
requires_signatures: TypeAnno.Idx,

src/parse/Parser.zig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -466,7 +466,7 @@ pub fn parsePlatformHeader(self: *Parser) Error!AST.Header.Idx {
466466
self.expect(.KwPackages) catch {
467467
return try self.pushMalformed(
468468
AST.Header.Idx,
469-
.expected_imports,
469+
.expected_packages,
470470
self.pos,
471471
);
472472
};

test/snapshots/fuzz_crash/fuzz_crash_030.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ ar,
2424
~~~
2525
# EXPECTED
2626
PARSE ERROR - fuzz_crash_030.md:8:5:8:6
27-
PARSE ERROR - fuzz_crash_030.md:12:8:12:9
27+
EXPECTED CLOSING BRACE - fuzz_crash_030.md:12:8:12:9
2828
PARSE ERROR - fuzz_crash_030.md:12:9:12:12
2929
PARSE ERROR - fuzz_crash_030.md:12:12:12:13
3030
PARSE ERROR - fuzz_crash_030.md:12:13:12:14
@@ -47,9 +47,9 @@ This is an unexpected parsing error. Please check your syntax.
4747
^
4848

4949

50-
**PARSE ERROR**
51-
A parsing error occurred: `expected_packages_close_curly`
52-
This is an unexpected parsing error. Please check your syntax.
50+
**EXPECTED CLOSING BRACE**
51+
Platform headers must have a `packages` section that lists package dependencies.
52+
For example: packages { base: "../base/main.roc" }
5353

5454
**fuzz_crash_030.md:12:8:12:9:**
5555
```roc

0 commit comments

Comments
 (0)