@@ -66,6 +66,18 @@ enum PropertyType<'a> {
6666 Element ( & ' a TypeElement ) ,
6767}
6868
69+ fn add_dependency ( dependencies : & mut Vec < TokenStream > , dependency : & Ident ) {
70+ let present = dependencies
71+ . iter ( )
72+ . any ( |v| v. to_string ( ) . contains ( & dependency. to_string ( ) ) ) ;
73+
74+ if !present {
75+ dependencies. push ( quote ! {
76+ use super :: #dependency;
77+ } ) ;
78+ }
79+ }
80+
6981fn tokenize_enum ( enum_vec : & Vec < String > , enum_name : String ) -> ( Ident , TokenStream ) {
7082 let enum_tokens: Vec < TokenStream > = enum_vec
7183 . iter ( )
@@ -575,6 +587,7 @@ pub fn get_commands(
575587 . map ( |v| Ident :: new ( v, Span :: call_site ( ) ) )
576588 . collect :: < Vec < Ident > > ( ) ;
577589
590+ add_dependency ( dependencies, & dep[ 0 ] ) ;
578591 if let Some ( _) = return_type. optional {
579592 let v = quote ! {
580593 #[ serde( skip_serializing_if="Option::is_none" ) ]
@@ -803,20 +816,7 @@ pub fn get_parameters(
803816 . map ( |v| Ident :: new ( v, Span :: call_site ( ) ) )
804817 . collect :: < Vec < Ident > > ( ) ;
805818
806- let v: Vec < & TokenStream > = dependencies
807- . iter ( )
808- . filter ( |v| {
809- let r = ref_type. split ( "." ) . collect :: < Vec < & str > > ( ) [ 0 ] ;
810- v. to_string ( ) . contains ( r)
811- } )
812- . collect ( ) ;
813-
814- if v. len ( ) <= 0 {
815- let first_dep = & dep[ 0 ] ;
816- dependencies. push ( quote ! {
817- use super :: #first_dep;
818- } ) ;
819- }
819+ add_dependency ( dependencies, & dep[ 0 ] ) ;
820820
821821 if let Some ( _) = parameter. optional {
822822 let v = quote ! {
@@ -1346,14 +1346,6 @@ pub fn compile_cdp_json(file_name: &str, commit: &str) -> (Vec<TokenStream>, Vec
13461346
13471347 let mut method_impls = Vec :: new ( ) ;
13481348
1349- // FIXME - get_commands does not check returns for types needed that we need to import.
1350- // I'm adding this hack to stop yak shaving and the getting the project done.
1351- if dom. domain == "PWA" {
1352- dependencies. push ( quote ! {
1353- use super :: Target ;
1354- } ) ;
1355- }
1356-
13571349 if let Some ( deps) = & dom. dependencies {
13581350 for dep in deps
13591351 . iter ( )
0 commit comments