X-Git-Url: http://git.bitcoin.ninja/index.cgi?p=ldk-c-bindings;a=blobdiff_plain;f=c-bindings-gen%2Fsrc%2Fmain.rs;h=d107f3e9a6c66af726c4c84602c45c209686712c;hp=c869e327bcdcf7956c83772a88da08893caffc57;hb=4b3c6041d34566b1f398cb3277482e505a6a36aa;hpb=04c5ad83145b290683385b442bb575181c9376a3 diff --git a/c-bindings-gen/src/main.rs b/c-bindings-gen/src/main.rs index c869e32..d107f3e 100644 --- a/c-bindings-gen/src/main.rs +++ b/c-bindings-gen/src/main.rs @@ -1486,20 +1486,17 @@ fn walk_ast<'a>(ast_storage: &'a FullLibraryAST, crate_types: &mut CrateTypes<'a if process_alias { match &*t.ty { syn::Type::Path(p) => { + let t_ident = &t.ident; + // If its a path with no generics, assume we don't map the aliased type and map it opaque - let mut segments = syn::punctuated::Punctuated::new(); - segments.push(syn::PathSegment { - ident: t.ident.clone(), - arguments: syn::PathArguments::None, - }); - let path_obj = syn::Path { leading_colon: None, segments }; + let path_obj = parse_quote!(#t_ident); let args_obj = p.path.segments.last().unwrap().arguments.clone(); match crate_types.reverse_alias_map.entry(import_resolver.maybe_resolve_path(&p.path, None).unwrap()) { hash_map::Entry::Occupied(mut e) => { e.get_mut().push((path_obj, args_obj)); }, hash_map::Entry::Vacant(e) => { e.insert(vec![(path_obj, args_obj)]); }, } - crate_types.opaques.insert(type_path.clone(), &t.ident); + crate_types.opaques.insert(type_path, t_ident); }, _ => { crate_types.type_aliases.insert(type_path, import_resolver.resolve_imported_refs((*t.ty).clone()));