mirror of
https://github.com/roc-lang/roc.git
synced 2025-08-03 19:58:18 +00:00
New package
header syntax
Implements the new package header syntax as discussed in Zulip [1].
package [Csv] {
parser: "../parser/main.roc"
}
Old headers still parse and are automatically upgraded to the new
syntax by the formatter.
[1] 418444862
This commit is contained in:
parent
8dedd9f03c
commit
e3b600c282
16 changed files with 169 additions and 132 deletions
|
@ -1 +1 @@
|
|||
package "rtfeldman/blah" exposes [] packages {}
|
||||
package [] {}
|
||||
|
|
|
@ -2,26 +2,10 @@ Module {
|
|||
comments: [],
|
||||
header: Package(
|
||||
PackageHeader {
|
||||
before_name: [],
|
||||
name: @8-24 PackageName(
|
||||
"rtfeldman/blah",
|
||||
),
|
||||
exposes: KeywordItem {
|
||||
keyword: Spaces {
|
||||
before: [],
|
||||
item: ExposesKeyword,
|
||||
after: [],
|
||||
},
|
||||
item: [],
|
||||
},
|
||||
packages: KeywordItem {
|
||||
keyword: Spaces {
|
||||
before: [],
|
||||
item: PackagesKeyword,
|
||||
after: [],
|
||||
},
|
||||
item: [],
|
||||
},
|
||||
before_exposes: [],
|
||||
exposes: [],
|
||||
before_packages: [],
|
||||
packages: @11-13 [],
|
||||
},
|
||||
),
|
||||
}
|
||||
|
|
|
@ -1 +1 @@
|
|||
package "rtfeldman/blah" exposes [] packages {}
|
||||
package [] {}
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
package "foo/barbaz"
|
||||
exposes [Foo, Bar]
|
||||
packages { foo: "./foo" }
|
||||
package [Foo, Bar] {
|
||||
foo: "./foo",
|
||||
}
|
||||
|
|
|
@ -2,46 +2,36 @@ Module {
|
|||
comments: [],
|
||||
header: Package(
|
||||
PackageHeader {
|
||||
before_name: [],
|
||||
name: @8-20 PackageName(
|
||||
"foo/barbaz",
|
||||
),
|
||||
exposes: KeywordItem {
|
||||
keyword: Spaces {
|
||||
before: [
|
||||
before_exposes: [],
|
||||
exposes: [
|
||||
@9-12 ModuleName(
|
||||
"Foo",
|
||||
),
|
||||
@14-17 ModuleName(
|
||||
"Bar",
|
||||
),
|
||||
],
|
||||
before_packages: [],
|
||||
packages: @19-39 [
|
||||
@25-37 SpaceBefore(
|
||||
SpaceAfter(
|
||||
PackageEntry {
|
||||
shorthand: "foo",
|
||||
spaces_after_shorthand: [],
|
||||
platform_marker: None,
|
||||
package_name: @30-37 PackageName(
|
||||
"./foo",
|
||||
),
|
||||
},
|
||||
[
|
||||
Newline,
|
||||
],
|
||||
),
|
||||
[
|
||||
Newline,
|
||||
],
|
||||
item: ExposesKeyword,
|
||||
after: [],
|
||||
},
|
||||
item: [
|
||||
@34-37 ModuleName(
|
||||
"Foo",
|
||||
),
|
||||
@39-42 ModuleName(
|
||||
"Bar",
|
||||
),
|
||||
],
|
||||
},
|
||||
packages: KeywordItem {
|
||||
keyword: Spaces {
|
||||
before: [
|
||||
Newline,
|
||||
],
|
||||
item: PackagesKeyword,
|
||||
after: [],
|
||||
},
|
||||
item: [
|
||||
@59-71 PackageEntry {
|
||||
shorthand: "foo",
|
||||
spaces_after_shorthand: [],
|
||||
platform_marker: None,
|
||||
package_name: @64-71 PackageName(
|
||||
"./foo",
|
||||
),
|
||||
},
|
||||
],
|
||||
},
|
||||
),
|
||||
],
|
||||
},
|
||||
),
|
||||
}
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
package "foo/barbaz"
|
||||
exposes [Foo, Bar]
|
||||
packages { foo: "./foo" }
|
||||
package [Foo, Bar] {
|
||||
foo: "./foo"
|
||||
}
|
||||
|
|
|
@ -4840,6 +4840,28 @@ mod test_fmt {
|
|||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn old_style_package_header_is_upgraded() {
|
||||
module_formats_to(
|
||||
indoc!(
|
||||
"
|
||||
package \"csv\"
|
||||
exposes [Csv]
|
||||
packages {
|
||||
parser: \"parser/main.roc\"
|
||||
}
|
||||
"
|
||||
),
|
||||
indoc!(
|
||||
"
|
||||
package [Csv] {
|
||||
parser: \"parser/main.roc\",
|
||||
}
|
||||
"
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn single_line_app() {
|
||||
module_formats_same(indoc!(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue