summaryrefslogtreecommitdiff
path: root/libbindgen/src
AgeCommit message (Collapse)Author
2016-12-21ir: Handle CXType_Auto.Emilio Cobos Álvarez
2016-12-15Wrap Type into OptionArtem Biryukov
2016-12-15Auto merge of #346 - emilio:fix-dtors, r=fitzgenbors-servo
codegen: Properly mangle nested anonymous enums with duplicated variants. r? @fitzgen
2016-12-15ir: Do the proper thing for methods.Emilio Cobos Álvarez
2016-12-15ir: Don't parse constructors twice.Emilio Cobos Álvarez
2016-12-15Auto merge of #345 - fitzgen:use-feature-for-dangling-item-asserts, r=emiliobors-servo
Use a feature to control dangling item assertions These checks are expensive enough that we only want to do them when hacking on bindgen itself, not anytime someone does a debug build of something that depends on bindgen. r? @emilio
2016-12-15codegen: Properly mangle nested anonymous enums with duplicated variants.Emilio Cobos Álvarez
2016-12-15Use a feature to control dangling item assertionsNick Fitzgerald
These checks are expensive enough that we only want to do them when hacking on bindgen itself, not anytime someone does a debug build of something that depends on bindgen.
2016-12-15Auto merge of #344 - emilio:fix-dtors, r=fitzgenbors-servo
Properly mangle method names, don't generate destructors. r? @fitzgen Fixes a few issues seen in #342
2016-12-15Add assertion for dangling referencesArtem Biryukov
2016-12-15ir: Don't parse standalone destructors.Emilio Cobos Álvarez
2016-12-15codegen: Properly mangle method names.Emilio Cobos Álvarez
2016-12-14Use a dynamically loaded clang to do as much as we can with old clang ↵Emilio Cobos Álvarez
versions, and experiment with new ones. It's a pity that we don't support clang 3.7 and similar for generating C bindings, when it should be straight-forward. This should allow us to support older clang versions, and also experiment with pre-release clang APIs if needed. This depends on: https://github.com/KyleMayes/clang-sys/pull/44
2016-12-13Silence the 'Unhandled cursor kind' warning for toplevel operator overloads ↵Vladimir Vukicevic
and using directives
2016-12-13Auto merge of #333 - emilio:clang-sys, r=fitzgenbors-servo
Use clang-sys bindings instead of ours. I plan to use a dynamically loaded clang-sys library to remove the llvm-stable feature. This is part of the work. r? @fitzgen
2016-12-13Use clang-sys bindings instead of ours.Emilio Cobos Álvarez
I plan to use a dynamically loaded clang-sys library to remove the llvm-stable feature. This is part of the work.
2016-12-13ir: Add documentation for CompInfo::constructorsEmilio Cobos Álvarez
2016-12-13codegen: Rename the temporary variable in constructors for __bindgen_tmp, to ↵Emilio Cobos Álvarez
avoid potential conflicts.
2016-12-13Add support for constructors, and integration tests.Emilio Cobos Álvarez
2016-12-11lib: Do the path fixup inside the library, so users of the library don't ↵Emilio Cobos Álvarez
have to do this themselves.
2016-12-11options: Ensure to pass the clang header last to clang.Emilio Cobos Álvarez
2016-12-10lib: Return error early if there are any error diagnostics.Emilio Cobos Álvarez
2016-12-09Rip off the clippy feature.Emilio Cobos Álvarez
2016-12-09s/_docs/docs_Emilio Cobos Álvarez
2016-12-09Upgrade deps to have syntex 0.50Xidorn Quan
2016-12-09Remove macro_rules in codegenXidorn Quan
2016-12-07codegen: generate stable names for tests functions.Emilio Cobos Álvarez
2016-12-07ir: Fix namespace_aware_canonical_name with disable_name_namespacing.Emilio Cobos Álvarez
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-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-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-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-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-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-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-22ir: Rework how we discover children of modules.Emilio Cobos Álvarez