about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2023-07-02Rollup merge of #113231 - Urgau:fix_false_positive_drop_copy, r=NilstriebMatthias Krüger-1/+39
Fix `dropping_copy_types` lint from linting in match-arm with side-effects This PR fixes an issue with the `dropping_copy_types` and `dropping_references` lints when not all patterns that can have side-effects were detected and ignored. Nearly _fixes_ https://github.com/rust-lang/rust/issues/112653 (will need beta-backport to completely fix the issue) r? ``@Nilstrieb``
2023-07-02Rollup merge of #113228 - GuillaumeGomez:migrate-gui-test-color-18, r=notriddleMatthias Krüger-9/+9
Migrate GUI colors test to original CSS color format Follow-up of https://github.com/rust-lang/rust/pull/111459. r? ``@notriddle``
2023-07-02Rollup merge of #113202 - guilliamxavier:patch-1, r=workingjubileeMatthias Krüger-6/+8
std docs: factorize literal in Barrier example Motivated by https://www.reddit.com/r/rust/comments/rnh5hu/barrier_question_barrier_does_not_sync_many/ (but maybe not worth it?)
2023-07-02Rollup merge of #113147 - lizhanhui:fix_vec_from_raw_parts_doc_example, ↵Matthias Krüger-14/+15
r=Mark-Simulacrum Fix document examples of Vec::from_raw_parts and Vec::from_raw_parts_in These two examples are misplaced.
2023-07-02Auto merge of #112756 - hi-rustin:rustin-patch-bootstrap, r=clubby789bors-9/+65
Use RustOptimize to set optimize close https://github.com/rust-lang/rust/issues/112678 Use RustOptimize to set optimize.
2023-07-02Fix broken testshi-rustin-5/+1
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2023-07-02Auto merge of #112910 - lqd:mcp510, r=petrochenkovbors-88/+398
Implement most of MCP510 This implements most of what remains to be done for MCP510: - turns `-C link-self-contained` into a `+`/`-` list of components, like `-C link-self-contained=+linker,+crto,+libc,+unwind,+sanitizers,+mingw`. The scaffolding is present for all these expected components to be implemented and stabilized in the future on their own time. This PR only handles the `-Zgcc-ld=lld` subset of these link-self-contained components as `-Clink-self-contained=+linker` - handles `-C link-self-contained=y|n` as-is today, for compatibility with `rustc_codegen_ssa::back::link::self_contained`'s [explicit opt-in and opt-out](https://github.com/lqd/rust/blob/9eee230cd0a56bfba3ce65121798d9f9f4341cdd/compiler/rustc_codegen_ssa/src/back/link.rs#L1671-L1676). - therefore supports our plan to opt out of `rust-lld` (when it's enabled by default) even for current `-Clink-self-contained` users, with e.g. `-Clink-self-contained -Clink-self-contained=-linker` - turns `add_gcc_ld_path` into its expected final form, by using the `-C link-self-contained=+linker` CLI flag, and whether the `LinkerFlavor` has the expected `Cc::Yes` and `Lld::Yes` shape (this is not yet the case in practice for any CLI linker flavor) - makes the [new clean linker flavors](https://github.com/rust-lang/rust/pull/96827#issuecomment-1208441595) selectable in the CLI in addition to the legacy ones, in order to opt-in to using `cc` and `lld` to emulate `-Zgcc-ld=lld` - ensure the new `-C link-self-contained` components, and `-C linker-flavor`s are unstable, and require `-Z unstable-options` to be used The up-to-date set of flags for the future stable CLI version of `-Zgcc-ld=lld` is currently: `-Clink-self-contained=+linker -Clinker-flavor=gnu-lld-cc -Zunstable-options`. It's possible we'll also need to do something for distros that don't ship `rust-lld`, but maybe there are already no tool search paths to be added to `cc` in this situation anyways. r? `@petrochenkov`
2023-07-01Auto merge of #111035 - Nilstrieb:layout-err, r=wesleywiserbors-80/+108
Shrink error variants for layout and fn_abi The errors are bigger than the result, so let's put them behind a reference. Since query results have to be `Copy`, we use a reference into the arena instead of a `Box<T>`.
2023-07-01Put `FnAbiError` behind reference to shrink resultNilstrieb-25/+20
The `FnAbi` is just a pointer, so the error type should not be bigger.
2023-07-01Put `LayoutError` behind reference to shrink resultNilstrieb-56/+89
`LayoutError` is 24 bytes, which is bigger than the `Ok` types, so let's shrink that.
2023-07-01Auto merge of #113225 - calebcartwright:sync-rustfmt, r=calebcartwrightbors-50/+1082
Update Rustfmt (add let-else support) Adds let-else formatting support Bit more detail in: https://github.com/rust-lang/rustfmt/blob/master/CHANGELOG.md#160-2023-07-02 Accompanying blog post: https://github.com/rust-lang/blog.rust-lang.org/pull/1117 I know we're getting close to tool week, however, there's been extensive discussion and testing of the changes in this between both t-style and t-rustfmt. Our confidence level is extremely high, and even if it's only on nightly for a few days, I'd still much prefer that and being able to get this out with 1.72 vs having to push to 1.73 Closes https://github.com/rust-lang/rustfmt/issues/4914 cc `@rust-lang/style` for awareness
2023-07-01Fix dropping_copy_types lint from linting in match-arm with side-effectsUrgau-1/+39
2023-07-01Auto merge of #113229 - matthiaskrgr:rollup-gunqun4, r=matthiaskrgrbors-106/+499
Rollup of 6 pull requests Successful merges: - #113168 (fix(resolve): skip assertion judgment when NonModule is dummy) - #113174 (Better messages for next on a iterator inside for loops) - #113182 (Error when RPITITs' hidden types capture more lifetimes than their trait definitions) - #113196 (Fix associated items effective visibility calculation for type privacy lints) - #113226 (Fix try builds on the msvc builder) - #113227 (Update cargo) r? `@ghost` `@rustbot` modify labels: rollup
2023-07-01Rollup merge of #113227 - weihanglo:update-cargo, r=weihangloMatthias Krüger-0/+0
Update cargo 6 commits in 03bc66b55c290324bd46eb22e369c8fae1908f91..5b377cece0e0dd0af686cf53ce4637d5d85c2a10 2023-06-23 23:27:46 +0000 to 2023-06-30 00:01:00 +0000 - Add READMEs for the credential helpers. (rust-lang/cargo#12322) - Add some more documentation for Source download functions. (rust-lang/cargo#12319) - Don't try to compile cargo-credential-gnome-secret on non-Linux platforms. (rust-lang/cargo#12321) - refactor: use macro to remove duplication of workspace inheritable fields getters (rust-lang/cargo#12317) - doc: should be `.cargo-ok` (rust-lang/cargo#12318) - refactor(registry): extract and rearrange items to their own modules (rust-lang/cargo#12290) r? `@ghost`
2023-07-01Rollup merge of #113226 - lqd:win-trys, r=KobzolMatthias Krüger-40/+48
Fix try builds on the msvc builder Try builds have been optimized to build less components, however bootstrap was still expecting them to be present on msvc. This PR (extracted from https://github.com/rust-lang/rust/pull/112267) fixes that. r? `@Kobzol`
2023-07-01Rollup merge of #113196 - Bryanskiy:assoc_item, r=petrochenkovMatthias Krüger-4/+7
Fix associated items effective visibility calculation for type privacy lints Fixes https://github.com/rust-lang/rust/pull/113126#discussion_r1246555520.
2023-07-01Rollup merge of #113182 - compiler-errors:rpit-stricter-captures, r=oli-obkMatthias Krüger-56/+283
Error when RPITITs' hidden types capture more lifetimes than their trait definitions This implements a stricter set of captures rules for RPITITs. They now may only capture: 1. Lifetimes from the impl header (both the self type and any trait substs -- we may want to restrict just to the self type's lifetimes, but the PR makes that easy to do, too) 2. Lifetimes mentioned by the `impl Trait` in the trait method's definition. Namely, they may not mention lifetimes from the method (early or late) that are not mentioned in the `impl Trait`. cc #105258 which I think was trying to do this too, though I'm not super familiar with what exactly differs from that or why that one was broken. cc #112194 (doesn't fix this issue per se, because it's still an open question, but I think this is objectively better than the status quo, and gets us closer to resolving that issue.) Technically is a fix for the ICE in #108580, but it turns that issue into an error now. We can decide separately whether or not nested RPITITs should capture lifetimes from their parents. r? ``@oli-obk``
2023-07-01Rollup merge of #113174 - chenyukang:yukang-fix-102972-loop-next, ↵Matthias Krüger-2/+129
r=compiler-errors Better messages for next on a iterator inside for loops Fixes #102972
2023-07-01Rollup merge of #113168 - bvanjoi:fix-85992, r=petrochenkovMatthias Krüger-4/+32
fix(resolve): skip assertion judgment when NonModule is dummy Fixes #85992 ## Why #85992 panic During `resolve_imports`, the `path_res` of the import `issue_85992_extern_2::Outcome` is pointing to `external::issue_85992_extern_2` instead of `crate::issue_85992_extern_2`. As a result `import.imported_module.set` had been executed. Attached 1: the state of `early_resolve_ident_in_lexical_scope` during the `resolve_imports` for `use issue_85992_extern_2::Outcome` is as follows: |iter in `visit_scopes` | `scope` | `result.binding` | | - | - | - | | init | - | - | | 0 | `CrateRoot` | Err(Determined) | | 1 | `ExternPrelude` | pointing to the `issue_85992_extern_2`(external) | However, during finalization for `issue_85992_extern_2::Outcome`, the `innermost_result` was pointed to `crate::issue_85992_extern_2` and no ambiguity was generated, leading to a panic. Attached 2: the state of `early_resolve_ident_in_lexical_scope` during the `finalize_import` for `use issue_85992_extern_2::Outcome` is as follows: |iter in `visit_scopes` | `scope` | `result.binding` | `innermost_result` | | - | - | - | - | | init | - | - | `None` | | 0 | `CrateRoot` | pointing to `use crate::issue_85992_extern_2` **(introdcued by dummy)** | same as `result` but with a `Some` wapper| | 1 | `ExternPrelude` | pointing to the `issue_85992_extern_2`(external) | smae as above | ## Try to solve Skip assertion judgment when `NonModule` is dummy r? `@petrochenkov`
2023-07-01Migrate GUI colors test to original CSS color formatGuillaume Gomez-9/+9
2023-07-01Update cargoWeihang Lo-0/+0
2023-07-01Auto merge of #112550 - loongarch-rs:fix-eflags, r=cjgillotbors-2/+13
loongarch: Fix ELF header flags This patch changes the ELF header flags so that the ABI matches the floating-point features. It also updates the link to the new official documentation.
2023-07-01Add tests for RustOptimizehi-rustin-1/+20
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2023-07-01Use RustOptimize to set optimizehi-rustin-9/+50
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2023-07-01msvc dist extended: rust-analyzer is optionalRémy Rakic-19/+20
The windows tarballs and installers expect rust-analyzer to be present, but it's not always the case. For example, in try builds.
2023-07-01msvc dist extended: clippy is optionalRémy Rakic-22/+29
The windows tarballs and installers expect clippy to be present, but it's not always the case. For example, in try builds.
2023-07-01update rustfmt version in lockfileCaleb Cartwright-1/+1
2023-07-01Merge commit 'dca1cf90ad6b8e45afbed2061803befbb2d159e9' into sync-rustfmtCaleb Cartwright-49/+1081
2023-07-01chore: prep v1.6.0 releaseCaleb Cartwright-2/+13
2023-07-01Auto merge of #111992 - ferrocene:pa-panic-abort-tests-bench, r=m-ou-sebors-122/+184
Test benchmarks with `-Z panic-abort-tests` During test execution, when a `#[bench]` benchmark is encountered it's executed once to check whether it works. Unfortunately that was not compatible with `-Z panic-abort-tests`: the feature works by spawning a subprocess for each test, which prevents the use of dynamic tests as we cannot pass closures to child processes, and before this PR the conversion from benchmark to test was done by turning benchmarks into dynamic tests whose closures execute the benchmark once. The approach this PR took was to add two new kinds of `TestFn`s: `StaticBenchAsTestFn` and `DynBenchAsTestFn` (:warning: **this is a breaking change** :warning:). With that change, a `StaticBenchFn` can be converted into a `StaticBenchAsTestFn` without creating dynamic tests, and making it possible to test `#[bench]` functions with `-Z panic-abort-tests`. The subprocess test runner also had to be updated to perform the conversion from benchmark to test when appropriate. Along with the bug fix, in the first commit I refactored how tests are executed: rather than executing the test function in multiple places across `libtest`, there is now a private `TestFn::into_runnable()` method, which returns either a `RunnableTest` or `RunnableBench`, on which you can call the `run()` method. This simplified the rest of the changes in the PR. This PR is best reviewed commit-by-commit. Fixes https://github.com/rust-lang/rust/issues/73509
2023-07-01deps: bump proc-macro2 in configCaleb Cartwright-2/+2
2023-07-01deps: bump proc-macro2 and toolchainCaleb Cartwright-3/+3
2023-07-01Implement `become` expression formatting in rustfmtMaybe Waffle-0/+2
2023-07-01wrap `else` to next line if `let-else` pattern is multi-linedYacin Tmimi-5/+8
This rule wasn't explicity stated in the style guide so it was missed, but luckily we caught it during testing.
2023-07-01update `else_block_exceeds_width` calculation in `let-else` rewriteYacin Tmimi-1/+2
By reversing the logic I felt that the code became a clearer. Also, added a comment to make it clear that we need to take the trailing semicolon for the `let-else` statement into account.
2023-07-01implement single_line_let_else_max_widthYacin Tmimi-7/+528
This allows users to configure the maximum length of a single line `let-else` statements. `let-else` statements that otherwise meet the requirements to be formatted on a single line will have their divergent `else` block formatted over multiple lines if they exceed this length. **Note**: `single_line_let_else_max_widt` will be introduced as a stable configuration option.
2023-07-01Auto merge of #113194 - lu-zero:intrinsics-inline, r=thomccbors-3/+3
Mark wrapped intrinsics as inline(always) This should mitigate having the inliner decide not to inline when the architecture is lacking an implementation of TargetTransformInfo::areInlineCompatible aware of the target features (e.g. PowerPC as today). See https://github.com/rust-lang/stdarch/pull/1443#issuecomment-1613788080
2023-07-01fix(resolve): skip assertion judgment when `NonModule` is dummybohan-4/+32
2023-07-01Auto merge of #113154 - lcnr:better-probe-check, r=compiler-errorsbors-122/+80
change snapshot tracking in fulfillment contexts use the exact snapshot number to prevent misuse even when created inside of a snapshot
2023-06-30Auto merge of #113216 - matthiaskrgr:rollup-8xe65sj, r=matthiaskrgrbors-85/+45
Rollup of 8 pull requests Successful merges: - #113072 (str docs: remove "Basic usage" text where not useful) - #113153 (make HashMap::or_insert_with example more simple) - #113185 (Set `channel = nightly` in dist profile) - #113186 (document that the panic in collect_intra_doc_links is load-bearing) - #113187 (No need to distinguish `LocalTy` from `Ty`) - #113189 (compiletest: Only trim the end of process output) - #113191 (Update browser-ui-test version and improve GUI test) - #113206 (User may want to skip tidy check sometimes) r? `@ghost` `@rustbot` modify labels: rollup
2023-07-01Rollup merge of #113206 - chenyukang:yukang-trivial-fix-113135, r=KobzolMatthias Krüger-1/+5
User may want to skip tidy check sometimes Fixes #113135
2023-07-01Rollup merge of #113191 - GuillaumeGomez:update-browser-ui-test, r=notriddleMatthias Krüger-5/+6
Update browser-ui-test version and improve GUI test Few small fixes and added new commands which allow to compare elements size. r? ``@notriddle``
2023-07-01Rollup merge of #113189 - Zalathar:trim-end, r=ozkanonurMatthias Krüger-1/+1
compiletest: Only trim the end of process output As of #94196, compiletest automatically trims process stderr/stdout output before printing it, to make failure info more compact. This causes the first line of `run-coverage` output to be displayed incorrectly, because it uses leading whitespace to align line numbers. Trimming only the end of the output string should still have the intended effect (e.g. removing trailing newlines), without causing problems for output that deliberately uses leading whitespace on the first line. ## Before ``` --- stdout ------------------------------- 1| 1|fn main() { // 2| 1| let num = 9; 3| 1| while num >= 10 { 4| 0| } 5| 1|} ------------------------------------------ stderr: none ``` ## After ``` --- stdout ------------------------------- 1| 1|fn main() { // 2| 1| let num = 9; 3| 1| while num >= 10 { 4| 0| } 5| 1|} ------------------------------------------ stderr: none ```
2023-07-01Rollup merge of #113187 - compiler-errors:local-ty, r=b-naberMatthias Krüger-34/+22
No need to distinguish `LocalTy` from `Ty` I think the distinction between `decl_ty` and `revealed_ty` was from when you were allowed to put `impl Trait` in let bindings... I don't think we need that anymore, and it makes typeck that much more confusing :laughing: Side-note: I don't know why we store this in a separate field [`locals`](https://doc.rust-lang.org/nightly/nightly-rustc/rustc_hir_typeck/struct.Inherited.html#structfield.locals) in `Inherited`, rather than just the `TypeckResults`... Might look into changing that next.
2023-07-01Rollup merge of #113186 - jyn514:intra-doc-panic, r=petrochenkovMatthias Krüger-0/+4
document that the panic in collect_intra_doc_links is load-bearing r? ``@petrochenkov``
2023-07-01Rollup merge of #113185 - jyn514:dist-channel, r=ozkanonurMatthias Krüger-0/+3
Set `channel = nightly` in dist profile This avoids some channel-specific defaults leaking into local installs. It also makes it easier to set options for compiler/library/codegen profiles in the future, since they can be gated off `channel` instead of being duplicated between all three files. Here are the exact things `channel` controls today: https://github.com/rust-lang/rust/blob/68d458bb402b873b9ae80423710c2672967479df/src/bootstrap/llvm.rs#L466-L470 https://github.com/rust-lang/rust/blob/85c4ea0138fcca2e8cf4515a063cd3b762d64aec/src/bootstrap/config.rs#L1374-L1375 https://github.com/rust-lang/rust/blob/85c4ea0138fcca2e8cf4515a063cd3b762d64aec/src/bootstrap/config.rs#L1464-L1465 ``@cuviper`` i expect you don't want any of those to be set in distro builds, right?
2023-07-01Rollup merge of #113153 - tshepang:patch-6, r=cuviperMatthias Krüger-4/+4
make HashMap::or_insert_with example more simple
2023-07-01Rollup merge of #113072 - tshepang:patch-1, r=cuviperMatthias Krüger-40/+0
str docs: remove "Basic usage" text where not useful Not "useful" in that there is only one example given
2023-06-30comment, and bless, unstable linker flavor testRémy Rakic-4/+8
2023-06-30add end-to-end testRémy Rakic-0/+12