Age | Commit message (Collapse) | Author |
|
has vtable analysis
|
|
Fixes #852
|
|
|
|
Bump to 0.28
Brings in #822 which unblocks https://bugzilla.mozilla.org/show_bug.cgi?id=1366956,
and also #829 which should greatly reduce merge conflicts in checked in bindings.
|
|
|
|
Derive debug and opaque types
See each commit for details.
Follow up to #842.
r? @emilio or @Manishearth
|
|
|
|
|
|
And also not just fields, but also base members.
|
|
Useful for debugging when constraints go wrong.
|
|
There are lots of different ways that a type can end up being opaque, and it is
best to handle all the ways in one fell swoop, rather than check each different
ways (for example, if a struct has non-type template params, if a template
instantiation's template definition has them, etc...) for each different type
kind.
|
|
|
|
Never use spaces in generated name (fixes #844)
None
|
|
|
|
Remove whitelisted_items as arg to codegen funcs
Deals with #838
|
|
|
|
analysis: Account for template instantiations of opaque types in the derive debug analysis.
We have a special-case for them in codegen to generate a blob, that can derive
debug.
This is a regression from #824, and hit stylo.
|
|
debug analysis.
We have a special-case for them in codegen to generate a blob, that can derive
debug.
This is a regression from #824, and hit stylo.
|
|
ir: Track the codegen-reachable items, and use it instead of whitelisted_items() for code generation.
This standardizes the behavior change at #834, but without regressions.
I've added a few more tests for #833 here.
Closes #834.
|
|
whitelisted_items() for code generation.
This standardizes the behavior change at #834, but without regressions.
I've added a few more tests for #833 here.
|
|
ir: We really need to traverse all edges for the used template parameter analysis to be sound.
Fixes #833
|
|
Remove RUST_LOG=bindgen from the issue template
Neither Emilio nor I find it helpful, so lets rm -rf
|
|
Neither Emilio nor I find it helpful, so lets rm -rf
|
|
|
|
analysis to be sound.
|
|
Use fully disambiguated name instead of a number for layout tests (fixes #394)
These numbers cause tons of churn in the diffs for checked in bindings.
r? @fitzgen
|
|
A bunch of little analysis cleanups
Some of these I'd been meaning to do for a while and just never got around to. Others are my own ultra nitpicks that I could never feel OK actually leaving in a review, but still want to make anyways :-P
r? @emilio
|
|
This is some copy-paste from the template param usage analysis that we don't
need here. We already assume that blacklisted items are `derive(Debug)`able, and
this doesn't change that.
|
|
a fixed point
`ConstrainResult::Changed` is much more legible than `true`.
|
|
|
|
|
|
processing replacements
Because these operations mutate the IR graph, its better to be safe and double
check again. Don't worry -- these checks only happen on
`testing_only_extra_assertions` builds!
|
|
We used to do this traversal all the time, but we can do it the one time, after
we finish constructing the IR graph and before we begin computing any of our
analyses.
|
|
Set insertion returns true if it was *not* already in the set. The assertion was
already correct, but the name was backwards.
Additionally, this removes a `format!` that is unnecessary.
|
|
It is obvious from the module that it is in that it is an analysis.
|
|
Because we can't put the apostrophe in "can't" in variables and type names, it
doesn't read as well as "cannot".
|
|
|
|
They used to live in the same module, and there was less distinction between
them, so they used to make more sense entangled with each other. Now that they
are in separate files, they need a little bit of disentangling.
|
|
|
|
r=emilio
Only whitelist items for which we intend to generate bindings
This means that we only need to check in one place, rather than at ever call site.
This makes it so that we don't generate methods for the test case, but if I add the `--target` flag like in the original #826 test case, then I get a panic about an unknown ABI. I figure this change is worth landing now, and we can land the fix for the panic as a follow up.
r? @upsuper
|
|
This makes only generating certain kinds of items more robust, since we don't
need to keep checking whether codegen is enabled for different kinds of items
all over the place, and can do it the once. It should also reduce the number of
items we have to consider in our various analyses for which we don't ultimately
care about the answer.
Fixes #826
|
|
Windows uses non-ascii and non-visual characters in mangled names T.T
|
|
Use fix point analysis to implement can_derive_debug
It's failing about 30 tests now and most of them is related to template. I'm also not so sure about the place to call compute_can_derive_debug in gen.
Fix: #767
r? @fitzgen
|
|
|
|
Implement `IsOpaque` for `CompInfo`
This allows us to properly detect structs that should be treated as opaque due to their non-type template paramaters, which in turn lets us correctly codegen template aliases to such things.
Fixes #820
r? @emilio
|
|
This allows us to properly detect structs that should be treated as opaque due
to their non-type template paramaters, which in turn lets us correctly codegen
template aliases to such things.
Fixes #820
|
|
Have tests pass on Windows
These changes allow `cargo test` to pass on Windows.
There are two followup work we should do at some point:
* setup AppVeyor so that we don't break Windows development either
* convert `no_system_header_includes` to be pure Rust so that it supports Windows natively
|
|
|
|
|
|
|