Skip to content

Commit

Permalink
More test for non-exhaustive C-like enums in FFI
Browse files Browse the repository at this point in the history
Add a few more possibly false-positive tests for the `improper_ctypes` lint
  • Loading branch information
nyurik committed Oct 29, 2024
1 parent 3f1be1e commit a645342
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,9 @@ pub enum NonExhaustiveCLikeEnum {
Four = 4,
Five = 5,
}

#[repr(C)]
pub struct NormalStructWithNonExhaustiveCLikeEnum {
one: u8,
two: NonExhaustiveCLikeEnum,
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ extern crate types;

use types::{
NonExhaustiveCLikeEnum, NonExhaustiveEnum, NonExhaustiveVariants,
NormalStruct, TupleStruct, UnitStruct,
NormalStruct, TupleStruct, UnitStruct, NormalStructWithNonExhaustiveCLikeEnum
};

extern "C" {
Expand All @@ -27,6 +27,9 @@ extern "C" {
// 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() {}

0 comments on commit a645342

Please sign in to comment.