about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2022-07-05finally enable Scalar layout sanity checksRalf Jung-7/+5
2022-07-05Auto merge of #98963 - GuillaumeGomez:rollup-n030us5, r=GuillaumeGomezbors-213/+600
Rollup of 6 pull requests Successful merges: - #95503 (bootstrap: Allow building individual crates) - #96814 (Fix repr(align) enum handling) - #98256 (Fix whitespace handling after where clause) - #98880 (Proper macOS libLLVM symlink when cross compiling) - #98944 (Edit `rustc_mir_dataflow::framework::lattice::FlatSet` docs) - #98951 (Update books) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2022-07-05Rollup merge of #98951 - ehuss:update-books, r=ehussGuillaume Gomez-0/+0
Update books ## nomicon 2 commits in 3a43983b76174342b7dbd3e12ea2c49f762e52be..70db9e4189f64d1d8e2451b1046111fb356b6dc2 2022-05-30 17:01:30 +0900 to 2022-06-27 20:47:21 +0900 - should be `size_of` instead of `align_of` (rust-lang/nomicon#371) - Fix wording on the aliasing section (rust-lang/nomicon#366) ## book 20 commits in efbafdba3618487fbc9305318fcab9775132ac15..cf2653a5ca553cbbb4a17f1a7db1947820f6a775 2022-06-19 21:06:50 -0400 to 2022-07-05 12:07:58 -0400 - Frontmatter - Update to Rust 1.62 - Extract where clause example so it'll get rustfmtted in the future - Merge remote-tracking branch 'origin/pr/3238' into extract-where-clause-example - Fix line wrapping of lib placement fix - Fix grammar, spelling, and line wrapping of description of appendices - Merge remote-tracking branch 'origin/pr/3244' into binlib - Clarify *type* parameter names - Fix listing 8-21. Fixes rust-lang/book#3251 - Propagate tech review changes for ch13 - Responses to tech review of chapter 13 - Tech review comments on chapter 13 - Fix double the - Propagate tech review chapter 1 changes to src - Address tech review comments for chapter 1 - Tech review comments for chapter 1 - Fix grammar - Fix grammar - Edits to edits to the introduction - Comments from nostarch on the introduction ## rust-by-example 8 commits in 1095df2a5850f2d345fad43a30633133365875ba..83724ca387a2a1cd3e8d848f62820020760e358b 2022-06-18 21:47:12 -0300 to 2022-07-05 10:38:07 -0300 - changing names of params (rust-lang/rust-by-example#1567) - Update incorrect print output in std/box.md (rust-lang/rust-by-example#1564) - minor typo (rust-lang/rust-by-example#1563) - fix: Fibonacci sequence starts from zero (rust-lang/rust-by-example#1562) - add Vietnamese version on README.md (rust-lang/rust-by-example#1561) - Update variadics.md (rust-lang/rust-by-example#1559) - Change fold to sum in fn hof.md (rust-lang/rust-by-example#1560) - Small typo, fixed compileable -> compilable (rust-lang/rust-by-example#1556) ## rustc-dev-guide 8 commits in 048d925f0a955aac601c4160c0e7f05771bcf63b..eb83839e903a0a8f1406f7e941886273f189b26b 2022-06-21 22:25:34 +0900 to 2022-07-03 15:17:39 +0900 - Suggest a separate build directory for rust-analyzer (rust-lang/rustc-dev-guide#1378) - Change the old filename, "src/stage0.txt" to "src/stage0.json" (rust-lang/rustc-dev-guide#1383) - Add the config needed to get rust-analyzer working on src/bootstrap (rust-lang/rustc-dev-guide#1381) - Fix path to hir_id_validator.rs - leave formatOnSave to the user (rust-lang/rustc-dev-guide#1380) - diagnostics: structs with new slug syntax (rust-lang/rustc-dev-guide#1377) - Few readability fixes - humorust: Forbid pineapple on pizza (rust-lang/rustc-dev-guide#1374) ## embedded-book 1 commits in e17dcef5e96346ee3d7fa56820ddc7e5c39636bc..766979590da8100998f0d662499d4a901d8d1640 2022-06-19 10:28:00 +0000 to 2022-07-04 09:13:58 +0000 - "linker `link.exe` not found" fix (rust-embedded/book#321)
2022-07-05Rollup merge of #98944 - pierwill:flatset-docs, r=Dylan-DPCGuillaume Gomez-5/+7
Edit `rustc_mir_dataflow::framework::lattice::FlatSet` docs Cosmetic improvements. Adds a paragraph break, and ellipses to signify arbitrary size of a flat set.
2022-07-05Rollup merge of #98880 - topjohnwu:macos-dylib-cross, r=jyn514Guillaume Gomez-8/+6
Proper macOS libLLVM symlink when cross compiling Follow up of #98418 When cross compiling on macOS with `llvm.link-shared` enabled, the symlink creation will fail after compiling LLVM for the target architecture, because it will attempt to create the symlink in the host LLVM directory, which was already created when being built. This commit changes the symlink path to the actual LLVM output. r? `@jyn514`
2022-07-05Rollup merge of #98256 - GuillaumeGomez:whitespace-where-clause, r=notriddleGuillaume Gomez-14/+156
Fix whitespace handling after where clause Fixes #97733. You can see the result [here](https://rustdoc.crud.net/imperio/whitespace-where-clause/doc/foo/index.html). r? `@jsha`
2022-07-05Rollup merge of #96814 - RalfJung:enum-repr-align, r=oli-obkGuillaume Gomez-4/+205
Fix repr(align) enum handling `enum`, for better or worse, supports `repr(align)`. That has already caused a bug in https://github.com/rust-lang/rust/issues/92464, which was "fixed" in https://github.com/rust-lang/rust/pull/92932, but it turns out that that fix is wrong and caused https://github.com/rust-lang/rust/issues/96185. So this reverts #92932 (which fixes #96185), and attempts another strategy for fixing #92464: special-case enums when doing a cast, re-using the code to load the discriminant rather than assuming that the enum has scalar layout. This works fine for the interpreter. However, #92464 contained another testcase that was previously not in the test suite -- and after adding it, it ICEs again. This is not surprising; codegen needs the same patch that I did in the interpreter. Probably this has to happen [around here](https://github.com/rust-lang/rust/blob/d32ce37a171663048a4c4a536803434e40f52bd6/compiler/rustc_codegen_ssa/src/mir/rvalue.rs#L276). Unfortunately I don't know how to do that -- the interpreter can load a discriminant from an operand, but codegen can only do that from a place. `@oli-obk` `@eddyb` `@bjorn3` any idea?
2022-07-05Rollup merge of #95503 - jyn514:build-single-crate, r=Mark-SimulacrumGuillaume Gomez-182/+226
bootstrap: Allow building individual crates This aims to be as unintrusive as possible, but did still require adding a new `tail_args` field to all `Rustc` and `Std` steps. New library and compiler crates are added to the sysroot as they are built, since it's useful to have e.g. just alloc and not std. Fixes https://github.com/rust-lang/rust/issues/44293.
2022-07-05Add test for invalid whitespace display after where clauseGuillaume Gomez-0/+111
2022-07-05Auto merge of #98954 - ehuss:update-cargo, r=ehussbors-4/+4
Update cargo 9 commits in dbff32b27893b899ae2397f3d56d1be111041d56..c0bbd42ce5e83fe2a93e817c3f9b955492d3130a 2022-06-24 19:25:13 +0000 to 2022-07-03 13:41:11 +0000 - fix typo (rust-lang/cargo#10818) - fix(add): Don't panic with `--offline` (rust-lang/cargo#10817) - chore: Set permissions for GitHub actions (rust-lang/cargo#10816) - Bump to 0.65.0, update changelog (rust-lang/cargo#10812) - Fix zsh completions for add and locate-project (rust-lang/cargo#10810) - Bump cargo-util version. (rust-lang/cargo#10804) - Update os_info (rust-lang/cargo#10802) - Fix deserialization of check-cfg in config.toml (rust-lang/cargo#10799) - fix: bash complete `install --path` with dirs (rust-lang/cargo#10798)
2022-07-05Fix invalid add of whitespace when there is where clauseGuillaume Gomez-14/+45
2022-07-05Update cargoEric Huss-4/+4
2022-07-05Update booksEric Huss-0/+0
2022-07-05Auto merge of #98936 - matthiaskrgr:rollup-dvr0ucm, r=matthiaskrgrbors-57/+116
Rollup of 6 pull requests Successful merges: - #98860 (adjust dangling-int-ptr error message) - #98888 (interpret: fix CheckedBinOp behavior when overflow checking is disabled) - #98889 (Add regression test for #79467) - #98895 (bootstrap.py: Always use `.exe` for Windows) - #98920 (adapt issue-37945 codegen test to accept any order of ops) - #98921 (Refactor: remove a redundant mutable variable) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2022-07-05add assertsRalf Jung-0/+2
2022-07-05fix the layout of repr(align) enumsRalf Jung-4/+203
2022-07-05Edit `rustc_mir_dataflow::framework::lattice::FlatSet` docspierwill-5/+7
Cosmetic improvements. Adds a paragraph break, and ellipses to signify arbitrary size of a flat set.
2022-07-05Rollup merge of #98921 - TaKO8Ki:refactor-fulfillment-context-select, ↵Matthias Krüger-4/+3
r=Dylan-DPC Refactor: remove a redundant mutable variable
2022-07-05Rollup merge of #98920 - krasimirgg:llvm-15-issue-37945, r=nikicMatthias Krüger-2/+6
adapt issue-37945 codegen test to accept any order of ops Adapt this test to accept `icmp` operands in any order as a follow-up to https://github.com/rust-lang/rust/commit/cbbf06b0cd39dc93033568f1e65f5363cbbdebcd#commitcomment-77670922.
2022-07-05Rollup merge of #98895 - ChrisDenton:no-elves-allowed, r=jyn514Matthias Krüger-0/+4
bootstrap.py: Always use `.exe` for Windows This ensures that it will run the Windows executable if other files in the directory (such as Linux executables) have the same file name minus the extension. I've been tripped up by this a few times where both `bootstrap` and `bootstrap.exe` end up in the same directory. This PR avoids ever having to see the following message: `OSError: [WinError 193] %1 is not a valid Win32 application`
2022-07-05Rollup merge of #98889 - TaKO8Ki:add-regression-test-for-79467, r=Dylan-DPCMatthias Krüger-0/+17
Add regression test for #79467 closes #79467
2022-07-05Rollup merge of #98888 - RalfJung:interpret-checked-bin, r=oli-obkMatthias Krüger-4/+26
interpret: fix CheckedBinOp behavior when overflow checking is disabled Adjusts the interpreter to https://github.com/rust-lang/rust/pull/98738. r? `@oli-obk`
2022-07-05Rollup merge of #98860 - RalfJung:dangling-int-ptr, r=davidtwcoMatthias Krüger-47/+60
adjust dangling-int-ptr error message based on suggestions by `@saethlin` in https://github.com/rust-lang/miri/issues/2163 Fixes https://github.com/rust-lang/miri/issues/2163 I also did a bit of refactoring on this, so we have a helper method to create a `Pointer` with `None` provenance.
2022-07-05Auto merge of #98584 - lcnr:region-stuff-more-beans, r=oli-obkbors-1159/+111
continue nll transition by removing stuff r? `@jackh726` for now building on #98641
2022-07-05Auto merge of #98925 - Dylan-DPC:rollup-9185c9y, r=Dylan-DPCbors-743/+1229
Rollup of 5 pull requests Successful merges: - #97712 (ptr::copy and ptr::swap are doing untyped copies) - #98624 (lints: mostly translatable diagnostics) - #98776 (rustdoc: improve click behavior of the source code mobile full-screen "sidebar") - #98856 (Remove FIXME from rustdoc intra-doc test) - #98913 (:arrow_up: rust-analyzer) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2022-07-05adjust dangling-int-ptr error messageRalf Jung-47/+60
2022-07-05always check overflow in CheckedBinOp in CTFERalf Jung-3/+13
2022-07-05Rollup merge of #98913 - lnicola:rust-analyzer-2022-07-05, r=lnicolaDylan DPC-7/+7
:arrow_up: rust-analyzer r? ``@ghost``
2022-07-05Rollup merge of #98856 - GuillaumeGomez:rustdoc-test-rm-fixme, r=Dylan-DPCDylan DPC-12/+2
Remove FIXME from rustdoc intra-doc test Removed the FIXME. For the `extern crate`, even if `pub` exported, its documentation wasn't rendered so there is no point in keeping it. r? ``@notriddle``
2022-07-05Rollup merge of #98776 - notriddle:notriddle/mobile-sidebar-auto-close, ↵Dylan DPC-2/+55
r=GuillaumeGomez rustdoc: improve click behavior of the source code mobile full-screen "sidebar" On desktop, if you open the source code sidebar, it stays open even when you move from page to page. It used to do the same thing on mobile, but I think that's stupid. Since the file list fills the entire screen on mobile, and you can't really do anything with the currently selected file other than dismiss the "sidebar" to look at it, it's safe to assume that anybody who clicks a file in that list probably wants the list to go away so they can see it. Split out separately from #98772
2022-07-05Rollup merge of #98624 - davidtwco:translation-on-lints, r=compiler-errorsDylan DPC-708/+1114
lints: mostly translatable diagnostics As lints are created slightly differently than other diagnostics, intended to try make them translatable first and then look into the applicability of diagnostic structs but ended up just making most of the diagnostics in the crate translatable (which will still be useful if I do make a lot of them structs later anyway). r? ``@compiler-errors``
2022-07-05Rollup merge of #97712 - RalfJung:untyped, r=scottmcmDylan DPC-14/+51
ptr::copy and ptr::swap are doing untyped copies The consensus in https://github.com/rust-lang/rust/issues/63159 seemed to be that these operations should be "untyped", i.e., they should treat the data as raw bytes, should work when these bytes violate the validity invariant of `T`, and should exactly preserve the initialization state of the bytes that are being copied. This is already somewhat implied by the description of "copying/swapping size*N bytes" (rather than "N instances of `T`"). The implementations mostly already work that way (well, for LLVM's intrinsics the documentation is not precise enough to say what exactly happens to poison, but if this ever gets clarified to something that would *not* perfectly preserve poison, then I strongly assume there will be some way to make a copy that *does* perfectly preserve poison). However, I had to adjust `swap_nonoverlapping`; after ``@scottmcm's`` [recent changes](https://github.com/rust-lang/rust/pull/94212), that one (sometimes) made a typed copy. (Note that `mem::swap`, which works on mutable references, is unchanged. It is documented as "swapping the values at two mutable locations", which to me strongly indicates that it is indeed typed. It is also safe and can rely on `&mut T` pointing to a valid `T` as part of its safety invariant.) On top of adding a test (that will be run by Miri), this PR then also adjusts the documentation to indeed stably promise the untyped semantics. I assume this means the PR has to go through t-libs (and maybe t-lang?) FCP. Fixes https://github.com/rust-lang/rust/issues/63159
2022-07-05adapt issue-37945 codegen test to accept any order of opsKrasimir Georgiev-2/+6
2022-07-05Auto merge of #96862 - oli-obk:enum_cast_mir, r=RalfJungbors-143/+238
Change enum->int casts to not go through MIR casts. follow-up to https://github.com/rust-lang/rust/pull/96814 this simplifies all backends and even gives LLVM more information about the return value of `Rvalue::Discriminant`, enabling optimizations in more cases.
2022-07-05refactor: remove a redundant mutable variableTakayuki Maeda-4/+3
2022-07-05Prefer trace level instrumentation for the new noisy instrument attributesOli Scherer-5/+5
2022-07-05Add a helper method with an explicit name instead of hand rolling a match 3xOli Scherer-3/+9
2022-07-05Fix typo in src/bootstrap/bootstrap.pyChris Denton-1/+1
Co-authored-by: Marco Colombo <mar.colombo13@gmail.com>
2022-07-05Auto merge of #98910 - Dylan-DPC:rollup-9x82wdg, r=Dylan-DPCbors-446/+574
Rollup of 6 pull requests Successful merges: - #97300 (Implement `FusedIterator` for `std::net::[Into]Incoming`) - #98761 (more `need_type_info` improvements) - #98811 (Interpret: AllocRange Debug impl, and use it more consistently) - #98847 (fix interpreter validity check on Box) - #98854 (clean up the borrowing in rustc_hir_pretty) - #98873 (Suggest `#[derive(Default)]` to enums with `#[default]`) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2022-07-05:arrow_up: rust-analyzerLaurențiu Nicola-7/+7
2022-07-05Rollup merge of #98873 - ↵Dylan DPC-0/+31
TaKO8Ki:suggest-default-derive-to-enum-with-default-attribute, r=fee1-dead Suggest `#[derive(Default)]` to enums with `#[default]` fixes #95226
2022-07-05Rollup merge of #98854 - kadiwa4:rustc_hir_pretty_clean_up_borrowing, r=oli-obkDylan DPC-281/+264
clean up the borrowing in rustc_hir_pretty A whole lot of the `&`s and `ref`s were redundant. I hope doing this in one big commit is fine, because all of the changes are pretty self-contained. `@rustbot` label: +C-cleanup
2022-07-05Rollup merge of #98847 - RalfJung:box-is-special, r=oli-obkDylan DPC-12/+56
fix interpreter validity check on Box Follow-up to https://github.com/rust-lang/rust/pull/98554: avoid walking over parts of the value twice. And then move all that logic into the general visitor so not each visitor implementation has to deal with it...
2022-07-05Rollup merge of #98811 - RalfJung:interpret-alloc-range, r=oli-obkDylan DPC-63/+49
Interpret: AllocRange Debug impl, and use it more consistently The two commits are pretty independent but it did not seem worth having two PRs for them. r? ``@oli-obk``
2022-07-05Rollup merge of #98761 - lcnr:need_type_info-cont, r=estebankDylan DPC-90/+167
more `need_type_info` improvements this now deals with macros in suggestions and the source cost computation does what I want for `channel` :tada: r? ``@estebank``
2022-07-05Rollup merge of #97300 - ChayimFriedman2:patch-1, r=dtolnayDylan DPC-0/+7
Implement `FusedIterator` for `std::net::[Into]Incoming` They never return `None`, so they trivially fulfill the contract. What should I put for the stability attribute of `Incoming`?
2022-07-05Auto merge of #98872 - JakobDegen:no-invalidate, r=davidtwcobors-15/+47
Add method to mutate MIR body without invalidating CFG caches. In addition to adding this method, a handful of passes are updated to use it. There's still quite a few passes that could in principle make use of this as well, but do not at the moment because they use `VisitorMut` or `MirPatch`, which needs additional support for this. The method name is slightly unwieldy, but I don't expect anyone to be writing it a lot, and at least it says what it does. If anyone has a suggestion for a better name though, would be happy to rename. r? rust-lang/mir-opt
2022-07-04interpret: fix CheckedBinOp behavior when overflow checking is disabledRalf Jung-2/+14
2022-07-05Auto merge of #98846 - RalfJung:alignment-is-a-type-thing, r=oli-obkbors-95/+118
interpret: track place alignment together with the type, not the value This matches how I handle alignment in [MiniRust](https://github.com/RalfJung/minirust). I think it makes conceptually a lot more sense. Fixes https://github.com/rust-lang/rust/issues/63085 r? `@oli-obk`
2022-07-04Auto merge of #98904 - matthiaskrgr:rollup-05owsx7, r=matthiaskrgrbors-63/+426
Rollup of 8 pull requests Successful merges: - #98738 (Clarify MIR semantics of checked binary operations) - #98782 (Improve spans for specialization error) - #98793 (Lint against executable files in the root directory) - #98814 (rustdoc: Censor certain complex unevaluated const exprs) - #98878 (add more `rustc_pass_by_value`) - #98879 (Fix "wrap closure in parenthesis" suggestion for `async` closure) - #98886 (incr.comp.: Make split-dwarf commandline options [TRACKED].) - #98898 (Add "no-div-regex" eslint rule) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup