Make the lifetime parameters of tcx consistent. #58926
Merged
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.
I have implemented
codegen_allocator
for my backend, but I've had to make a small change to its signature inExtraBackendMethods
. I wonder if this change is justified, or if it is too specific to my use case to be useful to anyone else.write_metadata
andcodegen_allocator
are both called fromcodegen_crate
(inlibrustc_codegen_ssa/base.rs
), and they both receive the sametcx
as an argument:rust/src/librustc_codegen_ssa/base.rs
Lines 555 to 557 in c196097
and:
rust/src/librustc_codegen_ssa/base.rs
Lines 640 to 642 in c196097
However,
codegen_allocator
accepts aTyCtxt
with any lifetime parameters (tcx: TyCtxt<'_, '_, '_>
), whilewrite_metadata
requires that thetcx
argument is of typeTyCtxt<'b, 'gcx, 'gcx>
. In my implementation, I've found that it's necessary fortcx
incodegen_allocator
to also have the<'b, 'gcx, 'gcx>
lifetime parameters.Have I misunderstood the purpose of the parameters of
TyCtxt
? I've read here that the last two parameters only need to be distinct if the function needs to be used during type inference, but I don't think that is the case here.