mirror of
https://github.com/gleam-lang/gleam.git
synced 2024-10-04 02:18:03 +03:00
Pub import
This commit is contained in:
parent
c858574ce3
commit
8800e1892e
@ -777,13 +777,14 @@ fn record_imported_items_for_use_detection<A>(
|
|||||||
environment: &Environment<'_>,
|
environment: &Environment<'_>,
|
||||||
) -> Result<TypedDefinition, Error> {
|
) -> Result<TypedDefinition, Error> {
|
||||||
let Import {
|
let Import {
|
||||||
|
public,
|
||||||
documentation,
|
documentation,
|
||||||
location,
|
location,
|
||||||
module,
|
module,
|
||||||
as_name,
|
as_name,
|
||||||
mut unqualified_values,
|
mut unqualified_values,
|
||||||
unqualified_types,
|
unqualified_types,
|
||||||
..
|
package: (),
|
||||||
} = i;
|
} = i;
|
||||||
// Find imported module
|
// Find imported module
|
||||||
let module_info =
|
let module_info =
|
||||||
@ -818,6 +819,7 @@ fn record_imported_items_for_use_detection<A>(
|
|||||||
}
|
}
|
||||||
|
|
||||||
Ok(Definition::Import(Import {
|
Ok(Definition::Import(Import {
|
||||||
|
public,
|
||||||
documentation,
|
documentation,
|
||||||
location,
|
location,
|
||||||
module,
|
module,
|
||||||
|
@ -410,6 +410,7 @@ pub struct Import<PackageName> {
|
|||||||
pub unqualified_values: Vec<UnqualifiedImport>,
|
pub unqualified_values: Vec<UnqualifiedImport>,
|
||||||
pub unqualified_types: Vec<UnqualifiedImport>,
|
pub unqualified_types: Vec<UnqualifiedImport>,
|
||||||
pub package: PackageName,
|
pub package: PackageName,
|
||||||
|
pub public: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<T> Import<T> {
|
impl<T> Import<T> {
|
||||||
|
@ -231,9 +231,13 @@ where
|
|||||||
|
|
||||||
let def = match (self.tok0.take(), self.tok1.as_ref()) {
|
let def = match (self.tok0.take(), self.tok1.as_ref()) {
|
||||||
// Imports
|
// Imports
|
||||||
|
(Some((start, Token::Pub, _)), Some((_, Token::Import, _))) => {
|
||||||
|
let _ = self.next_tok();
|
||||||
|
self.parse_import(start, false)
|
||||||
|
}
|
||||||
(Some((start, Token::Import, _)), _) => {
|
(Some((start, Token::Import, _)), _) => {
|
||||||
let _ = self.next_tok();
|
let _ = self.next_tok();
|
||||||
self.parse_import(start)
|
self.parse_import(start, false)
|
||||||
}
|
}
|
||||||
// Module Constants
|
// Module Constants
|
||||||
(Some((_, Token::Const, _)), _) => {
|
(Some((_, Token::Const, _)), _) => {
|
||||||
@ -1925,7 +1929,11 @@ where
|
|||||||
// import a/b
|
// import a/b
|
||||||
// import a/b.{c}
|
// import a/b.{c}
|
||||||
// import a/b.{c as d} as e
|
// 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 start = 0;
|
||||||
let mut end;
|
let mut end;
|
||||||
let mut module = String::new();
|
let mut module = String::new();
|
||||||
@ -1985,6 +1993,7 @@ where
|
|||||||
}
|
}
|
||||||
|
|
||||||
Ok(Some(Definition::Import(Import {
|
Ok(Some(Definition::Import(Import {
|
||||||
|
public,
|
||||||
documentation,
|
documentation,
|
||||||
location: SrcSpan {
|
location: SrcSpan {
|
||||||
start: import_start,
|
start: import_start,
|
||||||
|
@ -51,6 +51,7 @@ Parsed {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
package: (),
|
package: (),
|
||||||
|
public: false,
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
target: None,
|
target: None,
|
||||||
|
Loading…
Reference in New Issue
Block a user