summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-12-08Auto merge of #325 - emilio:stable-template-test, r=heycambors-servo
codegen: generate stable names for tests functions. r? @heycam
2016-12-07codegen: generate stable names for tests functions.Emilio Cobos Álvarez
2016-12-07Auto merge of #324 - emilio:coherent-replacement-and-whitelisting, r=fitzgenbors-servo
ir: Fix namespace_aware_canonical_name with disable_name_namespacing. This dropped off the previous PR.
2016-12-07ir: Fix namespace_aware_canonical_name with disable_name_namespacing.Emilio Cobos Álvarez
2016-12-07Auto merge of #321 - emilio:coherent-replacement-and-whitelisting, r=fitzgenbors-servo
Coherent replacement and whitelisting This is on top of the last few PRs. This moves us to take modules into account when whitelisting and replacing. This also fixes a few issues with replacements, and simplifies our handling of template aliases. r? @fitzgen
2016-12-07ir: Add test for #315Emilio Cobos Álvarez
Fixes #315
2016-12-07ir: Move duplicated checks into a function.Emilio Cobos Álvarez
2016-12-07ir: Saner whitelisting/blacklisting.Emilio Cobos Álvarez
2016-12-07ir: Auto-whitelist replacements.Emilio Cobos Álvarez
2016-12-07Auto merge of #319 - emilio:union-in-ns, r=fitzgenbors-servo
codegen: Fix bindgen-injected items in namespaces. Found while trying to use namespaces in stylo. r? @fitzgen
2016-12-07Auto merge of #323 - servo:runtime-env, r=noxbors-servo
Use std::env::var instead of env! in build srcipt Recent versions of Cargo seems to not provide $OUT_DIR and some other environment variables anymore when building build scripts. CC @upsuper
2016-12-07Use std::env::var instead of env! in build srciptSimon Sapin
Recent versions of Cargo seems to not provide $OUT_DIR and some other environment variables anymore when building build scripts.
2016-12-07Auto merge of #322 - emilio:clang-sys-up, r=upsuperbors-servo
Update clang-sys. r? @upsuper
2016-12-07Update clang-sys.Emilio Cobos Álvarez
2016-12-06Auto merge of #318 - emilio:stylo-fallout, r=upsuperbors-servo
Add an API to decide what gets generated more granularly. This unifies options and is more flexible. I'd prefer to do the `bitflags!` thing as a followup, because airport WiFi (it could be an E-Easy). r? @fitzgen
2016-12-06Add an API to decide what gets generated more granularly.Emilio Cobos Álvarez
2016-12-05codegen: Fix bindgen-injected items in namespaces.Emilio Cobos Álvarez
Found while trying to use namespaces in stylo.
2016-12-02Auto merge of #314 - fitzgen:assert-no-infinite-loops-in-ancestors, r=emiliobors-servo
Assert that we won't infinite loop In non-release builds with debug assertions, keep track of the set of `ItemId`s that we have iterated over in `ItemAncestorsIter` and make sure that we don't reach an ancestor we have already yielded, which would trigger an infinite loop.
2016-12-02Rename `AncestorsSeen` to `DebugOnlyItemSet`Nick Fitzgerald
The type is now being used outside of the context of ancestors, and additionally "debug only" more precisely describes its behavior.
2016-12-02Assert that we do not infinitely loop in ir::Item::name_targetNick Fitzgerald
This re-uses the infrastructure used when asserting that `ItemAncestorsIter` does not infinitely loop in `ir::Item::name_target`.
2016-12-02Assert that we won't infinite loop in ItemAncestorsIterNick Fitzgerald
In non-release builds with debug assertions, keep track of the set of `ItemId`s that we have iterated over in `ItemAncestorsIter` and make sure that we don't reach an ancestor we have already yielded, which would trigger an infinite loop.
2016-12-02Auto merge of #313 - fitzgen:issue-311, r=emiliobors-servo
Do not treat parent struct as a module for nested structs This fixes `ItemCanonicalPath` to return paths of the form `[module*, item]` rather than `[item*, item]`. That is, there will only be module names before the item's name, rather than also other arbitrary item names (such as parent structs). Fixes #311 r? @emilio
2016-12-02Do not treat parent struct as a module for nested structsNick Fitzgerald
This fixes `ItemCanonicalPath` to return paths of the form `[module*, item]` rather than `[item*, item]`. That is, there will only be module names before the item's name, rather than also other arbitrary item names (such as parent structs). Fixes #311
2016-12-02Auto merge of #309 - fitzgen:use-root-relative, r=emiliobors-servo
Use the generated root module via a relative path We previously generated uses of the root module with absolute paths: use root; However this only works if the generated bindings are the root of the crate. If they were in some submodule then that path would not be valid. They are now generated relative to the current module, like this: use self::super::super::root; Fixes #96 r? @emilio
2016-12-02Use the generated root module via a relative pathNick Fitzgerald
We previously generated uses of the root module with absolute paths: use root; However this only works if the generated bindings are the root of the crate. If they were in some submodule then that path would not be valid. They are now generated relative to the current module, like this: use self::super::super::root; Fixes #96
2016-12-02Auto merge of #307 - impowski:naming_methods_unify, r=fitzgenbors-servo
Unify naming methods into a single method + options builder type Some of these changes are still under the question but I guess it's how @fitzgen describe it in issue #201.
2016-12-02Unify naming methods into a single method + options builder typeArtem Biryukov
This an implementation of `NameOptions` structure which will hold flags for building a name string. This fixes related to issue #201
2016-11-29Auto merge of #304 - emilio:stylo-fallout, r=fitzgenbors-servo
Bunch of fixes for stylo and libclang 4 r? @fitzgen or @nox
2016-11-29ir: Add a note about duplicated names.Emilio Cobos Álvarez
2016-11-29ir: Don't assume our name is our base name too early when we're in a namespace.Emilio Cobos Álvarez
2016-11-27Auto merge of #305 - aethanyc:restore-links, r=emiliobors-servo
Restore links in README.md These were deleted accidentally in 073b12ff35a8ec6314d655804915f177ce453227.
2016-11-26Restore links in README.mdTing-Yu Lin
These were deleted accidentally in 073b12ff35a8ec6314d655804915f177ce453227.
2016-11-24Some fixes for libclang 4.0.Emilio Cobos Álvarez
2016-11-24Add a new disable-name-namespacing option.Emilio Cobos Álvarez
2016-11-23Auto merge of #285 - tsliang:issue-125, r=emiliobors-servo
clang::Cursor::enum_type should return an Option<Type> Returning an Option<Type> relieves callers from having to check whether clang::Cursor::enum_type returns `CXType_Invalid`. Fixes #125
2016-11-23Use and_then() to properly handle cases when Cursor::enum_type() return NoneTai Sassen-Liang
2016-11-22Circuit-break if Cursor::enum_type returns NoneTai Sassen-Liang
As discussed with @emilio. Part of #125.
2016-11-22Use is_valid instead of checking directly against Type::kindTai Sassen-Liang
Thanks for pointing this out @emilio.
2016-11-22Auto merge of #302 - emilio:whitelist, r=fitzgenbors-servo
ir: Rework how we discover children of modules. r? @fitzgen
2016-11-22ir: Rework how we discover children of modules.Emilio Cobos Álvarez
2016-11-22Auto merge of #301 - emilio:whitelist, r=fitzgenbors-servo
A more coherent story for whitelisting. r? @fitzgen Fixes #300 Fixes #299 Fixes #298
2016-11-22codegen: Don't bother generating an empty module.Emilio Cobos Álvarez
2016-11-22A more coherent story for whitelisting.Emilio Cobos Álvarez
2016-11-22Auto merge of #295 - emilio:dedup-ns, r=noxbors-servo
ir: Deduplicate namespaces.
2016-11-22ir: Deduplicate namespaces.Emilio Cobos Álvarez
2016-11-21Auto merge of #293 - fitzgen:type-referenced-by-whitelisted-function, r=emiliobors-servo
Trace function signature types This extends the `TypeCollector` trait implementation for `Item` to consider items of kind `Function` and to collect the types found in the function's signature. Fixes #291 r? @emilio
2016-11-21Trace function signature typesNick Fitzgerald
This extends the `TypeCollector` trait implementation for `Item` to consider items of kind `Function` and to collect the types found in the function's signature. Fixes #291
2016-11-21Auto merge of #282 - impowski:layout_template_specializations, r=emiliobors-servo
First steps to fix issue #57 This should generate tests for fully specialized templates. TODO: - [x] Tests r? @emilio
2016-11-21Auto merge of #290 - fitzgen:dont-assert-name-target-template-alias, r=emiliobors-servo
Recurse on the inner type when finding a template alias name target The assertion that the template alias's inner type was our name target, and that we didn't need to recurse, is failing when generating SpiderMonkey bindings. I'm not 100% sure when this can happen, but clearly it can, and it is easy to support, so let's support it. r? @emilio
2016-11-21Recurse on the innter type when finding a template alias name targetNick Fitzgerald
The assertion that the template alias's inner type was our name target, and that we didn't need to recurse, is failing when generating SpiderMonkey bindings. I'm not 100% sure when this can happen, but clearly it can, and it is easy to support, so let's support it.