summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-07-25Merge pull request #850 from photoszzt/has_vtableNick Fitzgerald
has vtable analysis
2017-07-25s/servo/rust-lang-nursery/ \o/Nick Fitzgerald
Fixes #852
2017-07-25has vtable analysiszzhu
2017-07-24Auto merge of #841 - servo:bump, r=fitzgenbors-servo
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.
2017-07-24Bump to 0.28.0Manish Goregaokar
2017-07-24Auto merge of #847 - fitzgen:derive-debug-opaque-types, r=emiliobors-servo
Derive debug and opaque types See each commit for details. Follow up to #842. r? @emilio or @Manishearth
2017-07-24Pull `return` up out of the branch armsNick Fitzgerald
2017-07-24Test to exercise the can-derive-debug case for opaque templatesNick Fitzgerald
2017-07-24Fix opaque template test to exercise the cannot derive caseNick Fitzgerald
And also not just fields, but also base members.
2017-07-24Add `trace!` logging for the derive(Debug) analysisNick Fitzgerald
Useful for debugging when constraints go wrong.
2017-07-24Handle all opaque types at once in derive(Debug) analysisNick Fitzgerald
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.
2017-07-24A `ResolvedTypeRef` is opaque if it points to another opaque typeNick Fitzgerald
2017-07-22Auto merge of #845 - servo:fix-spaces, r=emiliobors-servo
Never use spaces in generated name (fixes #844) None
2017-07-22Never use spaces in generated name (fixes #844)Manish Goregaokar
2017-07-22Auto merge of #843 - omakk:master, r=emiliobors-servo
Remove whitelisted_items as arg to codegen funcs Deals with #838
2017-07-22Remove whitelisted_items as arg to codegen funcsOmar Akkila
2017-07-21Auto merge of #842 - emilio:derive-debug-opaque-inst, r=Manishearthbors-servo
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.
2017-07-22analysis: Account for template instantiations of opaque types in the derive ↵Emilio Cobos Álvarez
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.
2017-07-21Auto merge of #836 - emilio:codegen-items, r=fitzgenbors-servo
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.
2017-07-21ir: Track the codegen-reachable items, and use it instead of ↵Emilio Cobos Álvarez
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.
2017-07-21Auto merge of #835 - emilio:tp-function, r=fitzgenbors-servo
ir: We really need to traverse all edges for the used template parameter analysis to be sound. Fixes #833
2017-07-21Auto merge of #837 - servo:fitzgen-patch-1, r=emiliobors-servo
Remove RUST_LOG=bindgen from the issue template Neither Emilio nor I find it helpful, so lets rm -rf
2017-07-21Remove RUST_LOG=bindgen from the issue templateNick Fitzgerald
Neither Emilio nor I find it helpful, so lets rm -rf
2017-07-21Test.Emilio Cobos Álvarez
2017-07-21ir: We really need to traverse all edges for the used template parameter ↵Emilio Cobos Álvarez
analysis to be sound.
2017-07-21Auto merge of #829 - servo:disambig, r=emiliobors-servo
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
2017-07-20Auto merge of #830 - fitzgen:little-analysis-cleanups, r=emiliobors-servo
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
2017-07-20The `CannotDeriveDebug` analysis shouldn't special case blacklistingNick Fitzgerald
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.
2017-07-20Define a type for communicating that the constraint function hasn't reached ↵Nick Fitzgerald
a fixed point `ConstrainResult::Changed` is much more legible than `true`.
2017-07-20Capitalize, punctuate, and format a commentNick Fitzgerald
2017-07-20Use object literal short hand for `CannotDeriveDebug`Nick Fitzgerald
2017-07-20Also assert against dangling references after resolving typerefs and ↵Nick Fitzgerald
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!
2017-07-20Only traverse the IR graph to compute whitelisted items onceNick Fitzgerald
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.
2017-07-20Fix variable name to reflect its semanticsNick Fitzgerald
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.
2017-07-20Rename `CannotDeriveDebugAnalysis` to `CannotDeriveDebug`Nick Fitzgerald
It is obvious from the module that it is in that it is an analysis.
2017-07-20Use "cannot" instead of "can't" in namesNick Fitzgerald
Because we can't put the apostrophe in "can't" in variables and type names, it doesn't read as well as "cannot".
2017-07-20Move fix-point analyses to their own moduleNick Fitzgerald
2017-07-20Rearrange monotone framework and used templates analysis commentsNick Fitzgerald
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.
2017-07-20Use fully disambiguated name instead of a number for layout tests (fixes #394)Manish Goregaokar
2017-07-20Auto merge of #827 - fitzgen:issue-826-generating-methods-when-asked-not-to, ↵bors-servo
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
2017-07-20Only whitelist items which we intend to generate code forNick Fitzgerald
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
2017-07-20Escape mangled function namesNick Fitzgerald
Windows uses non-ascii and non-visual characters in mangled names T.T
2017-07-20Auto merge of #824 - photoszzt:can_drive_dbg, r=fitzgenbors-servo
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
2017-07-20Use fix point analysis to implement the can_derive_debugzzhu
2017-07-20Auto merge of #823 - fitzgen:issue-820-unused-template-param-in-alias, r=emiliobors-servo
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
2017-07-20Implement `IsOpaque` for `CompInfo`Nick Fitzgerald
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
2017-07-19Auto merge of #828 - upsuper:windows-test, r=emiliobors-servo
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
2017-07-20Use a platform-neutral header for test_multiple_header_calls_in_builderXidorn Quan
2017-07-20Skip no_system_header_includes test for WindowsXidorn Quan
2017-07-20Have tests targetting Linux by default on WindowsXidorn Quan