Age | Commit message (Collapse) | Author |
|
r=emilio
clang::Cursor::referenced should return Option<clang::Cursor>
Fixes https://github.com/servo/rust-bindgen/issues/124
Since I am new to Rust, I hope I didn't do things too badly
|
|
|
|
|
|
Proper fix on aster soon, still worth to get this in I guess.
r? @fitzgen
|
|
r? @fitzgen
Fixes #242
|
|
Add support for bindings to overloaded functions
This commit (re)adds support for generating bindings to overloaded
functions. First, we use the symbol name instead of the canonical name
when checking if we have already generated bindings for a given
function. Second, we add a map from canonical names to number of times
we have generated a function with that canonical name. We increment this
number every time we generate a function. When the number is greater
than zero, we append it to the function name so that overloaded
functions get a unique Rust symbol.
Fixes #239
r? @emilio
|
|
This commit (re)adds support for generating bindings to overloaded
functions. First, we use the symbol name instead of the canonical name
when checking if we have already generated bindings for a given
function. Second, we add a map from canonical names to number of times
we have generated a function with that canonical name. We increment this
number every time we generate a function. When the number is greater
than zero, we append it to the function name so that overloaded
functions get a unique Rust symbol.
|
|
C complex only exists for floating point types.
C Complex are built in types
long double _Complex is not supported.
Long double would be an f128, runing generated binding test produces:
assertion failed: `(left == right)` (left: `16`, right: `32`)',
tests/expectations/tests/complex.rs:72
We test global long double _Complex because it does not require
layout tests.
Handle all the different way a complex can be present in
BindgenContext calling generated_bindegen_complex to indicate
that __BindgenContext will need to be added.
|
|
Add rudimentary support for `__float128`
This adds `__float128` as a builtin type, and generates an opaque array
of 16 `u8`s to represent it in the generated bindings since Rust doesn't
have an `f128` type.
Context and motivation: Somehow `__float128` is getting pulled into
SpiderMonkey headers from somewhere, and the lack of `__float128`
support was causing bindgen to hard fail in bindings generation.
r? @emilio
|
|
This adds `__float128` as a builtin type, and generates an opaque array
of 16 `u8`s to represent it in the generated bindings since Rust doesn't
have an `f128` type.
Context and motivation: Somehow `__float128` is getting pulled into
SpiderMonkey headers from somewhere, and the lack of `__float128`
support was causing bindgen to hard fail in bindings generation.
|
|
Reformat
Automatic reformat running `cargo fmt` for the latest nits introduced.
r? @fitzgen
|
|
|
|
class cursor.
And it's not a valid identifier as a template parameter. See the comment and the
tests for details.
|
|
|
|
|
|
Parse macro expressions.
Clang is trolling me really hard so I'm going to see if the extra token I'm always getting is LLVM 3.9 specific.
|
|
|
|
|
|
|
|
default BitOr implementation.
|
|
|
|
|
|
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`.
|
|
|
|
|
|
|
|
|
|
Also reorganize calling function to avoid duplicate checking of cursor
type.
Fixes #127
|
|
|
|
|
|
|
|
|
|
|
|
change return value of Type::pointee_type() to Option<Type>
Fixes #137
|
|
|
|
|
|
|
|
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.
|
|
Paired with @glasserc
|
|
Make clang::Cursor::ret_type return an Option<Type> — Fixes #131
Well apparently nobody is using `Cursor::ret_type` 😢
|
|
|