about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2022-06-26Hermit: Fix initializing lazy locksMartin Kröning-6/+24
2022-06-26Auto merge of #98190 - nnethercote:optimize-derive-Debug-code, r=scottmcmbors-233/+413
Improve `derive(Debug)` r? `@ghost`
2022-06-26Auto merge of #98518 - RalfJung:miri, r=RalfJungbors-26/+17
update Miri Fixes https://github.com/rust-lang/rust/issues/98493 (this is a flaky test, that's why the toolstate already says Miri is fixed) r? `@ghost` Cc `@rust-lang/miri`
2022-06-26Auto merge of #98521 - JohnTitor:rollup-tl9sblx, r=JohnTitorbors-128/+354
Rollup of 8 pull requests Successful merges: - #98371 (Fix printing `impl trait` under binders) - #98385 (Work around llvm 12's memory ordering restrictions.) - #98474 (x.py: Support systems with only `python3` not `python`) - #98488 (Bump RLS to latest master on rust-lang/rls) - #98491 (Fix backtrace UI test when panic=abort is used) - #98502 (Fix source sidebar hover in ayu theme) - #98509 (diagnostics: consider parameter count when suggesting smart pointers) - #98513 (Fix LLVM rebuild with download-ci-llvm.) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2022-06-26Rollup merge of #98513 - ehuss:rebuild-llvm-download, r=Mark-SimulacrumYuki Okushi-0/+13
Fix LLVM rebuild with download-ci-llvm. This fixes an issue where updating a local checkout that includes a change in `src/version` causes a linking failure. The cause is that the `rustc_llvm` build script uses `rerun-if-changed` of `llvm-config` to know if it needs to rerun. Cargo only compares the timestamp of the last time the build script to the file. However, extracting the tar files retains the timestamps in the tarball which may be some time in the past. Since `src/version` is included in the LLVM `.so` filename, `rustc` attempts to load the wrong shared library since the `rustc_llvm` build script doesn't rerun. https://github.com/rust-lang/cargo/issues/10791 contains a more detailed explanation. The solution here is a hack which updates the timestamp of `llvm-config` to the current time when it is extracted. This is a bit of a hack, but seems to be the best solution I can think of until https://github.com/rust-lang/cargo/issues/10791 is fixed. There are likely several other situations where this is a problem (such as using system LLVM), and this isn't really a complete fix. Note that apple platforms are not directly affected by this problem because they don't have a version in the dylib filename. How to test this: 1. On a linux host, enable download-ci-llvm 2. Check out 7036449c774860a5b348dbbe01c20704c557382e (the commit just before the last version bump) 3. `./x.py build library/std` 4. Check out 5f015a24f99f52ea9b67beb420aff24f82acf1af (the commit that bumped the version) 5. `./x.py build library/std` Fixes #98495
2022-06-26Rollup merge of #98509 - rust-lang:notriddle/precise-pin-diag, r=compiler-errorsYuki Okushi-1/+28
diagnostics: consider parameter count when suggesting smart pointers Fixes #96834
2022-06-26Rollup merge of #98502 - GuillaumeGomez:source-sidebar-hover, r=notriddleYuki Okushi-6/+105
Fix source sidebar hover in ayu theme In the screenshot below, `rc.rs` should be orange: ![Screenshot from 2022-06-25 22-24-06](https://user-images.githubusercontent.com/3050060/175789532-99e8781d-2e62-43f7-bbd9-1b1151e1f8c1.png) It's because the CSS selector was not precise enough and was "overloaded" with another one. This PR fixes it and adds a test for the colors in the source sidebar. cc `@jsha` r? `@notriddle`
2022-06-26Rollup merge of #98491 - antoyo:fix/ui-test-backtrace-panic-abort, r=Dylan-DPCYuki Okushi-0/+1
Fix backtrace UI test when panic=abort is used The function `contains_verbose_expected` is only used when the panic strategy is not abort, so it caused a warning when it was abort, which made the UI test failed on stderr comparison.
2022-06-26Rollup merge of #98488 - Mark-Simulacrum:bump-rls, r=pietroalbiniYuki Okushi-2/+1
Bump RLS to latest master on rust-lang/rls Of primary interest, this merges rust-lang/rls@ece09b88c0365947af79c0ffdeea02bc6c1eec25 into rust-lang/rust, which brings in the changes that fix RLS tests broken by #97853. #97853 already introduced that commit's changes (under rust-lang/rls@27f4044df03d15c7c38a483c3e4635cf4f51807d) but without putting those changes on rust-lang/rls as a branch, so we ended up with an orphan commit that caused trouble when updating submodules in rust-lang/rust. This commit, once merged into rust-lang/rust, should continue to let RLS tests to pass on rust-lang/rust's side and move us back into a healthy state where tip of the submodule points to a valid master commit in the rust-lang/rls repository. cc https://github.com/rust-lang/rust/issues/98451, but not marking as fixed as I believe we need to add verification to prevent future oversights.
2022-06-26Rollup merge of #98474 - dtolnay:python3, r=Mark-SimulacrumYuki Okushi-4/+25
x.py: Support systems with only `python3` not `python` Fixes #71818 without the pitfalls so far described in previous attempts.
2022-06-26Rollup merge of #98385 - m-ou-se:llvm-12-memory-order, r=petrochenkovYuki Okushi-1/+15
Work around llvm 12's memory ordering restrictions. Older llvm has the pre-C++17 restriction on success and failure memory ordering, requiring the former to be at least as strong as the latter. So, for llvm 12, this upgrades the success ordering to a stronger one if necessary. See https://github.com/rust-lang/rust/issues/68464
2022-06-26Rollup merge of #98371 - compiler-errors:better-opaque-printing, r=oli-obkYuki Okushi-114/+166
Fix printing `impl trait` under binders Before, we would render `impl for<'a> Trait<'a>` like `impl Trait<for<'a> 'a>`, lol.
2022-06-25update MiriRalf Jung-26/+17
2022-06-26Auto merge of #98140 - klensy:compiletest-strip, r=Mark-Simulacrumbors-4/+20
compiletest: strip debuginfo by default for mode=ui This reduces occupied disk space, for example for src/test/ui it drops from 1972mb to 132mb (x86_64-pc-windows-msvc). Individual tests that require debuginfo/symbols should turn this option off (as in fixed tests).
2022-06-25Fix LLVM rebuild with download-ci-llvm.Eric Huss-0/+13
2022-06-25diagnostics: consider parameter count when suggesting smart pointersMichael Howell-1/+28
2022-06-25Auto merge of #97513 - jyn514:submodule-handling, r=Mark-Simulacrumbors-228/+757
Fully remove submodule handling from bootstrap.py These submodules were previously updated in python because Cargo gives a hard error if toml files are missing from the workspace: ``` error: failed to load manifest for workspace member `/home/jnelson/rust-lang/rust/src/tools/rls` Caused by: failed to read `/home/jnelson/rust-lang/rust/src/tools/rls/Cargo.toml` Caused by: No such file or directory (os error 2) failed to run: /home/jnelson/rust-lang/rust/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --manifest-path /home/jnelson/rust-lang/rust/src/bootstrap/Cargo.toml ``` However, bootstrap doesn't actually need to be part of the workspace. Remove it so we can move submodule handling fully to Rust, avoiding duplicate code between Rust and Python. Note that this does break `cargo run`; it has to be `cd src/bootstrap && cargo run` now. Given that we're planning to make the main entrypoint a shell script (or rust binary), I think this is a good tradeoff for reduced complexity in bootstrap.py. To get this working, I also had to remove support for vendoring when using the git sources, because `cargo vendor` requires all submodules to be checked out. I think this is ok; people who care about this are likely already using the pre-vendored `rustc-src` tarball. Fixes https://github.com/rust-lang/rust/issues/90764. Helps with #94829
2022-06-25Add test for source sidebar elements colorsGuillaume Gomez-0/+99
2022-06-25Fix CSS rule for selected and hovered items in the source sidebarGuillaume Gomez-6/+6
2022-06-25Auto merge of #98412 - calebcartwright:sync-rustfmt, r=calebcartwrightbors-11634/+534
Sync rustfmt We had a bug in the update we made ~1 week ago, so running a somewhat early sync to pull the fix in
2022-06-25Fix backtrace UI test when panic=abort is usedAntoni Boucher-0/+1
2022-06-25Auto merge of #98486 - matthiaskrgr:rollup-u7m508x, r=matthiaskrgrbors-371/+766
Rollup of 9 pull requests Successful merges: - #96412 (Windows: Iterative `remove_dir_all`) - #98126 (Mitigate MMIO stale data vulnerability) - #98149 (Set relocation_model to Pic on emscripten target) - #98194 (Leak pthread_{mutex,rwlock}_t if it's dropped while locked.) - #98298 (Point to type parameter definition when not finding variant, method and associated item) - #98311 (Reverse folder hierarchy) - #98401 (Add tracking issues to `--extern` option docs.) - #98429 (Use correct substs in enum discriminant cast) - #98431 (Suggest defining variable as mutable on `&mut _` type mismatch in pats) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2022-06-25Bump RLS to latest master on rust-lang/rlsMark Rousskov-2/+1
Of primary interest, this merges rust-lang/rls@ece09b88c0365947af79c0ffdeea02bc6c1eec25 into rust-lang/rust, which brings in the changes that fix RLS tests broken by #97853. #97853 already introduced that commit's changes (under 27f4044df03d15c7c38a483c3e4635cf4f51807d) but without putting those changes on rust-lang/rls as a branch, so we ended up with an orphan commit that caused trouble when updating submodules in rust-lang/rust. This commit, once merged into rust-lang/rust, should continue to let RLS tests to pass on rust-lang/rust's side and move us back into a healthy state where tip of the submodule points to a valid master commit in the rust-lang/rls repository.
2022-06-25Rollup merge of #98431 - WaffleLapkin:mut_pat_suggestions, r=compiler-errorsMatthias Krüger-1/+173
Suggest defining variable as mutable on `&mut _` type mismatch in pats Suggest writing `mut a` where `&mut a` was written but a non-ref type provided. Since we still don't have "apply either one of the suggestions but not both" kind of thing, the interaction with the suggestion of removing `&[mut]` or moving it to the type is weird, and idk how to make it better.. r? ``@compiler-errors``
2022-06-25Rollup merge of #98429 - b-naber:use-correct-substs-discriminant-cast, r=lcnrMatthias Krüger-92/+104
Use correct substs in enum discriminant cast Fixes https://github.com/rust-lang/rust/issues/97634 r? ```@lcnr```
2022-06-25Rollup merge of #98401 - ehuss:extern-tracking, r=Dylan-DPCMatthias Krüger-0/+5
Add tracking issues to `--extern` option docs.
2022-06-25Rollup merge of #98311 - eggyal:reverse-folder-hierarchy, r=jackh726Matthias Krüger-63/+40
Reverse folder hierarchy #91318 introduced a trait for infallible folders distinct from the fallible version. For some reason (completely unfathomable to me now that I look at it with fresh eyes), the infallible trait was a supertrait of the fallible one: that is, all fallible folders were required to also be infallible. Moreover the `Error` associated type was defined on the infallible trait! It's so absurd that it has me questioning whether I was entirely sane. This trait reverses the hierarchy, so that the fallible trait is a supertrait of the infallible one: all infallible folders are required to also be fallible (which is a trivial blanket implementation). This of course makes much more sense! It also enables the `Error` associated type to sit on the fallible trait, where it sensibly belongs. There is one downside however: folders expose a `tcx` accessor method. Since the blanket fallible implementation for infallible folders only has access to a generic `F: TypeFolder`, we need that trait to expose such an accessor to which we can delegate. Alternatively it's possible to extract that accessor into a separate `HasTcx` trait (or similar) that would then be a supertrait of both the fallible and infallible folder traits: this would ensure that there's only one unambiguous `tcx` method, at the cost of a little additional boilerplate. If desired, I can submit that as a separate PR. r? ````@jackh726````
2022-06-25Rollup merge of #98298 - TaKO8Ki:point-to-type-param-definition, ↵Matthias Krüger-125/+168
r=compiler-errors Point to type parameter definition when not finding variant, method and associated item fixes #77391
2022-06-25Rollup merge of #98194 - m-ou-se:leak-locked-pthread-mutex, r=AmanieuMatthias Krüger-4/+51
Leak pthread_{mutex,rwlock}_t if it's dropped while locked. Fixes https://github.com/rust-lang/rust/issues/85434.
2022-06-25Rollup merge of #98149 - hoodmane:emscripten-pic, r=petrochenkovMatthias Krüger-1/+2
Set relocation_model to Pic on emscripten target So we can support dynamically linking libraries with Emscripten (otherwise we need to use nightly and `-Zbuild-std` to rebuild std with relocations). `````@sbc100`````
2022-06-25Rollup merge of #98126 - fortanix:raoul/mitigate_stale_data_vulnerability, ↵Matthias Krüger-10/+142
r=cuviper Mitigate MMIO stale data vulnerability Intel publicly disclosed the MMIO stale data vulnerability on June 14. To mitigate this vulnerability, compiler changes are required for the `x86_64-fortanix-unknown-sgx` target. cc: ````@jethrogb````
2022-06-25Rollup merge of #96412 - ChrisDenton:remove-dir-all, r=thomccMatthias Krüger-75/+81
Windows: Iterative `remove_dir_all` This will allow better strategies for use of memory and File handles. However, fully taking advantage of that is left to future work. Note to reviewer: It's probably best to view the `remove_dir_all_recursive` as a new function. The diff is not very helpful (imho).
2022-06-25Auto merge of #96820 - r-raymond:master, r=cuviperbors-10/+53
Make RwLockReadGuard covariant Hi, first time contributor here, if anything is not as expected, please let me know. `RwLockReadGoard`'s type constructor is invariant. Since it behaves like a smart pointer to an immutable reference, there is no reason that it should not be covariant. Take e.g. ``` fn test_read_guard_covariance() { fn do_stuff<'a>(_: RwLockReadGuard<'_, &'a i32>, _: &'a i32) {} let j: i32 = 5; let lock = RwLock::new(&j); { let i = 6; do_stuff(lock.read().unwrap(), &i); } drop(lock); } ``` where the compiler complains that &i doesn't live long enough. If `RwLockReadGuard` is covariant, then the above code is accepted because the lifetime can be shorter than `'a`. In order for `RwLockReadGuard` to be covariant, it can't contain a full reference to the `RwLock`, which can never be covariant (because it exposes a mutable reference to the underlying data structure). By reducing the data structure to the required pieces of `RwLock`, the rest falls in place. If there is a better way to do a test that tests successful compilation, please let me know. Fixes #80392
2022-06-25Auto merge of #93700 - rossmacarthur:ft/iter-next-chunk, r=m-ou-sebors-31/+100
Add `Iterator::next_chunk` See also https://github.com/rust-lang/rust/pull/92393 ### Prior art - [`Itertools::next_tuple()`](https://docs.rs/itertools/latest/itertools/trait.Itertools.html#method.next_tuple) ### Unresolved questions - Should we also add `next_chunk_back` to `DoubleEndedIterator`? - Should we rather call this `next_array()` or `next_array_chunk`?
2022-06-24x.py: Support systems with only `python3` not `python`David Tolnay-4/+25
2022-06-24Auto merge of #98459 - pietroalbini:pa-1.64, r=pietroalbinibors-1/+1
Bump version to 1.64.0 r? `@ghost`
2022-06-24Use write! instead of p! to avoid having to use weird scopingMichael Goulet-26/+13
2022-06-24Fix printing impl trait under bindersMichael Goulet-113/+178
2022-06-24improve wording of a suggestionMaybe Waffle-9/+9
2022-06-24take advantage of a labelled blockWaffle Maybe-8/+8
Co-authored-by: Michael Goulet <michael@errs.io>
2022-06-24bump version to 1.64.0Pietro Albini-1/+1
2022-06-24fmtb-naber-9/+7
2022-06-24Set relocation_model to Pic on emscripten targetHood Chatham-1/+2
2022-06-24Auto merge of #98397 - RalfJung:miri, r=RalfJungbors-14/+8
update Miri Fixes https://github.com/rust-lang/rust/issues/98366 r? `@ghost` Cc `@rust-lang/miri`
2022-06-24address reviewb-naber-14/+14
2022-06-24small refactorb-naber-95/+96
2022-06-24Auto merge of #98447 - JohnTitor:rollup-pponoo3, r=JohnTitorbors-259/+603
Rollup of 9 pull requests Successful merges: - #91264 (Add macro support in jump to definition feature) - #96955 (Remove (transitive) reliance on sorting by DefId in pretty-printer) - #97633 (Session object: Set OS/ABI) - #98039 (Fix `panic` message for `BTreeSet`'s `range` API and document `panic` cases) - #98214 (rustc_target: Remove some redundant target properties) - #98280 (Improve suggestion for calling fn-like expr on type mismatch) - #98394 (Fixup missing renames from `#[main]` to `#[rustc_main]`) - #98411 (Update tendril) - #98419 (Remove excess rib while resolving closures) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2022-06-24use correct substs in enum discriminant hackb-naber-1/+4
2022-06-24add testb-naber-0/+10
2022-06-24Rollup merge of #98419 - WaffleLapkin:remove_excess_rib, r=compiler-errorsYuki Okushi-1/+3
Remove excess rib while resolving closures I've mentioned this on [zulip](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/.60ClosureOrAsyncRibKind.60.20weirdness/near/286982959), in `rustc_resolve`, while resolving closures we add an excess `ClosureOrAsyncRibKind`. It's excess because we later add another one in `visit_fn`. I couldn't find a way in which removing this will break anything, all test seem to pass, etc. r? ``@compiler-errors`` cc ``@davidtwco``