impl From<ImportedModuleName> for QualifiedModuleName

This commit is contained in:
Agus Zubiaga 2024-04-23 19:23:44 -03:00
parent 6fffaa6dda
commit 0f89d3558a
No known key found for this signature in database
4 changed files with 20 additions and 12 deletions

View file

@ -3013,12 +3013,9 @@ fn to_pending_value_def<'a>(
}),
ModuleImport(module_import) => {
let module_name = ModuleName::from(module_import.name.value.name.as_str());
let pq_module_name = QualifiedModuleName {
opt_package: module_import.name.value.package,
module: module_name.clone(),
}
.into_pq_module_name(env.opt_shorthand);
let qualified_module_name: QualifiedModuleName = module_import.name.value.into();
let module_name = qualified_module_name.module.clone();
let pq_module_name = qualified_module_name.into_pq_module_name(env.opt_shorthand);
let module_id = env
.qualified_module_ids

View file

@ -5225,12 +5225,7 @@ fn parse<'a>(
for (def, region) in ast::RecursiveValueDefIter::new(&parsed_defs) {
match def {
ValueDef::ModuleImport(import) => {
let qualified_module_name = QualifiedModuleName {
opt_package: import.name.value.package,
module: import.name.value.name.as_str().into(),
};
imported.push((qualified_module_name, *region));
imported.push((import.name.value.into(), *region));
}
ValueDef::IngestedFileImport(_) => {}

View file

@ -10,6 +10,7 @@ use bumpalo::Bump;
use roc_collections::soa::{EitherIndex, Index, Slice};
use roc_error_macros::internal_error;
use roc_module::called_via::{BinOp, CalledVia, UnaryOp};
use roc_module::ident::QualifiedModuleName;
use roc_region::all::{Loc, Position, Region};
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
@ -999,6 +1000,15 @@ pub struct ImportedModuleName<'a> {
pub name: ModuleName<'a>,
}
impl<'a> From<ImportedModuleName<'a>> for QualifiedModuleName<'a> {
fn from(imported: ImportedModuleName<'a>) -> Self {
Self {
opt_package: imported.package,
module: imported.name.into(),
}
}
}
#[derive(Debug, Clone, Copy, PartialEq)]
pub struct ImportAlias<'a>(&'a str);

View file

@ -156,6 +156,12 @@ impl<'a> From<ModuleName<'a>> for &'a str {
}
}
impl<'a> From<ModuleName<'a>> for roc_module::ident::ModuleName {
fn from(name: ModuleName<'a>) -> Self {
name.0.into()
}
}
impl<'a> ModuleName<'a> {
pub const fn new(name: &'a str) -> Self {
ModuleName(name)