diff --git a/crates/compiler/fmt/src/module.rs b/crates/compiler/fmt/src/module.rs index d0a575fc81..3581a4656a 100644 --- a/crates/compiler/fmt/src/module.rs +++ b/crates/compiler/fmt/src/module.rs @@ -9,7 +9,7 @@ use roc_parse::ast::{Collection, Header, Module, Spaced, Spaces}; use roc_parse::header::{ AppHeader, ExposedName, ExposesKeyword, GeneratesKeyword, HostedHeader, ImportsEntry, ImportsKeyword, InterfaceHeader, Keyword, KeywordItem, ModuleName, PackageEntry, - PackageKeyword, PackageName, PackagesKeyword, PlatformHeader, PlatformRequires, + PackageKeyword, PackagePath, PackagesKeyword, PlatformHeader, PlatformRequires, ProvidesKeyword, ProvidesTo, RequiresKeyword, To, ToKeyword, TypedIdent, WithKeyword, }; use roc_parse::ident::UppercaseIdent; @@ -276,7 +276,7 @@ impl<'a> Formattable for TypedIdent<'a> { } } -fn fmt_package_name<'buf>(buf: &mut Buf<'buf>, name: PackageName, _indent: u16) { +fn fmt_package_name<'buf>(buf: &mut Buf<'buf>, name: PackagePath, _indent: u16) { buf.push('"'); buf.push_str_allow_spaces(name.to_str()); buf.push('"'); @@ -453,7 +453,7 @@ fn fmt_packages_entry<'a, 'buf>(buf: &mut Buf<'buf>, entry: &PackageEntry<'a>, i buf.push_str(entry.shorthand); buf.push(':'); fmt_default_spaces(buf, entry.spaces_after_shorthand, indent); - fmt_package_name(buf, entry.package_name.value, indent); + fmt_package_name(buf, entry.package_path.value, indent); } fn fmt_imports_entry<'a, 'buf>(buf: &mut Buf<'buf>, entry: &ImportsEntry<'a>, indent: u16) { diff --git a/crates/compiler/fmt/src/spaces.rs b/crates/compiler/fmt/src/spaces.rs index 98c6ba6170..a80f8e20ce 100644 --- a/crates/compiler/fmt/src/spaces.rs +++ b/crates/compiler/fmt/src/spaces.rs @@ -9,7 +9,7 @@ use roc_parse::{ }, header::{ AppHeader, ExposedName, HostedHeader, ImportsEntry, InterfaceHeader, KeywordItem, - ModuleName, PackageEntry, PackageName, PlatformHeader, PlatformRequires, ProvidesTo, To, + ModuleName, PackageEntry, PackagePath, PlatformHeader, PlatformRequires, ProvidesTo, To, TypedIdent, }, ident::UppercaseIdent, @@ -349,7 +349,7 @@ impl<'a> RemoveSpaces<'a> for ModuleName<'a> { } } -impl<'a> RemoveSpaces<'a> for PackageName<'a> { +impl<'a> RemoveSpaces<'a> for PackagePath<'a> { fn remove_spaces(&self, _arena: &'a Bump) -> Self { *self } @@ -394,7 +394,7 @@ impl<'a> RemoveSpaces<'a> for PackageEntry<'a> { PackageEntry { shorthand: self.shorthand, spaces_after_shorthand: &[], - package_name: self.package_name.remove_spaces(arena), + package_path: self.package_path.remove_spaces(arena), } } } diff --git a/crates/compiler/load_internal/src/file.rs b/crates/compiler/load_internal/src/file.rs index 51465b8c71..71ded5af61 100644 --- a/crates/compiler/load_internal/src/file.rs +++ b/crates/compiler/load_internal/src/file.rs @@ -43,7 +43,7 @@ use roc_packaging::cache::{self, RocCacheDir}; use roc_packaging::https::PackageMetadata; use roc_parse::ast::{self, Defs, ExtractSpaces, Spaced, StrLiteral, TypeAnnotation}; use roc_parse::header::{ExposedName, ImportsEntry, PackageEntry, PlatformHeader, To, TypedIdent}; -use roc_parse::header::{HeaderType, PackageName}; +use roc_parse::header::{HeaderType, PackagePath}; use roc_parse::module::module_defs; use roc_parse::parser::{FileError, Parser, SourceError, SyntaxError}; use roc_problem::Severity; @@ -642,7 +642,7 @@ struct ModuleHeader<'a> { is_root_module: bool, exposed_ident_ids: IdentIds, deps_by_name: MutMap, ModuleId>, - packages: MutMap<&'a str, PackageName<'a>>, + packages: MutMap<&'a str, PackagePath<'a>>, imported_modules: MutMap, package_qualified_imported_modules: MutSet>, exposes: Vec, @@ -3901,7 +3901,7 @@ fn parse_header<'a>( let Loc { value, .. } = loc_package_entry; if value.shorthand == shorthand { - Some(value.package_name.value) + Some(value.package_path.value) } else { None } @@ -4318,7 +4318,7 @@ fn build_header<'a>( let package_entries = packages .iter() - .map(|Loc { value: pkg, .. }| (pkg.shorthand, pkg.package_name.value)) + .map(|Loc { value: pkg, .. }| (pkg.shorthand, pkg.package_path.value)) .collect::>(); // Send the deps to the coordinator thread for processing, diff --git a/crates/compiler/parse/src/header.rs b/crates/compiler/parse/src/header.rs index da0c2c1b57..d784deb1ac 100644 --- a/crates/compiler/parse/src/header.rs +++ b/crates/compiler/parse/src/header.rs @@ -2,7 +2,7 @@ use crate::ast::{Collection, CommentOrNewline, Spaced, Spaces, StrLiteral, TypeA use crate::blankspace::space0_e; use crate::ident::{lowercase_ident, UppercaseIdent}; use crate::parser::{optional, then}; -use crate::parser::{specialize, word1, EPackageEntry, EPackageName, Parser}; +use crate::parser::{specialize, word1, EPackageEntry, EPackagePath, Parser}; use crate::string_literal; use bumpalo::collections::Vec; use roc_module::symbol::{ModuleId, Symbol}; @@ -59,9 +59,9 @@ pub enum VersionComparison { } #[derive(Copy, Clone, PartialEq, Eq, Debug)] -pub struct PackageName<'a>(&'a str); +pub struct PackagePath<'a>(&'a str); -impl<'a> PackageName<'a> { +impl<'a> PackagePath<'a> { pub fn to_str(self) -> &'a str { self.0 } @@ -71,13 +71,13 @@ impl<'a> PackageName<'a> { } } -impl<'a> From> for &'a str { - fn from(name: PackageName<'a>) -> &'a str { +impl<'a> From> for &'a str { + fn from(name: PackagePath<'a>) -> &'a str { name.0 } } -impl<'a> From<&'a str> for PackageName<'a> { +impl<'a> From<&'a str> for PackagePath<'a> { fn from(string: &'a str) -> Self { Self(string) } @@ -181,7 +181,7 @@ pub struct HostedHeader<'a> { #[derive(Copy, Clone, Debug, PartialEq, Eq)] pub enum To<'a> { ExistingPackage(&'a str), - NewPackage(PackageName<'a>), + NewPackage(PackagePath<'a>), } #[derive(Clone, Debug, PartialEq)] @@ -209,13 +209,13 @@ pub struct ProvidesTo<'a> { #[derive(Clone, Debug, PartialEq)] pub struct PackageHeader<'a> { pub before_name: &'a [CommentOrNewline<'a>], - pub name: Loc>, + pub name: Loc>, pub exposes_keyword: Spaces<'a, ExposesKeyword>, pub exposes: Vec<'a, Loc>>>, pub packages_keyword: Spaces<'a, PackagesKeyword>, - pub packages: Vec<'a, (Loc<&'a str>, Loc>)>, + pub packages: Vec<'a, (Loc<&'a str>, Loc>)>, pub imports_keyword: Spaces<'a, ImportsKeyword>, pub imports: Vec<'a, Loc>>, @@ -230,7 +230,7 @@ pub struct PlatformRequires<'a> { #[derive(Clone, Debug, PartialEq)] pub struct PlatformHeader<'a> { pub before_name: &'a [CommentOrNewline<'a>], - pub name: Loc>, + pub name: Loc>, pub requires: KeywordItem<'a, RequiresKeyword, PlatformRequires<'a>>, pub exposes: KeywordItem<'a, ExposesKeyword, Collection<'a, Loc>>>>, @@ -271,7 +271,7 @@ pub struct TypedIdent<'a> { pub struct PackageEntry<'a> { pub shorthand: &'a str, pub spaces_after_shorthand: &'a [CommentOrNewline<'a>], - pub package_name: Loc>, + pub package_path: Loc>, } pub fn package_entry<'a>() -> impl Parser<'a, Spaced<'a, PackageEntry<'a>>, EPackageEntry<'a>> { @@ -288,19 +288,19 @@ pub fn package_entry<'a>() -> impl Parser<'a, Spaced<'a, PackageEntry<'a>>, EPac ), space0_e(EPackageEntry::IndentPackage) )), - loc!(specialize(EPackageEntry::BadPackage, package_name())) + loc!(specialize(EPackageEntry::BadPackage, package_path())) ), move |(opt_shorthand, package_or_path)| { let entry = match opt_shorthand { Some((shorthand, spaces_after_shorthand)) => PackageEntry { shorthand, spaces_after_shorthand, - package_name: package_or_path, + package_path: package_or_path, }, None => PackageEntry { shorthand: "", spaces_after_shorthand: &[], - package_name: package_or_path, + package_path: package_or_path, }, }; @@ -309,13 +309,13 @@ pub fn package_entry<'a>() -> impl Parser<'a, Spaced<'a, PackageEntry<'a>>, EPac ) } -pub fn package_name<'a>() -> impl Parser<'a, PackageName<'a>, EPackageName<'a>> { +pub fn package_path<'a>() -> impl Parser<'a, PackagePath<'a>, EPackagePath<'a>> { then( - loc!(specialize(EPackageName::BadPath, string_literal::parse())), + loc!(specialize(EPackagePath::BadPath, string_literal::parse())), move |_arena, state, progress, text| match text.value { - StrLiteral::PlainLine(text) => Ok((progress, PackageName(text), state)), - StrLiteral::Line(_) => Err((progress, EPackageName::Escapes(text.region.start()))), - StrLiteral::Block(_) => Err((progress, EPackageName::Multiline(text.region.start()))), + StrLiteral::PlainLine(text) => Ok((progress, PackagePath(text), state)), + StrLiteral::Line(_) => Err((progress, EPackagePath::Escapes(text.region.start()))), + StrLiteral::Block(_) => Err((progress, EPackagePath::Multiline(text.region.start()))), }, ) } diff --git a/crates/compiler/parse/src/module.rs b/crates/compiler/parse/src/module.rs index 6f290e57f5..235996f7ef 100644 --- a/crates/compiler/parse/src/module.rs +++ b/crates/compiler/parse/src/module.rs @@ -1,7 +1,7 @@ use crate::ast::{Collection, Defs, Header, Module, Spaced, Spaces}; use crate::blankspace::{space0_around_ee, space0_before_e, space0_e}; use crate::header::{ - package_entry, package_name, AppHeader, ExposedName, ExposesKeyword, GeneratesKeyword, + package_entry, package_path, AppHeader, ExposedName, ExposesKeyword, GeneratesKeyword, HostedHeader, ImportsEntry, ImportsKeyword, InterfaceHeader, Keyword, KeywordItem, ModuleName, PackageEntry, PackagesKeyword, PlatformHeader, PlatformRequires, ProvidesKeyword, ProvidesTo, RequiresKeyword, To, ToKeyword, TypedIdent, WithKeyword, @@ -187,7 +187,7 @@ fn app_header<'a>() -> impl Parser<'a, AppHeader<'a>, EHeader<'a>> { fn platform_header<'a>() -> impl Parser<'a, PlatformHeader<'a>, EHeader<'a>> { record!(PlatformHeader { before_name: space0_e(EHeader::IndentStart), - name: loc!(specialize(EHeader::PlatformName, package_name())), + name: loc!(specialize(EHeader::PlatformName, package_path())), requires: specialize(EHeader::Requires, requires()), exposes: specialize(EHeader::Exposes, exposes_modules()), packages: specialize(EHeader::Packages, packages()), @@ -203,7 +203,7 @@ fn provides_to_package<'a>() -> impl Parser<'a, To<'a>, EProvides<'a>> { |_, pos| EProvides::Identifier(pos), map!(lowercase_ident(), To::ExistingPackage) ), - specialize(EProvides::Package, map!(package_name(), To::NewPackage)) + specialize(EProvides::Package, map!(package_path(), To::NewPackage)) ] } diff --git a/crates/compiler/parse/src/parser.rs b/crates/compiler/parse/src/parser.rs index f5479cc568..3f2a644a49 100644 --- a/crates/compiler/parse/src/parser.rs +++ b/crates/compiler/parse/src/parser.rs @@ -127,7 +127,7 @@ pub enum EHeader<'a> { Start(Position), ModuleName(Position), AppName(EString<'a>, Position), - PlatformName(EPackageName<'a>, Position), + PlatformName(EPackagePath<'a>, Position), IndentStart(Position), InconsistentModuleName(Region), @@ -146,7 +146,7 @@ pub enum EProvides<'a> { ListStart(Position), ListEnd(Position), Identifier(Position), - Package(EPackageName<'a>, Position), + Package(EPackagePath<'a>, Position), Space(BadInputError, Position), } @@ -202,7 +202,7 @@ pub enum EPackages<'a> { } #[derive(Debug, Clone, PartialEq, Eq)] -pub enum EPackageName<'a> { +pub enum EPackagePath<'a> { BadPath(EString<'a>, Position), Escapes(Position), Multiline(Position), @@ -210,7 +210,7 @@ pub enum EPackageName<'a> { #[derive(Debug, Clone, PartialEq, Eq)] pub enum EPackageEntry<'a> { - BadPackage(EPackageName<'a>, Position), + BadPackage(EPackagePath<'a>, Position), Shorthand(Position), Colon(Position), IndentPackage(Position), diff --git a/crates/compiler/parse/tests/snapshots/pass/empty_platform_header.header.result-ast b/crates/compiler/parse/tests/snapshots/pass/empty_platform_header.header.result-ast index e93effb371..f5e87fe804 100644 --- a/crates/compiler/parse/tests/snapshots/pass/empty_platform_header.header.result-ast +++ b/crates/compiler/parse/tests/snapshots/pass/empty_platform_header.header.result-ast @@ -3,7 +3,7 @@ Module { header: Platform( PlatformHeader { before_name: [], - name: @9-25 PackageName( + name: @9-25 PackagePath( "rtfeldman/blah", ), requires: KeywordItem { diff --git a/crates/compiler/parse/tests/snapshots/pass/full_app_header.header.result-ast b/crates/compiler/parse/tests/snapshots/pass/full_app_header.header.result-ast index 71219ddbed..e726a2e09f 100644 --- a/crates/compiler/parse/tests/snapshots/pass/full_app_header.header.result-ast +++ b/crates/compiler/parse/tests/snapshots/pass/full_app_header.header.result-ast @@ -19,7 +19,7 @@ Module { @31-47 PackageEntry { shorthand: "pf", spaces_after_shorthand: [], - package_name: @35-47 PackageName( + package_path: @35-47 PackagePath( "./platform", ), }, diff --git a/crates/compiler/parse/tests/snapshots/pass/full_app_header_trailing_commas.header.result-ast b/crates/compiler/parse/tests/snapshots/pass/full_app_header_trailing_commas.header.result-ast index 6a5177017c..f7ca8e1fdd 100644 --- a/crates/compiler/parse/tests/snapshots/pass/full_app_header_trailing_commas.header.result-ast +++ b/crates/compiler/parse/tests/snapshots/pass/full_app_header_trailing_commas.header.result-ast @@ -19,7 +19,7 @@ Module { @31-47 PackageEntry { shorthand: "pf", spaces_after_shorthand: [], - package_name: @35-47 PackageName( + package_path: @35-47 PackagePath( "./platform", ), }, diff --git a/crates/compiler/parse/tests/snapshots/pass/function_effect_types.header.result-ast b/crates/compiler/parse/tests/snapshots/pass/function_effect_types.header.result-ast index b607aa0d84..c01620dc08 100644 --- a/crates/compiler/parse/tests/snapshots/pass/function_effect_types.header.result-ast +++ b/crates/compiler/parse/tests/snapshots/pass/function_effect_types.header.result-ast @@ -3,7 +3,7 @@ Module { header: Platform( PlatformHeader { before_name: [], - name: @9-14 PackageName( + name: @9-14 PackagePath( "cli", ), requires: KeywordItem { diff --git a/crates/compiler/parse/tests/snapshots/pass/minimal_app_header.header.result-ast b/crates/compiler/parse/tests/snapshots/pass/minimal_app_header.header.result-ast index 5ebdd1547e..37c2b546ac 100644 --- a/crates/compiler/parse/tests/snapshots/pass/minimal_app_header.header.result-ast +++ b/crates/compiler/parse/tests/snapshots/pass/minimal_app_header.header.result-ast @@ -22,7 +22,7 @@ Module { after: [], }, to: @30-38 NewPackage( - PackageName( + PackagePath( "./blah", ), ), diff --git a/crates/compiler/parse/tests/snapshots/pass/nonempty_platform_header.header.result-ast b/crates/compiler/parse/tests/snapshots/pass/nonempty_platform_header.header.result-ast index 2f0663bd04..0a225288ce 100644 --- a/crates/compiler/parse/tests/snapshots/pass/nonempty_platform_header.header.result-ast +++ b/crates/compiler/parse/tests/snapshots/pass/nonempty_platform_header.header.result-ast @@ -3,7 +3,7 @@ Module { header: Platform( PlatformHeader { before_name: [], - name: @9-21 PackageName( + name: @9-21 PackagePath( "foo/barbaz", ), requires: KeywordItem { @@ -52,7 +52,7 @@ Module { @87-99 PackageEntry { shorthand: "foo", spaces_after_shorthand: [], - package_name: @92-99 PackageName( + package_path: @92-99 PackagePath( "./foo", ), }, diff --git a/crates/compiler/parse/tests/snapshots/pass/provides_type.header.result-ast b/crates/compiler/parse/tests/snapshots/pass/provides_type.header.result-ast index aa041fd292..70e71c34f9 100644 --- a/crates/compiler/parse/tests/snapshots/pass/provides_type.header.result-ast +++ b/crates/compiler/parse/tests/snapshots/pass/provides_type.header.result-ast @@ -19,7 +19,7 @@ Module { @26-42 PackageEntry { shorthand: "pf", spaces_after_shorthand: [], - package_name: @30-42 PackageName( + package_path: @30-42 PackagePath( "./platform", ), }, diff --git a/crates/compiler/parse/tests/snapshots/pass/requires_type.header.result-ast b/crates/compiler/parse/tests/snapshots/pass/requires_type.header.result-ast index 013bac0e27..88b4095e46 100644 --- a/crates/compiler/parse/tests/snapshots/pass/requires_type.header.result-ast +++ b/crates/compiler/parse/tests/snapshots/pass/requires_type.header.result-ast @@ -3,7 +3,7 @@ Module { header: Platform( PlatformHeader { before_name: [], - name: @9-21 PackageName( + name: @9-21 PackagePath( "test/types", ), requires: KeywordItem {