@@ -14,8 +14,8 @@ use anyhow::bail;
1414use anyhow:: Result ;
1515use harp:: syntax:: is_valid_symbol;
1616use harp:: syntax:: sym_quote_invalid;
17- use oak_package :: library:: Library ;
18- use oak_package :: package:: Package ;
17+ use oak_library :: library:: Library ;
18+ use oak_library :: package:: Package ;
1919use stdext:: * ;
2020use tower_lsp:: lsp_types:: Diagnostic ;
2121use tower_lsp:: lsp_types:: DiagnosticSeverity ;
@@ -169,14 +169,14 @@ pub(crate) fn generate_diagnostics(
169169 // If this is a package, add imported symbols to workspace
170170 if let Some ( SourceRoot :: Package ( root) ) = & state. root {
171171 // Add symbols from `importFrom()` directives
172- for import in & root. namespace . imports {
172+ for import in & root. namespace ( ) . imports {
173173 context. workspace_symbols . insert ( import. name . clone ( ) ) ;
174174 }
175175
176176 // Add symbols from `import()` directives
177- for package_import in & root. namespace . package_imports {
177+ for package_import in & root. namespace ( ) . package_imports {
178178 if let Some ( pkg) = state. library . get ( package_import) {
179- for export in & pkg. namespace . exports {
179+ for export in & pkg. namespace ( ) . exports {
180180 context. workspace_symbols . insert ( export. clone ( ) ) ;
181181 }
182182 }
@@ -193,7 +193,7 @@ pub(crate) fn generate_diagnostics(
193193 // test files setup.
194194 if testthat {
195195 if let Some ( pkg) = state. library . get ( "testthat" ) {
196- for export in & pkg. namespace . exports {
196+ for export in & pkg. namespace ( ) . exports {
197197 context. workspace_symbols . insert ( export. clone ( ) ) ;
198198 }
199199 }
@@ -882,14 +882,14 @@ fn handle_package_attach_call(node: Node, context: &mut DiagnosticContext) -> an
882882 let package = insert_package_exports ( package_name, attach_pos, context) ?;
883883
884884 // Also attach packages from `Depends` field
885- for package_name in package. description . depends . iter ( ) {
885+ for package_name in package. description ( ) . depends . iter ( ) {
886886 insert_package_exports ( package_name, attach_pos, context) ?;
887887 }
888888
889889 // Special handling for the tidyverse and tidymodels packages. Hard-coded
890890 // for now but in the future, this should probably be expressed as a
891891 // `DESCRIPTION` field like `Config/Needs/attach`.
892- let attach_field = match package. description . name . as_str ( ) {
892+ let attach_field = match package. description ( ) . name . as_str ( ) {
893893 // https://github.com/tidyverse/tidyverse/blob/0231aafb/R/attach.R#L1
894894 "tidyverse" => {
895895 vec ! [
@@ -949,7 +949,7 @@ fn insert_package_exports(
949949 . library_symbols
950950 . entry ( attach_pos)
951951 . or_default ( )
952- . extend ( package. exported_symbols . iter ( ) . cloned ( ) ) ;
952+ . extend ( package. exported_symbols ( ) . clone ( ) . into_vec ( ) ) ;
953953
954954 Ok ( package)
955955}
@@ -1132,12 +1132,13 @@ mod tests {
11321132 use std:: path:: PathBuf ;
11331133
11341134 use harp:: eval:: RParseEvalOptions ;
1135- use oak_package :: library:: Library ;
1136- use oak_package :: package:: Package ;
1135+ use oak_library :: library:: Library ;
1136+ use oak_library :: package:: Package ;
11371137 use oak_package:: package_description:: Dcf ;
11381138 use oak_package:: package_description:: Description ;
11391139 use oak_package:: package_namespace:: Namespace ;
11401140 use once_cell:: sync:: Lazy ;
1141+ use stdext:: SortedVec ;
11411142 use tower_lsp:: lsp_types;
11421143 use tower_lsp:: lsp_types:: Position ;
11431144
@@ -1638,7 +1639,7 @@ foo
16381639 r_task ( || {
16391640 // `mockpkg` exports `foo` and `bar`
16401641 let namespace = Namespace {
1641- exports : vec ! [ "foo" . to_string( ) , "bar" . to_string( ) ] ,
1642+ exports : SortedVec :: from_vec ( vec ! [ "foo" . to_string( ) , "bar" . to_string( ) ] ) ,
16421643 imports : vec ! [ ] ,
16431644 package_imports : vec ! [ ] ,
16441645 } ;
@@ -1736,7 +1737,7 @@ foo
17361737 r_task ( || {
17371738 // pkg1 exports `foo` and `bar`
17381739 let namespace1 = Namespace {
1739- exports : vec ! [ "foo" . to_string( ) , "bar" . to_string( ) ] ,
1740+ exports : SortedVec :: from_vec ( vec ! [ "foo" . to_string( ) , "bar" . to_string( ) ] ) ,
17401741 imports : vec ! [ ] ,
17411742 package_imports : vec ! [ ] ,
17421743 } ;
@@ -1753,7 +1754,7 @@ foo
17531754
17541755 // pkg2 exports `bar` and `baz`
17551756 let namespace2 = Namespace {
1756- exports : vec ! [ "bar" . to_string( ) , "baz" . to_string( ) ] ,
1757+ exports : SortedVec :: from_vec ( vec ! [ "bar" . to_string( ) , "baz" . to_string( ) ] ) ,
17571758 imports : vec ! [ ] ,
17581759 package_imports : vec ! [ ] ,
17591760 } ;
@@ -1812,7 +1813,7 @@ foo
18121813 r_task ( || {
18131814 // `pkg` exports `foo` and `bar`
18141815 let namespace = Namespace {
1815- exports : vec ! [ "foo" . to_string( ) , "bar" . to_string( ) ] ,
1816+ exports : SortedVec :: from_vec ( vec ! [ "foo" . to_string( ) , "bar" . to_string( ) ] ) ,
18161817 imports : vec ! [ ] ,
18171818 package_imports : vec ! [ ] ,
18181819 } ;
@@ -1853,7 +1854,7 @@ foo
18531854 #[ test]
18541855 fn test_penguins_symbol_no_diagnostic ( ) {
18551856 r_task ( || {
1856- let palmerpenguins_dir = oak_package :: package:: temp_palmerpenguin ( ) ;
1857+ let palmerpenguins_dir = oak_library :: package:: temp_palmerpenguin ( ) ;
18571858 let palmerpenguins_pkg = Package :: load_from_folder ( palmerpenguins_dir. path ( ) )
18581859 . unwrap ( )
18591860 . unwrap ( ) ;
0 commit comments