about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2020-05-29Fix lld detection if stage0 rustc built with custom libdirO01eg-7/+13
2020-05-28Auto merge of #72494 - lcnr:predicate-cleanup, r=nikomatsakisbors-196/+194
Pass more `Copy` types by value. There are a lot of locations where we pass `&T where T: Copy` by reference, which should both be slightly less performant and less readable IMO. This PR currently consists of three fairly self contained commits: - passes `ty::Predicate` by value and stops depending on `AsRef<ty::Predicate>`. - changes `<&List<_>>::into_iter` to iterate over the elements by value. This would break `List`s of non copy types. But as the only list constructor requires `T` to be copy anyways, I think the improved readability is worth this potential future restriction. - passes `mir::PlaceElem` by value. Mir currently has quite a few copy types which are passed by reference, e.g. `Local`. As I don't have a lot of experience working with MIR, I mostly did this to get some feedback from people who use MIR more frequently - tries to reuse `ty::Predicate` in case it did not change in some places, which should hopefully fix the regression caused by #72055 r? @nikomatsakis for the first commit, which continues the work of #72055 and makes adding `PredicateKind::ForAll` slightly more pleasant. Feel free to reassign though
2020-05-27Auto merge of #71996 - Marwes:detach_undo_log, r=nikomatsakisbors-33/+41
perf: Revert accidental inclusion of a part of #69218 This was accidentally included in #69464 after a rebase and given how much `inflate` and `keccak` stresses the obligation forest seems like a likely culprit to the regression in those benchmarks. (It is necessary in #69218 as obligation forest needs to accurately track the root variables or unifications will get lost)
2020-05-27Auto merge of #72601 - JohnTitor:deps, r=Mark-Simulacrumbors-5/+0
Update transitive dependencies to remove some deps Similar to #71919, this removes some (duplicate) dependencies.
2020-05-27Auto merge of #72639 - Dylan-DPC:rollup-76upj51, r=Dylan-DPCbors-21/+141
Rollup of 6 pull requests Successful merges: - #72348 (Fix confusing error message for comma typo in multiline statement) - #72533 (Resolve UB in Arc/Weak interaction (2)) - #72548 (Add test for old compiler ICE when using `Borrow`) - #72606 (Small cell example update) - #72610 (Remove font-display settings) - #72626 (Add remark regarding DoubleEndedIterator) Failed merges: r? @ghost
2020-05-27Rollup merge of #72626 - phimuemue:doubleendediter_doc, r=dtolnayDylan DPC-0/+26
Add remark regarding DoubleEndedIterator While reviewing https://github.com/rust-itertools/itertools/pull/442/commits/14293bd18f01b6bd4856816222f808f46603eccd#diff-2c16d2ada06ad2fd1fc754679646d471, I realized that a `DoubleEndedIterator` may yield different elements depending on whether it is traversed forwards or backwards. (Not only the *order*, but possibly also the yielded values.) I found this remarkable, but could not find anything in the current docs, so I thought it may be worth mentioning this explicitly. Unfortunately, I could not test these changes locally (`rustdoc` complains about `unresolved import`). Sorry if this causes headache. If I should change something, please let me know. If it seems too trivial, feel free to just close this PR.
2020-05-27Rollup merge of #72610 - GuillaumeGomez:revert-unwanted-css-changes, r=Dylan-DPCDylan DPC-9/+0
Remove font-display settings Since for the moment, the result isn't as expected since #72092 when not using docs locally, let's revert them. r? @Dylan-DPC
2020-05-27Rollup merge of #72606 - GuillaumeGomez:cell-example-update, r=Dylan-DPCDylan DPC-3/+3
Small cell example update r? @Dylan-DPC
2020-05-27Rollup merge of #72548 - rossmacarthur:add-mcve-for-50687, r=nikomatsakisDylan DPC-0/+57
Add test for old compiler ICE when using `Borrow` The original issue was caused by implementing `Borrow` on a local type and using the tokio-reactor crate which had this impl: https://github.com/tokio-rs/tokio/blob/tokio-0.1.4/tokio-reactor/src/poll_evented.rs#L547-L577 This causes an ICE on Rust 1.27.0: ```console $ RUSTUP_TOOLCHAIN=1.27.0 rustc src/test/ui/issues/issue-50687-ice-on-borrow.rs error: internal compiler error: librustc/traits/structural_impls.rs:180: impossible case reached thread 'main' panicked at 'Box<Any>', librustc_errors/lib.rs:554:9 note: Run with `RUST_BACKTRACE=1` for a backtrace. error: aborting due to previous error note: the compiler unexpectedly panicked. this is a bug. note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports note: rustc 1.27.0 (3eda71b00 2018-06-19) running on x86_64-apple-darwin ``` Closes #50687
2020-05-27Rollup merge of #72533 - Diggsey:db-fix-arc-ub2, r=dtolnayDylan DPC-9/+26
Resolve UB in Arc/Weak interaction (2) Use raw pointers to avoid making any assertions about the data field. Follow up from #72479, see that PR for more detail on the motivation. @RalfJung I was able to avoid a lot of the changes to `Weak`, by making a helper type (`WeakInner`) - because of auto-deref and because the fields have the same name, the rest of the code continues to compile.
2020-05-27Rollup merge of #72348 - chrissimpkins:fix-72253, r=estebankDylan DPC-0/+29
Fix confusing error message for comma typo in multiline statement Fixes #72253. Expands on the issue with a colon typo check. r? @estebank cc @ehuss
2020-05-27Auto merge of #72596 - ehuss:update-cargo, r=ehussbors-0/+0
Update cargo 7 commits in 500b2bd01c958f5a33b6aa3f080bea015877b83c..9fcb8c1d20c17f51054f7aa4e08ff28d381fe096 2020-05-18 17:12:54 +0000 to 2020-05-25 16:25:36 +0000 - Bump to semver 0.10 for `VersionReq::is_exact` (rust-lang/cargo#8279) - Fix panic with `cargo tree --target=all -Zfeatures=all` (rust-lang/cargo#8269) - Fix nightly tests with llvm-tools. (rust-lang/cargo#8272) - Provide better error messages for a bad `patch`. (rust-lang/cargo#8248) - Try installing exact versions before updating (rust-lang/cargo#8022) - Document unstable `strip` profile feature (rust-lang/cargo#8262) - Add option to strip binaries (rust-lang/cargo#8246)
2020-05-26Auto merge of #72627 - Dylan-DPC:rollup-bavnoq5, r=Dylan-DPCbors-322/+677
Rollup of 6 pull requests Successful merges: - #72270 (add a lint against references to packed fields) - #72294 (JS cleanup) - #72342 (Warn about unused crate deps) - #72401 (Use correct function for detecting `const fn` in unsafety checking) - #72581 (Allow unlabeled breaks from desugared `?` in labeled blocks) - #72592 (Update books) Failed merges: r? @ghost
2020-05-26improve error message for unexpected comma token in multiline blockChris Simpkins-0/+29
confusing diagnostics, issue #72253 add test for confusing error message, issue-72253 remove is_multiline check, refactor to self.expect(&token:Semi) update issue-72253 tests return Ok
2020-05-26Rollup merge of #72592 - ehuss:update-books, r=ehussDylan DPC-0/+0
Update books ## reference 7 commits in 892b928b565e35d25b6f9c47faee03b94bc41489..becdca9477c9eafa96a4eea5156fe7a2730d9dd2 2020-05-11 11:13:51 -0700 to 2020-05-21 21:08:02 +0100 - Update tuple index token. (rust-lang-nursery/reference#814) - Fixes minor errors (rust-lang-nursery/reference#818) - Update that macros can be deprecated. (rust-lang-nursery/reference#813) - work on char/str descriptions (rust-lang-nursery/reference#809) - cfg_attr needs a valid predicate (rust-lang-nursery/reference#812) - Account for removal of UB in float-to-int casts (rust-lang-nursery/reference#810) - Fix stray plus signs. (rust-lang-nursery/reference#811) ## book 6 commits in 6247be15a7f7509559f7981ee2209b9e0cc121df..e8a4714a9d8a6136a59b8e63544e149683876e36 2020-05-03 10:55:09 -0500 to 2020-05-25 10:29:27 -0500 - code is 1024 now, not 512 - Clean up install a bit - We don't need build.sh anymore - Fix CI status in README - Port to github actions (rust-lang/book#2337) - operating system -&gt; allocator ## rust-by-example 5 commits in ab072b14393cbd9e8a1d1d75879bf51e27217bbb..7aa82129aa23e7e181efbeb8da03a2a897ef6afc 2020-05-09 08:46:39 -0300 to 2020-05-25 14:54:26 -0300 - Person of age 0 is alive (rust-lang/rust-by-example#1348) - Gramatical fix in std/rc.md (rust-lang/rust-by-example#1347) - Capture example should use String (rust-lang/rust-by-example#1331) - Fix empty bound examples (rust-lang/rust-by-example#1343) - Fix an inline comment in macros/repeat.md (rust-lang/rust-by-example#1344) ## edition-guide 1 commits in 49270740c7a4bff2763e6bc730b191d45b7d5167..0a8ab5046829733eb03df0738c4fafaa9b36b348 2020-05-11 08:50:29 -0500 to 2020-05-18 08:34:23 -0500 - Changes for Rust 1.32 & setup for edition-next (rust-lang-nursery/edition-guide#213) ## embedded-book 3 commits in 366c50a03bed928589771eba8a6f18e0c0c01d23..5555a97f04ad7974ac6fb8fb47c267c4274adf4a 2020-05-07 09:04:42 +0000 to 2020-05-25 18:00:51 +0000 - Remove reference to const-fn feature of cortex-m. Closes rust-embedded/book#242. (rust-embedded/book#243) - Spelling: Appplication -&gt; Application (rust-embedded/book#241) - QEMU debugging updates (rust-embedded/book#239)
2020-05-26Rollup merge of #72581 - samrat:allow-desugared-break-in-labeled-block, ↵Dylan DPC-1/+14
r=davidtwco Allow unlabeled breaks from desugared `?` in labeled blocks `?` is desugared into a `break` targeting the innermost `try` scope in which it resides. The `break` however will not have a label. https://github.com/rust-lang/rust/blob/master/src/librustc_ast_lowering/expr.rs#L1560 Since the `target` of the `break` is known, the compiler should not complain about an unlabeled jump for `break`s desugared from `?`. Closes https://github.com/rust-lang/rust/issues/72483
2020-05-26Rollup merge of #72401 - ecstatic-morse:issue-72394, r=eddybDylan DPC-2/+26
Use correct function for detecting `const fn` in unsafety checking Resolves #72394.
2020-05-26Rollup merge of #72342 - jsgf:warn-unused-deps, r=petrochenkovDylan DPC-0/+188
Warn about unused crate deps Implements #57274 by adding -Wunused-crate-dependencies. This will warn about any `--extern` option on the command line which isn't referenced by the crate source either via `use` or `extern crate`. Crates which are added for some side effect but are otherwise unreferenced - such as for symbols they define - the warning can be suppressed with `use somecrate as _;`. If a crate has multiple aliases (eg using `foo = { package = "bar" }` in `Cargo.toml`), then it will warn about each unused alias. This does not consider crate added by some other means than `--extern`, including the standard library. It also doesn't consider any crate without `add_prelude` set (though I'm not sure about this). Unfortunately this probably [does not yet work well with Cargo](https://github.com/rust-lang/rust/issues/57274#issuecomment-624839355) as it will over-specify crates, causing spurious warnings. As a result, this lint is "allow" by default and must be explicitly enabled either via `#![warn(unused_crate_deps)]` or with `-Wunused-crate-deps`.
2020-05-26Rollup merge of #72294 - GuillaumeGomez:js-cleanup, r=kinnisonDylan DPC-299/+305
JS cleanup The goal here is just to improve the source code a bit. I recommend to review one commit at a time, otherwise it might not make much sense. :) The biggest commit is the second one: to prevent to have "global" variables declared in `main.js` (and thus prevent name conflict or overwriting), I moved such code into anonymous functions. r? @kinnison cc @rust-lang/rustdoc
2020-05-26Rollup merge of #72270 - RalfJung:lint-ref-to-packed, r=oli-obkDylan DPC-20/+144
add a lint against references to packed fields Creating a reference to an insufficiently aligned packed field is UB and should be disallowed, both inside and outside of `unsafe` blocks. However, currently there is no stable alternative (https://github.com/rust-lang/rust/issues/64490) so all we do right now is have a future incompatibility warning when doing this outside `unsafe` (https://github.com/rust-lang/rust/issues/46043). This adds an allow-by-default lint. @retep998 suggested this can help early adopters avoid issues. It also means we can then do a crater run where this is deny-by-default as suggested by @joshtriplett. I guess the main thing to bikeshed is the lint name. I am not particularly happy with "packed_references" as it sounds like the packed field has reference type. I chose this because it is similar to "safe_packed_borrows". What about "reference_to_packed" or "unaligned_reference" or so?
2020-05-26Add remark regarding DoubleEndedIteratorphilipp-0/+26
2020-05-26Auto merge of #71931 - alexcrichton:reproducible-macos, r=eddybbors-2/+12
Export ZERO_AR_DATE for macos linker invocations This commit attempts to improve reproducibility of builds on macOS by exporting the `ZERO_AR_DATE=1` environment variable for all invocations of the linker. While it looks like this env var is targeted at just the `ar` command (which does actually read this) it appears that recent-ish versions of the linker *also* read this environment variable. This env var forces the linker to set a deterministic zero value for the mtime in the N_OSO field of the object file. Currently it's believe that older versions of the linker will simply ignore this env var, while newer versions will read it and produce a deterministic output for compilations with debuginfo. Closes #47086 Closes #66568
2020-05-26Export ZERO_AR_DATE for macos linker invocationsAlex Crichton-2/+12
This commit attempts to improve reproducibility of builds on macOS by exporting the `ZERO_AR_DATE=1` environment variable for all invocations of the linker. While it looks like this env var is targeted at just the `ar` command (which does actually read this) it appears that recent-ish versions of the linker *also* read this environment variable. This env var forces the linker to set a deterministic zero value for the mtime in the N_OSO field of the object file. Currently it's believe that older versions of the linker will simply ignore this env var, while newer versions will read it and produce a deterministic output for compilations with debuginfo. Closes #47086 Closes #66568
2020-05-26Import missing functions from storage.jsGuillaume Gomez-1/+1
2020-05-26Improve formattingGuillaume Gomez-2/+2
2020-05-26Remove font-display settingsGuillaume Gomez-9/+0
2020-05-26Auto merge of #71900 - GuillaumeGomez:clean-up-rustdoc, r=ollie27,kinnisonbors-50/+51
Clean up rustdoc source code Fixes #70498. r? @kinnison cc @rust-lang/rustdoc
2020-05-26Fix eslint lintsGuillaume Gomez-34/+34
2020-05-26Reexported functions are now declared directly as "windows" fieldGuillaume Gomez-11/+6
2020-05-26Move "global" code into anonymous functionsGuillaume Gomez-248/+258
2020-05-26Move focusSearchBar and defocusSearchBar functions to the top of the file ↵Guillaume Gomez-10/+11
with other functions
2020-05-26Small cell example updateGuillaume Gomez-3/+3
2020-05-26Update allowed crates listYuki Okushi-5/+0
2020-05-26Auto merge of #72093 - jonas-schievink:unmut, r=oli-obkbors-11/+116
Avoid `Operand::Copy` with `&mut T` This is generally unsound to do, as the copied type is assumed to implement `Copy`. Closes https://github.com/rust-lang/rust/issues/46420
2020-05-25Implement warning for unused dependencies.Jeremy Fitzhardinge-0/+188
This will print a diagnostic for crates which are mentioned as `--extern` arguments on the command line, but are never referenced from the source. This diagnostic is controlled by `-Wunused-crate-dependencies` or `#![warn(unused_crate_dependencies)]` and is "allow" by default. There are cases where certain crates need to be linked in but are not directly referenced - for example if they are providing symbols for C linkage. In this case the warning can be suppressed with `use needed_crate as _;`. Thanks to @petrochenkov for simplified core. Resolves issue #57274
2020-05-26Auto merge of #71487 - rcoh:71471-shebang, r=petrochenkovbors-7/+154
Fix bug in shebang handling Shebang handling was too agressive in stripping out the first line in cases where it is actually _not_ a shebang, but instead, valid rust (#70528). This is a second attempt at resolving this issue (the first attempt was reverted, for, among other reasons, causing an ICE in certain cases (#71372, #71471). The behavior is now codified by a number of UI tests, but simply: For the first line to be a shebang, the following must all be true: 1. The line must start with `#!` 2. The line must contain a non-whitespace character after `#!` 3. The next character in the file, ignoring comments & whitespace must not be `[` I believe this is a strict superset of what we used to allow, so perhaps a crater run is unnecessary, but probably not a terrible idea. Fixes #70528
2020-05-25Update cargoEric Huss-0/+0
2020-05-25Update booksEric Huss-0/+0
2020-05-25Rollup merge of #72538 - rakshith-ravi:refactor/remove-const-query, r=oli-obkDylan DPC-51/+7
Removed all instances of const_field. Fixes #72264 r? @oli-obk
2020-05-25Rollup merge of #72451 - ecstatic-morse:nrvo-type-mismatch, r=matthewjasperDylan DPC-12/+6
Perform MIR NRVO even if types don't match This is the most straightforward way to resolve #72428, but it could cause problems in codegen since the type of `_0` may no longer match the return type of the body.
2020-05-25Rollup merge of #72450 - csmoe:issue-72442, r=oli-obkDylan DPC-1/+48
Fix ice-#72442 Closes #72442 Closes #72426 r? @oli-obk
2020-05-25Rollup merge of #72424 - RalfJung:mir-print-ice, r=oli-obkDylan DPC-10/+20
fix ICE when debug-printing MIR Fixes https://github.com/rust-lang/rust/issues/72105 This bug also makes debugging Miri harder as `MIRI_LOG=info` ICEs.
2020-05-25Rollup merge of #72061 - lcnr:const-inference-test, r=eddybDylan DPC-4/+74
add regression tests for stalled_on const vars closes #70180 Afaict this has been fixed sometime after #70213 `trait_ref_type_vars` correctly adds const infers and I did not find any remaining `FIXME`s which correspond to this issue. https://github.com/rust-lang/rust/blob/7c59a81a5fcbaaca311f744cd7c68d99bfbb05d3/src/librustc_trait_selection/traits/fulfill.rs#L555-L557 Added both examples from the issue as regression tests and renamed `trait_ref_type_vars` -> `trait_ref_infer_vars`. r? @eddyb
2020-05-25Always validate MIR after optimizingJonas Schievink-0/+5
2020-05-26Allow unlabeled breaks from desugared `?` in labeled blocksSamrat Man Singh-1/+14
2020-05-25Add a small MIR validation passJonas Schievink-1/+96
2020-05-25Avoid `Operand::Copy` with `&mut T`Jonas Schievink-10/+15
2020-05-25Auto merge of #72575 - Dylan-DPC:rollup-zo679hv, r=Dylan-DPCbors-11/+171
Rollup of 4 pull requests Successful merges: - #72153 (exhaustively check `ty::Kind` during structural match checking) - #72308 (Emit a better diagnostic when function actually has a 'self' parameter) - #72560 (Enable `glacier` command via triagebot) - #72567 (Clean up E0608 explanation) Failed merges: r? @ghost
2020-05-25Rollup merge of #72567 - GuillaumeGomez:cleanup-e0608, r=Dylan-DPCDylan DPC-1/+1
Clean up E0608 explanation r? @Dylan-DPC
2020-05-25Rollup merge of #72308 - Aaron1011:fix/hygiene-error-message, r=matthewjasperDylan DPC-4/+52
Emit a better diagnostic when function actually has a 'self' parameter Fixes #66898 When we are unable to resolve a reference to `self`, we current assume that the containing function doesn't have a `self` parameter, and emit an error message accordingly. However, if the reference to `self` was created by a macro invocation, then resolution will correctly fail, due to hygiene. In this case, we don't want to tell the user that the containing fuction doesn't have a 'self' paramter if it actually has one. This PR checks for the precense of a 'self' parameter, and adjusts the error message we emit accordingly. TODO: The exact error message we emit could probably be improved. Should we explicitly mention hygiene?