-
Notifications
You must be signed in to change notification settings - Fork 13.6k
Rollup of 15 pull requests #145020
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
Rollup of 15 pull requests #145020
Conversation
… of a file, not an extension
…on directories Inspired by rust-lang#123883 .
…r-errors Parser: Recover from attributes applied to types and generic args r? compiler Add clearer error messages for invalid attribute usage in types or generic types fixes rust-lang#135017 fixes rust-lang#144132
…szelmann Port `#[coroutine]` to the new attribute system Related to rust-lang#131229 (comment). r? `````@jdonszelmann`````
…er, r=WaffleLapkin Anonymize binders in tail call sig See the comment for explanation Fixes rust-lang#144826 r? WaffleLapkin
…on, r=ChrisDenton Stabilize `panic_payload_as_str` feature Closes [tracking issue](rust-lang#125175). Part of rust-lang#116005. FCP ended more than year ago in tracking issue, I'm not sure if we should rerun it.
…ifetimes, r=lcnr Enforce tail call type is related to body return type in borrowck Like all call terminators, tail call terminators instantiate the binder of the callee signature with region variables and equate the arg operand types with that signature's args to ensure that the call is valid. However, unlike normal call terminators, we were forgetting to also relate the return type of the call terminator to anything. In the case of tail call terminators, the correct thing is to relate it to the return type of the caller function (or in other words, the return local `_0`). This meant that if the caller's return type had some lifetime constraint, then that constraint wouldn't flow through the signature and affect the args. This is what's happening in the example test I committed: ```rust fn link(x: &str) -> &'static str { become passthrough(x); } fn passthrough<T>(t: T) -> T { t } fn main() { let x = String::from("hello, world"); let s = link(&x); drop(x); println!("{s}"); } ``` Specifically, the type `x` is `'?0 str`, where `'?0` is some *universal* arg. The type of `passthrough` is `fn(&'?1 str) -> &'?1 str`. Equating the args sets `'?0 = '?1`. However, we need to also equate the return type `&'?1 str` to `&'static str` so that we eventually require that `'?0 = 'static`, which is a borrowck error! ----- Look at the first commit for the functional change, and the second commit is just a refactor because we don't need to pass `Option<BasicBlock>` to `check_call_dest`, but just whether or not the terminator is expected to be diverging (i.e. if the return type is `!`). Fixes rust-lang#144916
…compiler-errors we only merge candidates for trait and normalizes-to goals so change `fn try_merge_responses` to `fn try_merge_candidates` and just use candidates everywhere. Potentially slightly faster than the alternative :3 r? ``@compiler-errors`` ``@BoxyUwU``
…BoxyUwU Gate const trait syntax Missed this during my review of rust-lang#143879, huge apologies! Fixes [after beta backport] rust-lang#144958. cc ``@fee1-dead`` r? ``@BoxyUwU`` or anyone
…ink-144965, r=GuillaumeGomez rustdoc: fix caching of intra-doc links on reexports previously two reexports of the same item would share a set of intra-doc links, which would cause problems if they had two different links with the same text. this was fixed by using the reexport defid as the key, if it is available. fixes rust-lang#144965
…iplett add code example showing that file_prefix treats dotfiles as the name of a file, not an extension This came up in a libs-api meeting while we were reviewing rust-lang#144870
…ratt `File::set_times`: Update documentation and example to support setting timestamps on directories Inspired by rust-lang#123883 .
…s, r=compiler-errors Fortify generic param default checks * Hard-reject instead of lint-reject type param defaults in generic assoc consts (GACs) (feature: `generic_const_items`). * In rust-lang#113522, I explicitly handled the free const item case and forgot about the assoc const one. * This led rustc to assume the default of emitting the deny-by-default lint `invalid_type_param_default`. * GCIs are unstable, thus we're not bound by backward compat * Hard-reject instead of lint-reject type param defaults in foreign items. * We already hard-reject generic params on foreign items, so this isn't a breaking change. * There's no reason why we need to lint-reject. * Refactor the way we determine where generic param defaults are allowed: * Don't default to emitting lint `invalid_type_param_defaults` for nodes that aren't explicitly handled but instead panic. * This would've caught my GAC oversight from above much earlier via fuzzing * Prevents us from accidentally stabilizing more invalid type param defaults in the future * Streamline the phrasing of the diagnostic
@bors r+ p=5 rollup=never |
☀️ Test successful - checks-actions |
What is this?This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.Comparing 7d82b83 (parent) -> 6bcdcc7 (this PR) Test differencesShow 455 test diffsStage 1
Stage 2
(and 185 additional test diffs) Additionally, 170 doctest diffs were found. These are ignored, as they are noisy. Job group index
Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard 6bcdcc73bd11568fd85f5a38b58e1eda054ad1cd --output-dir test-dashboard And then open Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
📌 Perf builds for each rolled up PR:
previous master: 7d82b83ed5 In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
Finished benchmarking commit (6bcdcc7): comparison URL. Overall result: ❌✅ regressions and improvements - please read the text belowOur benchmarks found a performance regression caused by this PR. Next Steps:
@rustbot label: +perf-regression Instruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)Results (primary 3.4%, secondary -5.5%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary 2.5%, secondary -1.4%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 463.234s -> 465.172s (0.42%) |
Successful merges:
#[coroutine]
to the new attribute system #144794 (Port#[coroutine]
to the new attribute system)panic_payload_as_str
feature #144861 (Stabilizepanic_payload_as_str
feature)File::set_times
: Update documentation and example to support setting timestamps on directories #144975 (File::set_times
: Update documentation and example to support setting timestamps on directories)super_projection_elem
#144998 (mir: Do not modify NonUse insuper_projection_elem
)stage
parameter when setting up stdlib Cargo #145000 (Remove unneededstage
parameter when setting up stdlib Cargo)r? @ghost
@rustbot modify labels: rollup
Create a similar rollup