Age | Commit message (Collapse) | Author |
|
|
|
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
|
|
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
|
|
First steps to fix issue #57
This should generate tests for fully specialized templates.
TODO:
- [x] Tests
r? @emilio
|
|
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.
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fixes issue #125
|
|
|
|
|
|
|
|
This is a workaround for an internal clang assertion that gets triggered
if we try to evaluate a variadic template type reference.
Fixes #283
|
|
clang::Cursor::args should return an Option<Vec<Cursor>>
Attempt to fix #130
|
|
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
|
|
|
|
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.
|
|
|
|
|
|
ir: Avoid generating out-of-range values in constants.
Partially addresses #274 until my patch or a similar one gets accepted and we can use it.
r? @fitzgen or @upsuper
|
|
|
|
Fixes #274
|
|
This is not the latest version, because the latest version doesn't work
due to serde-rs/quasi#65.
The issue of keeping using 0.20 is that libbindgen depends on aster 0.28
while quasi depends on aster 0.27, which leads to duplicate versions of
aster dependency. Updating quasi to 0.21 brings aster to 0.29, which
also works for libbindgen.
|
|
This fixes #272.
|
|
|
|
Constant variable improvements.
Fixes #256.
r? @fitzgen
|
|
|
|
Apparently MSVC isn't that good at giving us USRs...
Fixes #271
|
|
Note that the log crate isn't completely banished, as other is required
by other dependencies.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Little logging things
Little things. See commit messages for details.
r? @emilio
|
|
This instruments each `CodeGenerator` implementation with a `debug!`
logging macro.
|
|
This adds labels to each thing that gets printed for each AST node, and
uses a range for indent iteration rather than an index variable.
|
|
Add an option to emit our ir for debugging
Similar to our ability to emit the clang AST, this adds an option to
emit our IR for debugging purposes.
This can wait to land until after #204 is merged.
r? @emilio
|
|
Similar to our ability to emit the clang AST, this adds an option to
emit our IR for debugging purposes.
|
|
- Header tests can now be run selectively, e.g. `cargo test union`
will test all headers with 'union' in the file name.
- The list of test functions is generated by `build.rs`, so never
needs to be updated.
- Clever approach suggested by @fitzgen.
|
|
- The root crate is the `bindgen` binary
- Rust-ify the test suite, no more subprocesses!
- Update Travis config to test both crates
|