cg_llvm: Remove inherent methods from several LLVM FFI types #147327
+225
−225
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.
This is mainly motivated by #142897, which proposes to move the LLVM FFI bindings out of
rustc_codegen_llvm
and intorustc_llvm
, which is arguably the more correct place for them from a linking perspective.In order to perform that migration, all of the types used in FFI signatures also need to be moved. However, several of those types have inherent methods that convert from backend-independent types to LLVM FFI types.
Moving the inherent methods as-is would require adding a lot of otherwise-unnecessary dependencies to
rustc_llvm
. And we can't leave them behind as-is, because inherent methods can't be defined in another crate.Therefore, this PR replaces several of those inherent methods with either extension trait methods or free functions.