diff --git a/crates/compiler/fmt/src/module.rs b/crates/compiler/fmt/src/module.rs index 96102e641e..e438117b1f 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, PackageHeader, - PackageKeyword, PackagePath, PackagesKeyword, PlatformHeader, PlatformRequires, + PackageKeyword, PackageName, PackagesKeyword, PlatformHeader, PlatformRequires, ProvidesKeyword, ProvidesTo, RequiresKeyword, To, ToKeyword, TypedIdent, WithKeyword, }; use roc_parse::ident::UppercaseIdent; @@ -293,7 +293,7 @@ impl<'a> Formattable for TypedIdent<'a> { } } -fn fmt_package_name<'buf>(buf: &mut Buf<'buf>, name: PackagePath, _indent: u16) { +fn fmt_package_name<'buf>(buf: &mut Buf<'buf>, name: PackageName, _indent: u16) { buf.push('"'); buf.push_str_allow_spaces(name.to_str()); buf.push('"'); @@ -470,7 +470,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_path.value, indent); + fmt_package_name(buf, entry.package_name.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 4ea5073f72..14964f9b4b 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, PackageHeader, PackagePath, PlatformHeader, PlatformRequires, + ModuleName, PackageEntry, PackageHeader, PackageName, PlatformHeader, PlatformRequires, ProvidesTo, To, TypedIdent, }, ident::UppercaseIdent, @@ -355,7 +355,7 @@ impl<'a> RemoveSpaces<'a> for ModuleName<'a> { } } -impl<'a> RemoveSpaces<'a> for PackagePath<'a> { +impl<'a> RemoveSpaces<'a> for PackageName<'a> { fn remove_spaces(&self, _arena: &'a Bump) -> Self { *self } @@ -400,7 +400,7 @@ impl<'a> RemoveSpaces<'a> for PackageEntry<'a> { PackageEntry { shorthand: self.shorthand, spaces_after_shorthand: &[], - package_path: self.package_path.remove_spaces(arena), + package_name: self.package_name.remove_spaces(arena), } } } diff --git a/crates/compiler/load_internal/src/file.rs b/crates/compiler/load_internal/src/file.rs index 65e5d8dad3..510c524e7a 100644 --- a/crates/compiler/load_internal/src/file.rs +++ b/crates/compiler/load_internal/src/file.rs @@ -45,7 +45,7 @@ use roc_parse::ast::{self, Defs, ExtractSpaces, Spaced, StrLiteral, TypeAnnotati use roc_parse::header::{ ExposedName, ImportsEntry, PackageEntry, PackageHeader, PlatformHeader, To, TypedIdent, }; -use roc_parse::header::{HeaderType, PackagePath}; +use roc_parse::header::{HeaderType, PackageName}; use roc_parse::module::module_defs; use roc_parse::parser::{FileError, Parser, SourceError, SyntaxError}; use roc_problem::Severity; @@ -668,7 +668,7 @@ struct ModuleHeader<'a> { is_root_module: bool, exposed_ident_ids: IdentIds, deps_by_name: MutMap, ModuleId>, - packages: MutMap<&'a str, PackagePath<'a>>, + packages: MutMap<&'a str, PackageName<'a>>, imported_modules: MutMap, package_qualified_imported_modules: MutSet>, exposes: Vec, @@ -1834,7 +1834,7 @@ fn state_thread_step<'a>( } } -fn report_loading_problem( +pub fn report_loading_problem( problem: LoadingProblem<'_>, module_ids: ModuleIds, render: RenderTarget, @@ -4100,15 +4100,15 @@ fn load_packages<'a>( for Loc { value: entry, .. } in packages.iter() { let PackageEntry { shorthand, - package_path: + package_name: Loc { - value: package_path, + value: package_name, .. }, .. } = entry; - let src = package_path.to_str(); + let src = package_name.to_str(); // find the `package` or `platform` module on disk, // downloading it into a cache dir first if necessary. @@ -4479,7 +4479,7 @@ fn build_header<'a>( let package_entries = packages .iter() - .map(|Loc { value: pkg, .. }| (pkg.shorthand, pkg.package_path.value)) + .map(|Loc { value: pkg, .. }| (pkg.shorthand, pkg.package_name.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 a3b8141533..2742d72b92 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, EPackagePath, Parser}; +use crate::parser::{specialize, word1, EPackageEntry, EPackageName, Parser}; use crate::string_literal; use roc_module::symbol::{ModuleId, Symbol}; use roc_region::all::Loc; @@ -82,9 +82,9 @@ pub enum VersionComparison { } #[derive(Copy, Clone, PartialEq, Eq, Debug)] -pub struct PackagePath<'a>(&'a str); +pub struct PackageName<'a>(&'a str); -impl<'a> PackagePath<'a> { +impl<'a> PackageName<'a> { pub fn to_str(self) -> &'a str { self.0 } @@ -94,13 +94,13 @@ impl<'a> PackagePath<'a> { } } -impl<'a> From> for &'a str { - fn from(name: PackagePath<'a>) -> &'a str { +impl<'a> From> for &'a str { + fn from(name: PackageName<'a>) -> &'a str { name.0 } } -impl<'a> From<&'a str> for PackagePath<'a> { +impl<'a> From<&'a str> for PackageName<'a> { fn from(string: &'a str) -> Self { Self(string) } @@ -204,7 +204,7 @@ pub struct HostedHeader<'a> { #[derive(Copy, Clone, Debug, PartialEq, Eq)] pub enum To<'a> { ExistingPackage(&'a str), - NewPackage(PackagePath<'a>), + NewPackage(PackageName<'a>), } #[derive(Clone, Debug, PartialEq)] @@ -232,7 +232,7 @@ 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: KeywordItem<'a, ExposesKeyword, Collection<'a, Loc>>>>, pub packages: @@ -248,7 +248,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>>>>, @@ -289,7 +289,7 @@ pub struct TypedIdent<'a> { pub struct PackageEntry<'a> { pub shorthand: &'a str, pub spaces_after_shorthand: &'a [CommentOrNewline<'a>], - pub package_path: Loc>, + pub package_name: Loc>, } pub fn package_entry<'a>() -> impl Parser<'a, Spaced<'a, PackageEntry<'a>>, EPackageEntry<'a>> { @@ -306,19 +306,19 @@ pub fn package_entry<'a>() -> impl Parser<'a, Spaced<'a, PackageEntry<'a>>, EPac ), space0_e(EPackageEntry::IndentPackage) )), - loc!(specialize(EPackageEntry::BadPackage, package_path())) + loc!(specialize(EPackageEntry::BadPackage, package_name())) ), move |(opt_shorthand, package_or_path)| { let entry = match opt_shorthand { Some((shorthand, spaces_after_shorthand)) => PackageEntry { shorthand, spaces_after_shorthand, - package_path: package_or_path, + package_name: package_or_path, }, None => PackageEntry { shorthand: "", spaces_after_shorthand: &[], - package_path: package_or_path, + package_name: package_or_path, }, }; @@ -327,13 +327,13 @@ pub fn package_entry<'a>() -> impl Parser<'a, Spaced<'a, PackageEntry<'a>>, EPac ) } -pub fn package_path<'a>() -> impl Parser<'a, PackagePath<'a>, EPackagePath<'a>> { +pub fn package_name<'a>() -> impl Parser<'a, PackageName<'a>, EPackageName<'a>> { then( - loc!(specialize(EPackagePath::BadPath, string_literal::parse())), + loc!(specialize(EPackageName::BadPath, string_literal::parse())), move |_arena, state, progress, text| match text.value { - 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()))), + 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()))), }, ) } diff --git a/crates/compiler/parse/src/module.rs b/crates/compiler/parse/src/module.rs index ff0026c15e..81299a626a 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_path, AppHeader, ExposedName, ExposesKeyword, GeneratesKeyword, + package_entry, package_name, AppHeader, ExposedName, ExposesKeyword, GeneratesKeyword, HostedHeader, ImportsEntry, ImportsKeyword, InterfaceHeader, Keyword, KeywordItem, ModuleName, PackageEntry, PackageHeader, PackagesKeyword, PlatformHeader, PlatformRequires, ProvidesKeyword, ProvidesTo, RequiresKeyword, To, ToKeyword, TypedIdent, WithKeyword, @@ -194,7 +194,7 @@ fn app_header<'a>() -> impl Parser<'a, AppHeader<'a>, EHeader<'a>> { fn package_header<'a>() -> impl Parser<'a, PackageHeader<'a>, EHeader<'a>> { record!(PackageHeader { before_name: space0_e(EHeader::IndentStart), - name: loc!(specialize(EHeader::PackageName, package_path())), + name: loc!(specialize(EHeader::PackageName, package_name())), exposes: specialize(EHeader::Exposes, exposes_modules()), packages: specialize(EHeader::Packages, packages()), }) @@ -205,7 +205,7 @@ fn package_header<'a>() -> impl Parser<'a, PackageHeader<'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_path())), + name: loc!(specialize(EHeader::PlatformName, package_name())), requires: specialize(EHeader::Requires, requires()), exposes: specialize(EHeader::Exposes, exposes_modules()), packages: specialize(EHeader::Packages, packages()), @@ -221,7 +221,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_path(), To::NewPackage)) + specialize(EProvides::Package, map!(package_name(), To::NewPackage)) ] } diff --git a/crates/compiler/parse/src/parser.rs b/crates/compiler/parse/src/parser.rs index 4c56c65203..31dcb12671 100644 --- a/crates/compiler/parse/src/parser.rs +++ b/crates/compiler/parse/src/parser.rs @@ -127,8 +127,8 @@ pub enum EHeader<'a> { Start(Position), ModuleName(Position), AppName(EString<'a>, Position), - PackageName(EPackagePath<'a>, Position), - PlatformName(EPackagePath<'a>, Position), + PackageName(EPackageName<'a>, Position), + PlatformName(EPackageName<'a>, Position), IndentStart(Position), InconsistentModuleName(Region), @@ -147,7 +147,7 @@ pub enum EProvides<'a> { ListStart(Position), ListEnd(Position), Identifier(Position), - Package(EPackagePath<'a>, Position), + Package(EPackageName<'a>, Position), Space(BadInputError, Position), } @@ -203,7 +203,7 @@ pub enum EPackages<'a> { } #[derive(Debug, Clone, PartialEq, Eq)] -pub enum EPackagePath<'a> { +pub enum EPackageName<'a> { BadPath(EString<'a>, Position), Escapes(Position), Multiline(Position), @@ -211,7 +211,7 @@ pub enum EPackagePath<'a> { #[derive(Debug, Clone, PartialEq, Eq)] pub enum EPackageEntry<'a> { - BadPackage(EPackagePath<'a>, Position), + BadPackage(EPackageName<'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 f5e87fe804..e93effb371 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 PackagePath( + name: @9-25 PackageName( "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 e726a2e09f..71219ddbed 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_path: @35-47 PackagePath( + package_name: @35-47 PackageName( "./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 f7ca8e1fdd..6a5177017c 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_path: @35-47 PackagePath( + package_name: @35-47 PackageName( "./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 c01620dc08..b607aa0d84 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 PackagePath( + name: @9-14 PackageName( "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 37c2b546ac..5ebdd1547e 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( - PackagePath( + PackageName( "./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 0a225288ce..2f0663bd04 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 PackagePath( + name: @9-21 PackageName( "foo/barbaz", ), requires: KeywordItem { @@ -52,7 +52,7 @@ Module { @87-99 PackageEntry { shorthand: "foo", spaces_after_shorthand: [], - package_path: @92-99 PackagePath( + package_name: @92-99 PackageName( "./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 70e71c34f9..aa041fd292 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_path: @30-42 PackagePath( + package_name: @30-42 PackageName( "./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 88b4095e46..013bac0e27 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 PackagePath( + name: @9-21 PackageName( "test/types", ), requires: KeywordItem {