Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
Fix --use-core for functions, since we used the aster helper.
r? @fitzgen, @nox or anyone else?
|
|
Signed-off-by: Emilio Cobos Álvarez <ecoal95@gmail.com>
|
|
Add `clang::Type::is_valid` and use it instead of checking self.kind() against CXType_Invalid
Needed `is_valid()` when debugging, so figured we should land this and update places where we compare against the magical sentinel value.
r? @emilio
|
|
Add an option to avoid converting to f32/f64 automatically float types.
This implements another feature that we need for parity with upstream bindgen.
r? @fitzgen
|
|
Support --use-core and --ctypes-prefix
As requested in https://github.com/Yamakaky/rust-bindgen/issues/400#issuecomment-258632805.
r? @fitzgen
|
|
Make clang::Cursor::fallible_semantic_parent make ffi call
This PR fixes #120 . `clang::Cursor::semantic_parent` now just calls `clang::Cursor::fallible_semantic_parent`, and the ffi call has been moved into `fallible_semantic_parent`.
This change broke a number of tests which call `is_toplevel()` (which itself calls `semantic_parent()`):
> panicked at called Option::unwrap() on a None value
So I re-wrote `is_toplevel()` to call `fallible_semantic_parent()`, which returns an `Option<Cursor>` type instead.
|
|
CXType_Invalid
|
|
|
|
A helper for checking if the type's kind is not `CXType_Invalid`.
|
|
Useful little helpers for Item and Type
Just a couple things I have found helpful when debugging, and should probably exist either way.
r? @emilio
|
|
|
|
Wrap enum_val_unsigned in an Option
Patterned after the changes merged in #220.
Fixes #128
|
|
|
|
|
|
Wrap enum_val_signed in an Option.
Also reorganize calling code to avoid duplicate checking of cursor type.
Fixes #127
|
|
|
|
Remove unused template_arg_kind
Addresses #133
|
|
Also reorganize calling function to avoid duplicate checking of cursor
type.
Fixes #127
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Speed up integration tests (move building expectations)
Speed up running 'cargo test':
-Before: 2'17s
-After: 30s
Update to use new path:
Makefile, .travis.yml, CONTRIBUTING.md, tests/tests.rs
Delete unused expectation that fail to compile:
tests/expectations/moar_bitfields.rs
tests/expectations/variadic_template_args.rs
|
|
Added checks for clang::Cursor::template_arg_value
Fixes #134.
r? @fitzgen
|
|
|
|
Speed up running 'cargo test':
-Before: 2'17s
-After: 30s
Update to use new path:
Makefile, .travis.yml, CONTRIBUTING.md, tests/tests.rs
Delete unused expectation that fail to compile:
tests/expectations/moar_bitfields.rs
tests/expectations/variadic_template_args.rs
For every 'cargo test' run, the bindgen output where built.
We already test that the bindgen output match expectations/*.rs,
so there is no need to check it build unless the expectation is updated.
Move tests/expectations/*.rs to tests/expectations/tests/*.rs and make
tests/expectations a new dev-dependency package. This allow running:
- cargo test -p tests_expectations
In addition to the speed up, we also get a clean output for the build
and test run. In particular, a number of warnings are generated that should
probably be silenced, and eventually enforced modifying travis to build:
- RUSTFLAGS='-D warnings' cargo test -p tests_expectations
The benefit of having it as a new package is that it avoid polluting
the 'cargo test' output that should focus on bindgen.
|
|
change return value of Type::pointee_type() to Option<Type>
Fixes #137
|
|
Rework CI and add macOS builds
Adds 3.9 builds and macOS builds.
Clang is installed from llvm.org instead of installed from `apt-get`/`brew` (this is significantly faster, especially on macOS because brew is really slow).
|
|
Don't be loud about ignoring macro expansion cursors
r? @emilio
We walk the expanded code already. These cursors are children of the translation unit for some reason, and let you iterate over tokens from before the macro was expanded. Pretty safe to ignore here.
|
|
|
|
|
|
|
|
|
|
r=emilio
Dangling item id in partial specializations
See individual commit messages for details.
r? @emilio
|
|
The `with_id` id will potentially end up unused if we find we already
have an item (with its own distinct `ItemId`) for the type, so if we
pass `with_id` as the parent id when parsing children it is potentially
a dangling reference. Instead, use the canonical template declaration as
the parent. It is already parsed and has a known-resolvable `ItemId`.
|
|
This adds a temporary binding for the newly allocated id so that we can
use it in conditional breakpoints when debugging dangling `ItemId`
references. I believe that we will want the ability to set conditional
breakpoints in this method every single time we end up debugging
dangling references, so it is worth landing in master.
|
|
clang::Cursor::definition should return Option<clang::Cursor>
Fixes #123
Paired with @glasserc
|
|
Paired with @glasserc
|
|
Make clang::Cursor::ret_type return an Option<Type> — Fixes #131
Well apparently nobody is using `Cursor::ret_type` 😢
|
|
|
|
Some cargo-fmt corrections.
While running `cargo fmt` for my PR I realized that other files were touched.
|
|
|
|
|
|
Allow aliases and template aliases to be considered for replacement
Fixes #89.
I'm not exactly *happy* with the way this is implemented (making `real_canonical_name` public so that we can use it in replacement lookups) but I'm not sure of a better way without refactoring most of how naming works right now.
r? @emilio
|
|
|