@@ -87,9 +87,9 @@ impl Packages {
8787 . iter ( )
8888 . filter_map ( |package| -> Option < ( String , Rc < Specifier > ) > {
8989 let package = package. borrow ( ) ;
90- let name = package. get_prop ( "/name" ) ;
91- let version = package. get_prop ( "/version" ) ;
92- if let ( Some ( Value :: String ( name) ) , Some ( Value :: String ( version) ) ) = ( name, version) {
90+ let name = package. get_string_prop ( "/name" ) ;
91+ let version = package. get_string_prop ( "/version" ) ;
92+ if let ( Some ( name) , Some ( version) ) = ( name, version) {
9393 Some ( ( name, Specifier :: new ( & version) ) )
9494 } else {
9595 None
@@ -108,30 +108,31 @@ impl Packages {
108108 for dependency_type in all_dependency_types {
109109 match dependency_type. strategy {
110110 Strategy :: NameAndVersionProps => {
111- if let ( Some ( Value :: String ( name) ) , Some ( Value :: String ( raw_specifier) ) ) = (
112- package. borrow ( ) . get_prop ( dependency_type. name_path . as_ref ( ) . unwrap ( ) ) ,
113- package. borrow ( ) . get_prop ( & dependency_type. path ) . or_else ( || {
114- // Ensure that instances are still created for local packages
115- // which are missing a version
116- if dependency_type. name == "local" {
117- Some ( Value :: String ( "" . to_string ( ) ) )
118- } else {
119- None
120- }
121- } ) ,
122- ) {
111+ let package_borrowed = package. borrow ( ) ;
112+ let name = package_borrowed. get_string_prop ( dependency_type. name_path . as_ref ( ) . unwrap ( ) ) ;
113+ let raw_specifier = package_borrowed. get_string_prop ( & dependency_type. path ) . or_else ( || {
114+ // Ensure that instances are still created for local packages
115+ // which are missing a version
116+ if dependency_type. name == "local" {
117+ Some ( "" . to_string ( ) )
118+ } else {
119+ None
120+ }
121+ } ) ;
122+
123+ if let ( Some ( name) , Some ( raw_specifier) ) = ( name, raw_specifier) {
123124 on_instance ( InstanceDescriptor {
124125 dependency_type : dependency_type. clone ( ) ,
125- internal_name : name. to_string ( ) ,
126+ internal_name : name. clone ( ) ,
126127 matches_cli_filter : false ,
127- name : name . to_string ( ) ,
128+ name,
128129 package : Rc :: clone ( package) ,
129130 specifier : Specifier :: new ( & raw_specifier) ,
130131 } ) ;
131132 }
132133 }
133134 Strategy :: NamedVersionString => {
134- if let Some ( Value :: String ( specifier) ) = package. borrow ( ) . get_prop ( & dependency_type. path ) {
135+ if let Some ( specifier) = package. borrow ( ) . get_string_prop ( & dependency_type. path ) {
135136 if let Some ( ( name, raw_specifier) ) = specifier. split_once ( '@' ) {
136137 on_instance ( InstanceDescriptor {
137138 dependency_type : dependency_type. clone ( ) ,
@@ -145,7 +146,7 @@ impl Packages {
145146 }
146147 }
147148 Strategy :: UnnamedVersionString => {
148- if let Some ( Value :: String ( raw_specifier) ) = package. borrow ( ) . get_prop ( & dependency_type. path ) {
149+ if let Some ( raw_specifier) = package. borrow ( ) . get_string_prop ( & dependency_type. path ) {
149150 on_instance ( InstanceDescriptor {
150151 dependency_type : dependency_type. clone ( ) ,
151152 internal_name : dependency_type. name . clone ( ) ,
@@ -157,16 +158,16 @@ impl Packages {
157158 }
158159 }
159160 Strategy :: VersionsByName => {
160- if let Some ( Value :: Object ( versions_by_name ) ) = package. borrow ( ) . get_prop ( & dependency_type. path ) {
161- for ( name, raw_specifier) in versions_by_name {
161+ if let Some ( versions_by_name_ref ) = package. borrow ( ) . get_object_prop_ref ( & dependency_type. path ) {
162+ for ( name, raw_specifier) in versions_by_name_ref . iter ( ) {
162163 if let Value :: String ( raw_specifier) = raw_specifier {
163164 on_instance ( InstanceDescriptor {
164165 dependency_type : dependency_type. clone ( ) ,
165166 internal_name : name. to_string ( ) ,
166167 matches_cli_filter : false ,
167168 name : name. to_string ( ) ,
168169 package : Rc :: clone ( package) ,
169- specifier : Specifier :: new ( & raw_specifier) ,
170+ specifier : Specifier :: new ( raw_specifier) ,
170171 } ) ;
171172 }
172173 }
0 commit comments