Skip to content

Commit 40080c4

Browse files
committed
Adding Return Types to the imported dependencies
1 parent 61a4a08 commit 40080c4

File tree

1 file changed

+14
-22
lines changed

1 file changed

+14
-22
lines changed

src/compile.rs

Lines changed: 14 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
6981
fn 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

Comments
 (0)