Kendall Koning
63c1043dfb
Simplify Pin<T> to T
...
cbindgen already simplifies `MaybeUninit<T>` and `ManuallyDrop<T>` to `T`. This adds `Pin<T>` as well.
2021-06-19 20:48:57 +02:00
Kendall Koning
4e394493d6
Ignore PhantomPinned
...
cbindgen already ignores `PhantomData`. It should ignore
`PhantomPinned` for the same reasons.
Closes #695
Fixes #694
2021-06-19 10:35:08 +02:00
Emilio Cobos Álvarez
a9af0ad5ad
ir: Tweak monomorphization to instantiate recursively after inserting to the replacements map.
...
That way the check to prevent double-instantiation also works to prevent
infinite recursion.
2021-04-07 13:26:35 +02:00
Emilio Cobos Álvarez
52de917d25
parser: Fix handling of #[path] attributes inside inline submodules.
...
As seen in hashbrown:
#[cfg(feature = "raw")]
/// Experimental and unsafe `RawTable` API. This module is only available if the
/// `raw` feature is enabled.
pub mod raw {
// The RawTable API is still experimental and is not properly documented yet.
#[allow(missing_docs)]
#[path = "mod.rs"]
mod inner;
pub use inner::*;
#[cfg(feature = "rayon")]
pub mod rayon {
pub use crate::external_trait_impls::rayon::raw::*;
}
}
2021-04-07 13:25:57 +02:00
Marc-André Lureau
ccea33ecb4
tests: check renaming enum affects variant prefix
...
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com >
2021-03-29 14:08:02 +02:00
Emilio Cobos Álvarez
7312b997be
ir: simplify_standard_types should be recursive.
...
Stuff like *mut Option<&mut Foo> should really be *mut *mut Foo for
example.
2021-02-24 18:36:40 +01:00
Emilio Cobos Álvarez
c5c301b08a
ir: Support pointers to zsts.
...
Fixes #654
2021-02-01 13:56:45 +01:00
Emilio Cobos Álvarez
750745831a
ir: Deal with name conflicts correctly in declaration type resolution.
...
So, basically, make opaque items last, and make previous names override
them.
Fixes #649
2021-01-26 12:55:05 +01:00
Emilio Cobos Álvarez
c47ee1516b
ir: Handle NonZero and simplify Option<NonZero> like we simplify Option<NonNull>.
...
Fixes #646
2021-01-14 23:39:59 +01:00
Emilio Cobos Álvarez
f922f68531
ir: Avoid generating bogus pointer arguments.
...
Now that we track nullability in the pointer type it's easy to do it.
Fixes #223
2021-01-14 23:39:59 +01:00
Yurii Rashkovskii
1963f0c92e
Partially support #[cfg]s on fields
2020-12-06 13:10:15 +01:00
Vadim Petrochenkov
dfcee869ba
enum: Do not forget to rename entities in enum discriminants
2020-12-06 01:53:09 +01:00
Emilio Cobos Álvarez
fbc2237b7d
parser: Fix resolution of #[path] dependencies from certain modules.
...
We need the current mod dir to resolve #[path], not the one we get for
rust 2018.
Fixes #599
2020-11-30 19:44:45 +01:00
Vadim Petrochenkov
7980288a94
Reenable some tests
2020-11-27 01:31:01 +01:00
Wodann
5b5b46b7d6
fix: resolve path types for 'both' style
2020-11-25 17:55:58 +01:00
Vadim Petrochenkov
b0aae44c77
Add two Cython-specific options to the config
2020-11-25 17:33:38 +01:00
Vadim Petrochenkov
1c1d4754ce
tests: Remove Cython-specific configs
2020-11-25 17:30:30 +01:00
Vadim Petrochenkov
51405d1277
Support generation of Cython bindings
2020-11-17 15:27:34 +01:00
Vadim Petrochenkov
a689bcabc7
Support an annotation for generating bitfield sizes in C code (: SIZE)
...
Closes #609
Closes #611
2020-10-31 17:05:49 +01:00
Vadim Petrochenkov
a93034c229
test suite: Normalize dashes to underscores in test names
2020-10-31 17:01:44 +01:00
Vadim Petrochenkov
b69a9cfe80
Support wider range of expressions in enum discriminants
2020-10-31 16:58:37 +01:00
Vadim Petrochenkov
398b28ca30
Add an option for converting usize/isize into size_t/ptrdiff_t
2020-10-27 11:34:27 +01:00
Vadim Petrochenkov
9f00f6fdc5
Remove artificial restriction on lifetime parameters on enums
2020-10-20 22:57:43 +02:00
Vadim Petrochenkov
aeb69bcc69
Switch default sorting order for items to "None"
2020-10-05 19:57:33 +02:00
Vadim Petrochenkov
f3d5a20363
Support sort_by for constants
...
Also support a global default for `sort_by` affecting both functions and constants.
2020-10-05 19:57:33 +02:00
Vadim Petrochenkov
6439e6df56
Support constants with arbitrary types
2020-10-05 10:52:05 +02:00
Emilio Cobos Álvarez
d1d97d4482
enumeration: Only propagate derive_ostream annotation if not present.
...
It seems reasonable to want to derive it for a variant, but want to
provide your own for the containing enum or such, for example.
2020-10-01 18:14:12 +02:00
Kartikaya Gupta
2be47c88e6
Add support for tagged enums that turn into structs.
...
This happens when the tags are separated. In this case the output is slightly
different since the tag is not part of the struct body, so we need the top-level
serializer to write the tag type.
2020-10-01 12:22:51 +02:00
Kartikaya Gupta
c5c17403b4
Add support for tagged enums that turn into unions.
2020-10-01 12:22:51 +02:00
Kartikaya Gupta
12149d4071
Add option for ostream serializer for structures and untagged enums
...
Tagged enums will be handled in later patches.
2020-10-01 12:22:51 +02:00
Emilio Cobos Álvarez
1fc4cb0724
test: Ensure Option<Box<T>> reduces to *T.
...
Co-Authored-by: Ivan Enderlin <ivan@mnt.io >
2020-09-29 13:40:07 +02:00
Emilio Cobos Álvarez
5d1217c7c0
tests: Instead of adding skip_cpp as a feature, make the tests work with C++
2020-09-29 13:36:46 +02:00
Ivan Enderlin
4ce324cd2d
feat: Simplify Box<T> to *T for C only.
2020-09-29 13:36:46 +02:00
Ivan Enderlin
eefce50c6d
test: Skip CPP for the manuallydrop and maybeuninit test cases.
2020-09-29 13:36:46 +02:00
Ivan Enderlin
af6d2e3fbb
test: test MaybeUninit as a simplified type.
2020-09-29 13:36:45 +02:00
Ivan Enderlin
79bb38abda
test: Test ManuallyDrop as a simplified type.
2020-09-29 13:17:04 +02:00
Emilio Cobos Álvarez
18110669fc
Add docs, move mangling configuration to its own place, add integration tests.
2020-09-22 12:54:55 +02:00
Luni-4
07c3aed03e
Add ptrs-as-arrays tests
2020-09-07 20:53:09 +02:00
Tom Solberg
3ca0e75ed9
Add support for specifying line ending style ( #568 )
2020-08-26 15:28:17 +02:00
Emilio Cobos Álvarez
d652d29ae2
ir: Be less strict when instantiating opaque types.
...
There are two situations where we can legitimately end up with a
different number of template params.
Fixes #532 .
Fixes #527 .
2020-08-15 13:40:54 +02:00
Nick Wilcox
6fc7c77b0f
remove duplicated code, correct test names, change config param
2020-08-05 15:09:28 +02:00
Nick Wilcox
41b7866c14
Add support for an optional attribute on pointers whose nullability can be inferred from the Rust type.
2020-08-05 15:09:28 +02:00
Kartikaya Gupta
977d95b0ff
Add failing scenario to test
...
A u32 bitflags structure should allow a 1<<31 value. However, with
current cbindgen this produces a compiler error with latest clang, because
1<<31 is treated as a signed value (-2147483648) which cannot be narrowed
back into a uint32_t without a cast.
2020-07-31 16:22:48 +02:00
Emilio Cobos Álvarez
5eae0bc07b
function: Add support for wildcards in arguments.
...
We don't support unnamed arguments, and we give a terrible error
("Parameter has an unsupported type.") when you use them.
They're very simple to implement so we should just do it.
2020-07-25 13:50:11 +02:00
mexus
a94d6e2c9b
Support "never" return type
2020-07-24 22:39:08 +02:00
Luni-4
274c9743ca
Add tests
2020-07-14 16:59:54 +02:00
Hayes Neuman
bb00d1c4a8
Support renaming for constants with casts, and properly order them in the output.
2020-05-26 23:21:28 +02:00
Hayes Neuman
967c378308
Support casts in constants
2020-05-26 23:21:28 +02:00
Emilio Cobos Álvarez
b04aa7e699
parser: Introduce cbindgen:ignore comment annotation, to allow ignoring items or modules.
2020-05-15 15:43:54 +02:00
Emilio Cobos Álvarez
a05a223704
tests: Add tests for attribute annotations.
2020-05-01 00:30:40 +02:00