Age | Commit message (Collapse) | Author |
|
|
|
(regardless of which sort of Item they are)
|
|
Since #1378 broke a bunch of OSX builds.
Most people don't care about them and they're in some OSX system headers which
means that this could break normal C and C++ stuff.
This introduces --generate-block / generate_block to generate these signatures,
and adds tests so that this is getting tested.
|
|
|
|
before, bindgen -- -I blah would try to open `-I` as a header file.
|
|
|
|
Fixes #1336
|
|
|
|
|
|
|
|
They do nothing, and are effectively superseded by --raw-line and friends.
They also tend to confuse people.
Closes #104
|
|
Use the ? operator instead of try, and add some more uses of it on Option<> that
were straight-forward.
|
|
Previously, only String was supported on these while other
functions in Builder worked with both str and String
|
|
|
|
|
|
|
|
|
|
generated bindings from test headers
|
|
Remove derive-partialeq-template-inst test.
Add comments.
Don't implement PartialEq for incomplete arrays
Handle opaque bases and template instantiations
Extract constrain_type.
Extract `is whitelisted?` check
Add failing partialeq-anonfield
join for comps
Fix: return insert if not whitelisted
Delegate TypeRefs and alias to constrain_join.
Delegate Template instantiations to constrain_join
Add derive-partialeq-pointer.hpp test
Update comment.
Fix layout alignment larger that array limit
Add missing test for derive-partialeq-anonfield.rs
Clean
Clean
Fix typo in opaque-template-inst-member test
Remove redudant stmt
Add comment on can_supersede.
Format impl_partialeq and leave a comment
Extract requires_storage into it's own function.
Clean
|
|
This patch flips --rustfmt-bindings to --no-rustfmt-bindings and enables
formatting by default. If rustfmt is not accessible, a warning is
printed and the bindings are printed unformatted.
|
|
Add --no-partialeq <regex> flag
Related to #965.
- [x] Add a new RegexSet member to bindgen::Builder (similar to the whitelisted_types set).
- [x] A Builder method to add strings to that RegexSet.
- [x] Plumbing in src/options.rs to convert --no-partialeq <regex> CLI flags into invocations of the builder method.
- [x] Make the MonotoneFramework::constrain function in src/ir/analysis/derive_partialeq.rs check if the given item is explicitly marked not to be Partialeq, and if so, insert it into the self.cannot_derive_partialeq set via return self.insert(id).
- [x] Tests!
- [x] When the no-partialeq type is transitively referenced by a whitelisted item
- [x] When the no-partialeq type is explicitly whitelisted
- [x] When the no-partialeq type is marked opaque
This is my first pass at implementing this functionality, I haven't implemented the tests yet. I wanted to make sure I am on the right track, particularly when it comes to updating `MonotoneFramework::constrain`.
r? @fitzgen
|
|
- [x] Add a new RegexSet member to bindgen::Builder (similar to the whitelisted_types set).
- [x] A Builder method to add strings to that RegexSet.
- [x] Plumbing in src/options.rs to convert --no-partialeq <regex> CLI flags into invocations of the builder method.
- [x] Make the MonotoneFramework::constrain function in src/ir/analysis/derive_partialeq.rs check if the given item is explicitly marked not to be Partialeq, and if so, insert it into the self.cannot_derive_partialeq set via return self.insert(id).
- [x] Tests!
- [x] When the no-partialeq type is transitively referenced by a whitelisted item
- [x] When the no-partialeq type is explicitly whitelisted
- [x] When the no-partialeq type is marked opaque
Fixes #965
|
|
|
|
|
|
|
|
Closes #987
Also, we were making a call to the now deprecated `Builder::hide_type`,
changed that over to call `Builder::blacklist_type.
|
|
Depreciate whitelisted function.
Closes #985
I also noticed a reference to `whitelisted_function` within the book, should this be updated as well?
https://github.com/rust-lang-nursery/rust-bindgen/blob/a371de097f5e37eb01754525fb1e2029ca88b0be/book/src/whitelisting.md
I've started to learn rust recently, so please let me know if there is anything I missed.
|
|
Closes #985
|
|
|
|
Also simplifies the logic that determines which enum variation gets chosen.
|
|
|
|
See #949 for context and motivation.
|
|
|
|
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
|
|
|
|
Also renames a bunch of other things referring to named types to refer to type
parameters.
Fixes #915
|
|
Addresses #832
|
|
|
|
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).
|
|
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.
|
|
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.
|
|
This would generate dummy uses of all the whitelisted types, which we were
planning on eventually using to generate DWARF for more layout testing of our
types, but we decided that isn't worth the trouble. Kill it!
|
|
|
|
Fixes #852
|