Age | Commit message (Collapse) | Author |
|
Derive + blacklisted types
* [X] document blacklisting + derive interaction
* [X] derive `Copy`
* [X] derive `Debug`
* [X] `--impl-debug`
* [x] derive `Default`
* [x] derive `Hash`
* [x] derive `PartialEq`
|
|
Unions don't support deriving these things, even if there is only one
variant (the opaque layout field).
|
|
|
|
This makes it so that whitelisted items and edges outgoing from them are black,
while non-whitelisted items and their edges are gray.
|
|
|
|
|
|
Add `bindgen::Builder::derive_copy`
Fixes https://github.com/rust-lang-nursery/rust-bindgen/issues/948
|
|
|
|
|
|
Fixes #942
Fixes #947
|
|
Presumably they are blacklisted because we can't understand them properly, so be
pessimistic about what we can derive for it.
Fixes #944.
|
|
|
|
we parse it.
This ensures that we see all the relevant types that are defined when parsing
the definition, avoiding problems like #888.
Fixes #888
|
|
initial timer branch commit
added time_phases builder parameter
create timers for BindgenContex analyses, codegen
time parse
added docstrings
added fitzgens suggestions
add --time-phases to bindgen::Builder::command_line_flags
|
|
Avoid generating fields/methods for opaque objects
WIP fix for issue #929
With libclang 4, passes all tests on my machine except `dump_preprocessed_input`, but that fails on the master branch as well
|
|
|
|
|
|
Rewrite `has destructor` analysis as a fixed-point analysis
Fixes #927 . Note that this creates a dependency between the "cannot derive copy" and "has destructor" analysis, i.e. the "has destructor" analysis must run before the "cannot derive copy" analysis, because "cannot derive copy" needs the results of "has destructor".
|
|
monotone framework
|
|
Thanks @fitzgen for the detailed instructions.
Fixes #928.
|
|
|
|
Also renames a bunch of other things referring to named types to refer to type
parameters.
Fixes #915
|
|
Addresses #832
|
|
Fix misleading comments
r? @fitzgen or @emilio
|
|
|
|
Older clang don't have it, and while we can't pass our whole test suite with
those older clangs, we can still generate simple C bindings, so it makes sense
not to panic for C++ only things.
|
|
If we aren't going to derive `PartialEq`, then it doesn't make sense to even run
the analysis.
|
|
Only run analyses when we are going to use their results
Currently, there are various analyses related to deriving various traits that we unconditionally run. However, if we aren't going to derive those traits in codegen, then computing whether or not we can derive the traits is wasteful.
r? @emilio
|
|
Currently, there are various analyses related to deriving various traits that we
unconditionally run. However, if we aren't going to derive those traits in
codegen, then computing whether or not we can derive the traits is wasteful.
|
|
|
|
|
|
|
|
The --rustfmt-configuration-file command-line argument automatically activates --rustfmt-bindings.
|
|
|
|
This patch enables bindgen to run rustfmt on generated bindings. Rustfmt is used
from the global PATH. Two new command-line arguments are added:
1. --format-bindings: Enables running rustfmt
2. --format-configuration-file: The configuration file for rustfmt (not required).
|
|
Fixes alignment errors with new Rust union type
This fix creates a new private field with the required aligned size. This new
private field ensures that the union has the required size.
This fixes: #908
|
|
This fix creates a new private field with the required aligned size. This new
private field ensures that the union has the required size.
|
|
Stablize name of reference and nested combination of ref, ptr, and array
|
|
|
|
Re-add --rust-target option to replace --unstable-rust
Re-apply commit. Addresses #832
Instead of specifying whether or not to use stable, specify the Rust
release to support (one of several stable/beta releases or nightly).
The `--unstable-rust` option is still accepted and implies nightly.
The definitions of `RustTarget` and `RustFeatures` are created with
macros.
For each test that uses unions, there is a version that uses the latest stable
and 1.0.
|
|
|
|
Instead of specifying whether or not to use stable, specify the Rust
release to support (one of several stable/beta releases or nightly).
The `--unstable-rust` option is still accepted and implies nightly.
The definitions of `RustTarget` and `RustFeatures` are created with
macros.
For each test that uses unions, there is a version that uses the latest
stable and 1.0.
This also fixes the bug where unions were generated with non-Copy
fields.
|
|
This fixes stylo build failures when template instantiations tests caused a rust
compile error due to a bad test name.
This commit makes names better sanitized, preventing similar errors in the
future.
|
|
Implements Debug trait for types which do not support derive Debug
For types that do not support derive Debug be implemented automatically by rust,
we know can generate implementations of the Debug trait. This code generation is
hidden behind the '--force-derive-debug' command-line flag.
Should solve: #875
Sorry for the extra noise in lib.rs, codegen/mod.rs etc, that was rustfmt.
|
|
|
|
|
|
For types that do not support derive Debug be implemented automatically by rust,
we know can generate implementations of the Debug trait. This code generation is
hidden behind the '--force-derive-debug' command-line flag.
|
|
|
|
This reverts commit 0bb7b9f1c4652f63f41eba4064b79c044fd3d955.
It turns out our CI stopped running test expectations in an earlier
regression (from d73507e; fix incoming) and so this pull request actually
introduced a bunch of failures when compiling the test expectations and running
their unit tests :(
|
|
Instead of specifying whether or not to use stable, specify the Rust
release to support (one of several stable/beta releases or nightly).
The --unstable-rust option is still accepted and implies nightly.
The definitions of `RustTarget` and `RustFeatures` are created with
macros.
For each test that uses unions, there is a version that uses the latest
stable release and stable 1.0.
|