mirror of
https://github.com/roc-lang/roc.git
synced 2024-09-22 00:09:33 +03:00
Go back to PackageName
This commit is contained in:
parent
ecf7bea259
commit
09764be7c3
@ -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) {
|
||||
|
@ -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),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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<PQModuleName<'a>, ModuleId>,
|
||||
packages: MutMap<&'a str, PackagePath<'a>>,
|
||||
packages: MutMap<&'a str, PackageName<'a>>,
|
||||
imported_modules: MutMap<ModuleId, Region>,
|
||||
package_qualified_imported_modules: MutSet<PackageQualified<'a, ModuleId>>,
|
||||
exposes: Vec<Symbol>,
|
||||
@ -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::<MutMap<_, _>>();
|
||||
|
||||
// Send the deps to the coordinator thread for processing,
|
||||
|
@ -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<PackagePath<'a>> for &'a str {
|
||||
fn from(name: PackagePath<'a>) -> &'a str {
|
||||
impl<'a> From<PackageName<'a>> 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<PackagePath<'a>>,
|
||||
pub name: Loc<PackageName<'a>>,
|
||||
|
||||
pub exposes: KeywordItem<'a, ExposesKeyword, Collection<'a, Loc<Spaced<'a, ModuleName<'a>>>>>,
|
||||
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<PackagePath<'a>>,
|
||||
pub name: Loc<PackageName<'a>>,
|
||||
|
||||
pub requires: KeywordItem<'a, RequiresKeyword, PlatformRequires<'a>>,
|
||||
pub exposes: KeywordItem<'a, ExposesKeyword, Collection<'a, Loc<Spaced<'a, ModuleName<'a>>>>>,
|
||||
@ -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<PackagePath<'a>>,
|
||||
pub package_name: Loc<PackageName<'a>>,
|
||||
}
|
||||
|
||||
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()))),
|
||||
},
|
||||
)
|
||||
}
|
||||
|
@ -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))
|
||||
]
|
||||
}
|
||||
|
||||
|
@ -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),
|
||||
|
@ -3,7 +3,7 @@ Module {
|
||||
header: Platform(
|
||||
PlatformHeader {
|
||||
before_name: [],
|
||||
name: @9-25 PackagePath(
|
||||
name: @9-25 PackageName(
|
||||
"rtfeldman/blah",
|
||||
),
|
||||
requires: KeywordItem {
|
||||
|
@ -19,7 +19,7 @@ Module {
|
||||
@31-47 PackageEntry {
|
||||
shorthand: "pf",
|
||||
spaces_after_shorthand: [],
|
||||
package_path: @35-47 PackagePath(
|
||||
package_name: @35-47 PackageName(
|
||||
"./platform",
|
||||
),
|
||||
},
|
||||
|
@ -19,7 +19,7 @@ Module {
|
||||
@31-47 PackageEntry {
|
||||
shorthand: "pf",
|
||||
spaces_after_shorthand: [],
|
||||
package_path: @35-47 PackagePath(
|
||||
package_name: @35-47 PackageName(
|
||||
"./platform",
|
||||
),
|
||||
},
|
||||
|
@ -3,7 +3,7 @@ Module {
|
||||
header: Platform(
|
||||
PlatformHeader {
|
||||
before_name: [],
|
||||
name: @9-14 PackagePath(
|
||||
name: @9-14 PackageName(
|
||||
"cli",
|
||||
),
|
||||
requires: KeywordItem {
|
||||
|
@ -22,7 +22,7 @@ Module {
|
||||
after: [],
|
||||
},
|
||||
to: @30-38 NewPackage(
|
||||
PackagePath(
|
||||
PackageName(
|
||||
"./blah",
|
||||
),
|
||||
),
|
||||
|
@ -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",
|
||||
),
|
||||
},
|
||||
|
@ -19,7 +19,7 @@ Module {
|
||||
@26-42 PackageEntry {
|
||||
shorthand: "pf",
|
||||
spaces_after_shorthand: [],
|
||||
package_path: @30-42 PackagePath(
|
||||
package_name: @30-42 PackageName(
|
||||
"./platform",
|
||||
),
|
||||
},
|
||||
|
@ -3,7 +3,7 @@ Module {
|
||||
header: Platform(
|
||||
PlatformHeader {
|
||||
before_name: [],
|
||||
name: @9-21 PackagePath(
|
||||
name: @9-21 PackageName(
|
||||
"test/types",
|
||||
),
|
||||
requires: KeywordItem {
|
||||
|
Loading…
Reference in New Issue
Block a user