Age | Commit message (Collapse) | Author |
|
Speed up CI runs by only `cargo check`ing for docs
Running `cargo check --features testing_only_docs` will catch missing doc
comments, and we can avoid doing a full build.
r? @emilio
|
|
Running `cargo check --features testing_only_docs` will catch missing doc
comments, and we can avoid doing a full build.
|
|
Preserve comments when dumping preprocessed input headers
It should be really easy to generate standalone, isolated test cases for bindgen bugs now \o/
See each commit for further details.
r? @emilio
|
|
For very large logs to stdout, this prevents deadlocks.
|
|
Stop Rust from prepending underscore before '?' for win32
This fixes #819.
It also includes tests for different platforms which are not supposed to be affected, so that we won't regress them in the future either.
The prefix `\x01` char is necessary for Win32. See also [msvc32_symbolify function in regen_atoms.py](https://github.com/servo/servo/blob/1b6d29e31996c87218352b825aa93e01909a6a24/components/style/gecko/regen_atoms.py#L35-L38).
|
|
|
|
|
|
|
|
|
|
The -C flag tells Clang's preprocessor not to strip comments, but unfortunately
Clang will only accept it when dumping the preprocessed file to stdout, which is
the -E flag. This means that we need to capture the child process's stdout and
then copy it to a file ourselves now.
|
|
Document -x c++, not -x=c++
When using -x=c++ in bindgen arguments, we hit #340. We should use -x c++ instead.
|
|
When using -x=c++ in bindgen arguments, we hit #340. We should use -x c++ instead.
|
|
Dump preprocessed input headers
See each commit message.
Fixes #811.
r? @emilio
|
|
11/10 MAJESTIC AF
r? @emilio
|
|
|
|
It is both more correct and easier than using clang manually.
|
|
|
|
This is useful when debugging bindgen, using C-Reduce on an input to bindgen, or
for constructing portable test cases when filing issues against bindgen.
Fixes #811
|
|
|
|
Rather than eagerly expanding multiple input headers into `-include <header>`
clang arguments, store them explicitly until we actually go to generate
bindings. Same deal for unsaved file contents.
|
|
Fix typos in some comments
|
|
|
|
fitzgen:issue-807-opaque-types-methods-getting-generated, r=emilio
Fix tracing of opaque types
This makes tracing opaque types' edges match what we codegen for opaque types. Although we still generate constructors, methods, etc for opaque types (just not fields and base members) we were not tracing them.
Fixes #807
This miiight be related to https://bugzilla.mozilla.org/show_bug.cgi?id=1366050 too.
r? @emilio
|
|
This makes tracing opaque types' edges match what we codegen for opaque
types. Although we still generate constructors, methods, etc for opaque
types (just not fields and base members) we were not tracing them.
Fixes #807
|
|
codegen: Make comments indentation-aware.
This commit moves comment processing to a central place (well, two, because of
field docs, but that's fine).
Also, it makes comments indentation aware, so multiline comments don't appear
garbled.
Finally, it also fixes an out-of-bounds panic when processing an empty multiline
comment.
|
|
|
|
This commit moves comment processing to a central place (well, two, because of
field docs, but that's fine).
Also, it makes comments indentation aware, so multiline comments don't appear
garbled.
Finally, it also fixes an out-of-bounds panic when processing an empty multiline
comment.
|
|
Update the tutorial for the latest bindgen release
This also removes old references to `libbindgen` and replaces them with
`bindgen`. I renamed the repo containing the tutorial's full code, so those
github links should work, and this isn't just an artifact of a blind
search/replace.
Part of #803
|
|
The old checks to prevent deploying multiple times ended up making it so we
never deployed because we changed the environment variables we used in CI. This
change means we will deploy multiple times for every push, but this is an
idempotent operation, and makes sure that we won't ever run into the same bug
again.
|
|
This also removes old references to `libbindgen` and replaces them with
`bindgen`. I renamed the repo containing the tutorial's full code, so those
github links should work, and this isn't just an artifact of a blind
search/replace.
|
|
codegen: Fix some sloppiness in our handling of opaque types.
Fixes #801
|
|
Fixes #801
|
|
Intelligently convert C/C++ comments to Rust
With this change, we can correctly parse C++ block comments.
```cpp
/**
* Does a thing
*
* More documentation. This test does something
* useful.
*/
```
into
```rust
/// Does a thing
///
/// More documentation. This test does something
/// useful.
```
Fixes servo/rust-bindgen#426.
|
|
With this change, we can correctly parse C++ block comments.
```
/**
* Does a thing
*
* More documentation. This test does something
* useful.
*/
```
into
```
/// Does a thing
///
/// More documentation. This test does something
/// useful.
```
Fixes servo/rust-bindgen#426.
|
|
Automatically detect libclang version when testing
Automatically detect libclang version when testing and use approppriate
expectation files.
Ref to issue #794.
|
|
Automatically detect libclang version when testing and use approppriate
expectation files. Ref issue #794.
|
|
Separate the analysis framework in a different file.
r? @fitzgen #765
|
|
|
|
No system includes in test headers
See each commit message.
Disallowing *system* includes and not *all* includes because we have one local include in `extern.hpp`, and local includes will at least be consistent/reproducible.
r? @emilio
|
|
Convenience to help developers catch this earlier, rather than only after
pushing a pull request.
|
|
There is no guarantee that the system running the tests has the header file, let
alone the same version of it that you have. Any test with such an include
directive won't reliably produce the consistent bindings across systems.
|
|
ir: Properly skip inline namespaces when building names.
Fixes #789
|
|
Fixes #789
|
|
Minimal test cases don't have `#include`s
The inclusion of an `#include` means that the test case
* is not minimal, and
* is harder to reproduce the bug with, since not everyone has the same headers (or versions of headers) on their system.
r? @emilio
|
|
The inclusion of an `#include` means that the test case
* is not minimal, and
* is harder to reproduce the bug with, since not everyone has the same headers (or versions of headers) on their system.
|
|
Minor version bump to grab clang-sys bump.
|
|
Pin the mdbook version for CI.
Fixes #779.
|
|
Remove Type::detect_has_vtable_cycle.
After some discussion in #765 we do not think anymore that this can ever be true.
|
|
After some discussion in #765 we do not think anymore this it can ever
be true.
|
|
Fixes #779.
|