projects
/
ldk-c-bindings
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
14e4007
)
Check if types are understood before we map an impl block for them
author
Matt Corallo
<git@bluematt.me>
Sun, 31 Oct 2021 23:32:55 +0000
(23:32 +0000)
committer
Matt Corallo
<git@bluematt.me>
Tue, 2 Nov 2021 16:54:45 +0000
(16:54 +0000)
c-bindings-gen/src/main.rs
patch
|
blob
|
history
diff --git
a/c-bindings-gen/src/main.rs
b/c-bindings-gen/src/main.rs
index ea624e5fd10b6007379dffb3f9fd0c933f8c82d3..b88f37ffe9e306cc0ac83b5abfaa16d7118e0af1 100644
(file)
--- a/
c-bindings-gen/src/main.rs
+++ b/
c-bindings-gen/src/main.rs
@@
-771,6
+771,11
@@
fn writeln_impl<W: std::io::Write>(w: &mut W, i: &syn::ItemImpl, types: &mut Typ
if p.qself.is_some() { unimplemented!(); }
if let Some(ident) = single_ident_generic_path_to_ident(&p.path) {
if let Some(resolved_path) = types.maybe_resolve_non_ignored_ident(&ident) {
if p.qself.is_some() { unimplemented!(); }
if let Some(ident) = single_ident_generic_path_to_ident(&p.path) {
if let Some(resolved_path) = types.maybe_resolve_non_ignored_ident(&ident) {
+ if !types.understood_c_path(&p.path) {
+ eprintln!("Not implementing anything for impl {} as the type is not understood (probably C-not exported)", ident);
+ return;
+ }
+
let mut gen_types = GenericTypes::new(Some(resolved_path.clone()));
if !gen_types.learn_generics(&i.generics, types) {
eprintln!("Not implementing anything for impl {} due to not understood generics", ident);
let mut gen_types = GenericTypes::new(Some(resolved_path.clone()));
if !gen_types.learn_generics(&i.generics, types) {
eprintln!("Not implementing anything for impl {} due to not understood generics", ident);