X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=c-bindings-gen%2Fsrc%2Ftypes.rs;h=6a5f3e25eb633945d4e686f89fa0d6926b601ae1;hb=87b49686773385dda0317365567584e0a48f1bd0;hp=9df1bd1c1ef309e13aef79f99072c3c265adf128;hpb=3398c19e2889fbe22590d8991b4ce1bc176ec1bc;p=ldk-c-bindings diff --git a/c-bindings-gen/src/types.rs b/c-bindings-gen/src/types.rs index 9df1bd1..6a5f3e2 100644 --- a/c-bindings-gen/src/types.rs +++ b/c-bindings-gen/src/types.rs @@ -679,6 +679,8 @@ impl<'mod_lifetime, 'crate_lft: 'mod_lifetime> ImportResolver<'mod_lifetime, 'cr Some(first_seg_str + &remaining) } else if first_seg_str == "crate" { Some(self.crate_name.to_owned() + &remaining) + } else if self.library.modules.get(&format!("{}::{}", self.module_path, first_seg.ident)).is_some() { + Some(format!("{}::{}{}", self.module_path, first_seg.ident, remaining)) } else { None } } } @@ -3070,7 +3072,9 @@ impl<'a, 'c: 'a> TypeResolver<'a, 'c> { // If this is a no-export'd crate and there's only one implementation in the // whole crate, just treat it as a reference to whatever the implementor is. if with_ref_lifetime { - write!(w, "&'static crate::{}", trait_impls[0]).unwrap(); + // Hope we're being printed in function generics and let rustc derive the + // type. + write!(w, "_").unwrap(); } else { write!(w, "&crate::{}", trait_impls[0]).unwrap(); }