improper_ctypes_definitions lint#72700
Merged
bors merged 3 commits intorust-lang:masterfrom Jun 25, 2020
Merged
Conversation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Addresses #19834, #66220, and #66373.
This PR takes another attempt at #65134 (reverted in #66378). Instead of modifying the existing
improper_ctypeslint to considerextern "C" fndefinitions in addition toextern "C" {}declarations, this PR adds a new lint -improper_ctypes_definitions- which only applies toextern "C" fndefinitions.In addition, the
improper_ctype_definitionslint differs fromimproper_ctypesby considering*Tand&T(whereT: Sized) FFI-safe (addressing #66220).There wasn't a clear consensus in #66220 (where the issues with #65134 were primarily discussed) on the approach to take, but there has been some discussion in Zulip. I fully expect that we'll want to iterate on this before landing.
cc @varkor + @shepmaster (from #19834) @hanna-kruppe (active in discussing #66220), @SimonSapin (#65134 caused problems for Servo, want to make sure that this PR doesn't)