Age | Commit message (Collapse) | Author | |
---|---|---|---|
2016-12-02 | Do not treat parent struct as a module for nested structs | Nick Fitzgerald | |
This fixes `ItemCanonicalPath` to return paths of the form `[module*, item]` rather than `[item*, item]`. That is, there will only be module names before the item's name, rather than also other arbitrary item names (such as parent structs). Fixes #311 | |||
2016-12-02 | Auto merge of #309 - fitzgen:use-root-relative, r=emilio | bors-servo | |
Use the generated root module via a relative path We previously generated uses of the root module with absolute paths: use root; However this only works if the generated bindings are the root of the crate. If they were in some submodule then that path would not be valid. They are now generated relative to the current module, like this: use self::super::super::root; Fixes #96 r? @emilio | |||
2016-12-02 | Use the generated root module via a relative path | Nick Fitzgerald | |
We previously generated uses of the root module with absolute paths: use root; However this only works if the generated bindings are the root of the crate. If they were in some submodule then that path would not be valid. They are now generated relative to the current module, like this: use self::super::super::root; Fixes #96 | |||
2016-12-02 | Unify naming methods into a single method + options builder type | Artem Biryukov | |
This an implementation of `NameOptions` structure which will hold flags for building a name string. This fixes related to issue #201 | |||
2016-11-29 | ir: Add a note about duplicated names. | Emilio Cobos Álvarez | |
2016-11-29 | ir: Don't assume our name is our base name too early when we're in a namespace. | Emilio Cobos Álvarez | |
2016-11-24 | Some fixes for libclang 4.0. | Emilio Cobos Álvarez | |
2016-11-24 | Add a new disable-name-namespacing option. | Emilio Cobos Álvarez | |
2016-11-23 | Auto merge of #285 - tsliang:issue-125, r=emilio | bors-servo | |
clang::Cursor::enum_type should return an Option<Type> Returning an Option<Type> relieves callers from having to check whether clang::Cursor::enum_type returns `CXType_Invalid`. Fixes #125 | |||
2016-11-23 | Use and_then() to properly handle cases when Cursor::enum_type() return None | Tai Sassen-Liang | |
2016-11-22 | Circuit-break if Cursor::enum_type returns None | Tai Sassen-Liang | |
As discussed with @emilio. Part of #125. | |||
2016-11-22 | Use is_valid instead of checking directly against Type::kind | Tai Sassen-Liang | |
Thanks for pointing this out @emilio. | |||
2016-11-22 | ir: Rework how we discover children of modules. | Emilio Cobos Álvarez | |
2016-11-22 | codegen: Don't bother generating an empty module. | Emilio Cobos Álvarez | |
2016-11-22 | A more coherent story for whitelisting. | Emilio Cobos Álvarez | |
2016-11-22 | ir: Deduplicate namespaces. | Emilio Cobos Álvarez | |
2016-11-21 | Auto merge of #293 - fitzgen:type-referenced-by-whitelisted-function, r=emilio | bors-servo | |
Trace function signature types This extends the `TypeCollector` trait implementation for `Item` to consider items of kind `Function` and to collect the types found in the function's signature. Fixes #291 r? @emilio | |||
2016-11-21 | Trace function signature types | Nick Fitzgerald | |
This extends the `TypeCollector` trait implementation for `Item` to consider items of kind `Function` and to collect the types found in the function's signature. Fixes #291 | |||
2016-11-21 | Auto merge of #282 - impowski:layout_template_specializations, r=emilio | bors-servo | |
First steps to fix issue #57 This should generate tests for fully specialized templates. TODO: - [x] Tests r? @emilio | |||
2016-11-21 | Recurse on the innter type when finding a template alias name target | Nick Fitzgerald | |
The assertion that the template alias's inner type was our name target, and that we didn't need to recurse, is failing when generating SpiderMonkey bindings. I'm not 100% sure when this can happen, but clearly it can, and it is easy to support, so let's support it. | |||
2016-11-21 | Auto merge of #284 - fitzgen:dont-eval-variadic-templates, r=emilio | bors-servo | |
Do not evaluate variadic template types This is a workaround for an internal clang assertion that gets triggered if we try to evaluate a variadic template type reference. Fixes #283 r? @emilio | |||
2016-11-21 | Address review comments. | Emilio Cobos Álvarez | |
2016-11-21 | ir: Pass the location instead of the declaration for TemplateRef's. | Emilio Cobos Álvarez | |
2016-11-21 | ir: Explicitly bypass NamespaceRef's | Emilio Cobos Álvarez | |
2016-11-21 | ir: Properly recurse inside types. | Emilio Cobos Álvarez | |
2016-11-21 | Apply fixes due code review for issue #57 | Artem Biryukov | |
2016-11-21 | Reformat. | Emilio Cobos Álvarez | |
2016-11-21 | codegen: Fix whitelisting inside namespaces. | Emilio Cobos Álvarez | |
2016-11-20 | Update error wording for enum_type().expect() | Tai Sassen-Liang | |
2016-11-20 | clang::Cursor::enum_type should return an Option<Type> | Tai Sassen-Liang | |
Fixes issue #125 | |||
2016-11-20 | Add new expectations for tests | Artem Biryukov | |
2016-11-20 | Take out template arguments and make unique names | Artem Biryukov | |
2016-11-20 | First steps to fix issue #57 | Artem Biryukov | |
2016-11-18 | Do not evaluate variadic template types | Nick Fitzgerald | |
This is a workaround for an internal clang assertion that gets triggered if we try to evaluate a variadic template type reference. Fixes #283 | |||
2016-11-18 | Auto merge of #207 - Natim:130-cursor-args-return-vector, r=emilio | bors-servo | |
clang::Cursor::args should return an Option<Vec<Cursor>> Attempt to fix #130 | |||
2016-11-18 | Auto merge of #281 - fitzgen:namespace-mangle-rust-symbols, r=emilio | bors-servo | |
Include namespaces in mangled symbols When we aren't using `--enable-cxx-namespaces`, we can end up with conflicting struct symbol names that we need to disambiguate. The solution is to mangle the namespaced C++ symbol "foo::bar::Baz" into the Rust "foo_bar_Baz" symbol. This did change the way anonymous types and modules get named a little, but I think our approach is much more sane now than it was before. Fixes #267. r? @emilio | |||
2016-11-18 | Include namespaces in mangled symbols | Nick Fitzgerald | |
When we aren't using `--enable-cxx-namespaces`, we can end up with conflicting struct symbol names that we need to disambiguate. The solution is to mangle the namespaced C++ symbol "foo::bar::Baz" into the Rust "foo_bar_Baz" symbol. | |||
2016-11-17 | Make `ir::Item::is_module` public | Nick Fitzgerald | |
2016-11-18 | codegen: Properly mangle bitfield getters. | Emilio Cobos Álvarez | |
2016-11-17 | Attempt to fix #130 — clang::Cursor::args should return an Option<Vec<Cursor>> | Rémy HUBSCHER | |
2016-11-17 | ir: Avoid generating out-of-range values in constants. | Emilio Cobos Álvarez | |
Fixes #274 | |||
2016-11-17 | Generate bool value for bool constants | Xidorn Quan | |
This fixes #272. | |||
2016-11-16 | Auto merge of #260 - emilio:macro-str, r=fitzgen | bors-servo | |
Constant variable improvements. Fixes #256. r? @fitzgen | |||
2016-11-16 | Address review comments. | Emilio Cobos Álvarez | |
2016-11-16 | ir: context: fall back to use the declaration as a key when there's no USR. | Emilio Cobos Álvarez | |
Apparently MSVC isn't that good at giving us USRs... Fixes #271 | |||
2016-11-16 | libbindgen: Make logging optional | Jeff Waugh | |
Note that the log crate isn't completely banished, as other is required by other dependencies. | |||
2016-11-16 | ir: var: Missing docs. | Emilio Cobos Álvarez | |
2016-11-16 | Multiple constant generation evaluation improvements. | Emilio Cobos Álvarez | |
2016-11-16 | reformat. | Emilio Cobos Álvarez | |
2016-11-16 | clang: Evaluate more complex constant expressions in variables. | Emilio Cobos Álvarez | |