More test for non-exhaustive C-like enums in FFI

Add a few more possibly false-positive tests for the `improper_ctypes` lint
This commit is contained in:
Yuri Astrakhan 2024-10-28 22:48:32 -04:00
parent 3f1be1ec7e
commit a645342720
2 changed files with 10 additions and 1 deletions

View File

@ -38,3 +38,9 @@ pub enum NonExhaustiveCLikeEnum {
Four = 4,
Five = 5,
}
#[repr(C)]
pub struct NormalStructWithNonExhaustiveCLikeEnum {
one: u8,
two: NonExhaustiveCLikeEnum,
}

View File

@ -8,7 +8,7 @@
use types::{
NonExhaustiveCLikeEnum, NonExhaustiveEnum, NonExhaustiveVariants,
NormalStruct, TupleStruct, UnitStruct,
NormalStruct, TupleStruct, UnitStruct, NormalStructWithNonExhaustiveCLikeEnum
};
extern "C" {
@ -27,6 +27,9 @@
// These should pass without remark, as they're C-compatible, despite being "non-exhaustive".
extern "C" {
pub fn non_exhaustive_c_compat_enum(_: NonExhaustiveCLikeEnum);
pub fn non_exhaustive_c_compat_enum_ret() -> *mut NonExhaustiveCLikeEnum;
pub fn struct_w_non_exhaustive_c_like_enum(_: NormalStructWithNonExhaustiveCLikeEnum);
pub fn struct_w_non_exhaustive_c_like_enum_ret() -> *mut NormalStructWithNonExhaustiveCLikeEnum;
}
fn main() {}