Rollup of 3 pull requests - #162041
Conversation
HIR writeback already normalizes closure types. Reuse that result instead of normalizing again in a temporary inference context that would drop region constraints.
HIR writeback already normalizes closure types. Restore alias rigidity after identity instantiation instead of running the solver again while building MIR.
Document when changes to the typing mode or parameter environment make rigidness stale, and when compatible mode groups may reuse it.
Unlike `LLVMTargetMachineRef`, `LLVMTwineRef` and `LLVMSMDiagnosticRef` are not LLVM-C types and so don't need the wrap/unwrap conversions.
…_rigidity, r=adwinwhite borrowck: Restore alias rigidity from HIR typeck Follow-up to rust-lang#161012. This came out of the review thread here: rust-lang#161012 (comment) Borrowck was normalizing the closure type again in a fresh inference context. HIR writeback had already done that work. EarlyBinder only marked the aliases as non-rigid again because it has to be conservative. If the second normalization creates region constraints, they disappear with the temporary context. I first thought normalizing again here was fine. After tracing the type back through writeback, I think it makes more sense to trust the result from HIR typeck. Borrowck now restores the rigid flag, and the IsRigid docs explain that this state can carry into borrowck and when it needs to be reset. Tested with the coroutine regression and tidy. cc @adwinwhite @lcnr
…white Emit delayed bug instead of ICEing when `TypeOutlives` goal fails Fixes rust-lang#161527 They can actually fail with the next-solver 😄 https://github.com/rust-lang/rust/blob/2e071b28ef7e8a066b49a179e1da753c53500c62/compiler/rustc_next_trait_solver/src/solve/mod.rs#L88-L93 I have once considered tinkering proof tree/`find_best_leaf_obligation` to make it suggest the failed normalization goal but I doubt it worths the extra complexity, since we prolly already have other failing obligations in these cases r? adwinwhite
… r=Zalathar LLVM wrapper cleanups Details in individual commits. r? @Zalathar
|
@bors r+ p=5 |
|
This pull request was unapproved due to being closed. |
|
Just testing, please ignore :3 |
This comment has been minimized.
This comment has been minimized.
|
Finished benchmarking commit (93322cc): comparison URL. Overall result: no relevant changes - no action neededBenchmarking means the PR may be perf-sensitive. Consider adding rollup=never if this change is not fit for rolling up. @rustbot label: -S-waiting-on-perf -perf-regression Instruction countThis perf run didn't have relevant results for this metric. Max RSS (memory usage)This perf run didn't have relevant results for this metric. CyclesThis perf run didn't have relevant results for this metric. Binary sizeThis perf run didn't have relevant results for this metric. Bootstrap: missing data |
|
@rust-timer build 93322cc benchmarks=doesntexist,alsodoesnt |
|
Unknown compile-time benchmark: doesntexist |
Successful merges:
TypeOutlivesgoal fails #162026 (Emit delayed bug instead of ICEing whenTypeOutlivesgoal fails)r? @ghost
Create a similar rollup