Pub import

This commit is contained in:
Louis Pilfold 2023-10-06 13:48:42 +01:00
parent c858574ce3
commit 8800e1892e
4 changed files with 16 additions and 3 deletions

View File

@ -777,13 +777,14 @@ fn record_imported_items_for_use_detection<A>(
environment: &Environment<'_>,
) -> Result<TypedDefinition, Error> {
let Import {
public,
documentation,
location,
module,
as_name,
mut unqualified_values,
unqualified_types,
..
package: (),
} = i;
// Find imported module
let module_info =
@ -818,6 +819,7 @@ fn record_imported_items_for_use_detection<A>(
}
Ok(Definition::Import(Import {
public,
documentation,
location,
module,

View File

@ -410,6 +410,7 @@ pub struct Import<PackageName> {
pub unqualified_values: Vec<UnqualifiedImport>,
pub unqualified_types: Vec<UnqualifiedImport>,
pub package: PackageName,
pub public: bool,
}
impl<T> Import<T> {

View File

@ -231,9 +231,13 @@ where
let def = match (self.tok0.take(), self.tok1.as_ref()) {
// Imports
(Some((start, Token::Pub, _)), Some((_, Token::Import, _))) => {
let _ = self.next_tok();
self.parse_import(start, false)
}
(Some((start, Token::Import, _)), _) => {
let _ = self.next_tok();
self.parse_import(start)
self.parse_import(start, false)
}
// Module Constants
(Some((_, Token::Const, _)), _) => {
@ -1925,7 +1929,11 @@ where
// import a/b
// import a/b.{c}
// import a/b.{c as d} as e
fn parse_import(&mut self, import_start: u32) -> Result<Option<UntypedDefinition>, ParseError> {
fn parse_import(
&mut self,
import_start: u32,
public: bool,
) -> Result<Option<UntypedDefinition>, ParseError> {
let mut start = 0;
let mut end;
let mut module = String::new();
@ -1985,6 +1993,7 @@ where
}
Ok(Some(Definition::Import(Import {
public,
documentation,
location: SrcSpan {
start: import_start,

View File

@ -51,6 +51,7 @@ Parsed {
},
],
package: (),
public: false,
},
),
target: None,