-
Notifications
You must be signed in to change notification settings - Fork 489
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace zero-size structs in FFI with empty enums #442
Comments
For me, zero-size enums cause the error
|
I think |
You might need to get rid of the |
Removing the |
Specifically |
I wasn't able to reproduce the issue. http://is.gd/8SpNgV It won't hurt to use |
It still happens for me on the latest nightly. Did you try with actual sdl2-sys, or just in the sandbox? As far as I know, by design, |
That's weird. I only tried in the sandbox with nightly, though. shrugs
|
Fix core-text related warnings (#62) ### Fix private-in-public warnings (error E0446) Fixed by prepending `pub` to the offending types. Not sure if its the best way but it was the only thing that worked. Other methods I've tried to maintain privateness: * Replace with an empty enum. That threw an error. * Make it public and wrap within a private module. That threw an error too as `#[repr(C)]` does not accept modules ### Fix use of extern static warnings by wrapping in unsafe block (error E0133) I think this is self-explanatory. ### Fix zero-size struct warnings on certain CT* types Wrap around c_void as I believe the types are only used as pointers. Again, let me know if there is a better way to do this. I've tried following [this discussion](rust-lang/rust#27303) on opaque C types but I don't think there is a consensus. I came across this [discussion](Rust-SDL2/rust-sdl2#442) from the Rust SDL2 bindings and they eventually [opted](Rust-SDL2/rust-sdl2#445) for the solution that I implemented. This is my first pull request (hence, first open source contribution) and I've been playing with Rust for the past few weeks. So please, if anything isnt up to standards or correctness, let me know! Also, to squash the other warnings, those changes would have to made in the modules where those types reside (core-graphics and core-foundation). I would gladly open a PR to fix those too if all looks good. Thanks! <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/core-text-rs/65) <!-- Reviewable:end -->
In Rust nightly, a bunch of warnings are being emitted for zero-size structs in sdl2-sys:
https://travis-ci.org/AngryLawyer/rust-sdl2/jobs/72803339
These are opaque types, and it isn't appropriate to add any fields to them. A mentioned alternative in rust-lang/rust#27303 is to use
enum MyStruct {}
instead.The text was updated successfully, but these errors were encountered: