diff options
author | Nikhil Shagrithaya <nikhilshagri@gmail.com> | 2017-02-27 16:01:15 +0530 |
---|---|---|
committer | Emilio Cobos Álvarez <emilio@crisal.io> | 2017-04-04 01:05:34 +0200 |
commit | 1714f947e062a7b90ebda71d190daccba87ab32d (patch) | |
tree | 22b835655de2263098f7d4f5d08f9d8f90b96bcd /src/codegen/mod.rs | |
parent | 8f1e5f5ad4fff230b06cdfca868266a28ada3881 (diff) |
Add codegen for destructors.
Diffstat (limited to 'src/codegen/mod.rs')
-rw-r--r-- | src/codegen/mod.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/codegen/mod.rs b/src/codegen/mod.rs index fb6c839d..d1523273 100644 --- a/src/codegen/mod.rs +++ b/src/codegen/mod.rs @@ -1597,6 +1597,20 @@ impl CodeGenerator for CompInfo { self); } } + + if ctx.options().codegen_config.destructor { + if let Some(destructor) = *self.destructor() { + Method::new(MethodKind::Destructor, + destructor, + false) + .codegen_method(ctx, + &mut methods, + &mut method_names, + result, + whitelisted_items, + self); + } + } } // NB: We can't use to_rust_ty here since for opaque types this tries to @@ -1701,6 +1715,7 @@ impl MethodCodegen for Method { let signature_item = ctx.resolve_item(function.signature()); let mut name = match self.kind() { MethodKind::Constructor => "new".into(), + MethodKind::Destructor => "__bindgen_destructor__".into(), _ => function.name().to_owned(), }; |