]> git.lizzy.rs Git - rust.git/log
rust.git
3 years agoRename `whence` to `span`
Camelid [Fri, 25 Sep 2020 21:59:00 +0000 (14:59 -0700)]
Rename `whence` to `span`

It's called `span` elsewhere in the compiler and `span` is also less
surprising. `whence` is whimsical, but not super clear :)

3 years agoAuto merge of #77198 - jonas-schievink:rollup-i59i41h, r=jonas-schievink
bors [Fri, 25 Sep 2020 19:35:33 +0000 (19:35 +0000)]
Auto merge of #77198 - jonas-schievink:rollup-i59i41h, r=jonas-schievink

Rollup of 15 pull requests

Successful merges:

 - #76932 (Relax promises about condition variable.)
 - #76973 (Unstably allow assume intrinsic in const contexts)
 - #77005 (BtreeMap: refactoring around edges)
 - #77066 (Fix dest prop miscompilation around references)
 - #77073 (dead_code: look at trait impls even if they don't contain items)
 - #77086 (Include libunwind in the rust-src component.)
 - #77097 (Make [].as_[mut_]ptr_range() (unstably) const.)
 - #77106 (clarify that `changelog-seen = 1` goes to the beginning of config.toml)
 - #77120 (Add `--keep-stage-std` to `x.py` for keeping only standard library artifacts)
 - #77126 (Invalidate local LLVM cache less often)
 - #77146 (Install std for non-host targets)
 - #77155 (remove enum name from ImplSource variants)
 - #77176 (Removing erroneous semicolon in transmute documentation)
 - #77183 (Allow multiple allow_internal_unstable attributes)
 - #77189 (Remove extra space from vec drawing)

Failed merges:

r? `@ghost`

3 years agoRollup merge of #77189 - pickfire:patch-5, r=Mark-Simulacrum
Jonas Schievink [Fri, 25 Sep 2020 17:42:54 +0000 (19:42 +0200)]
Rollup merge of #77189 - pickfire:patch-5, r=Mark-Simulacrum

Remove extra space from vec drawing

3 years agoRollup merge of #77183 - bugadani:issue-77088, r=varkor
Jonas Schievink [Fri, 25 Sep 2020 17:42:52 +0000 (19:42 +0200)]
Rollup merge of #77183 - bugadani:issue-77088, r=varkor

Allow multiple allow_internal_unstable attributes

Fixes #77088

3 years agoRollup merge of #77176 - austinkeeley:intrinsics-documentatation-error, r=jyn514
Jonas Schievink [Fri, 25 Sep 2020 17:42:50 +0000 (19:42 +0200)]
Rollup merge of #77176 - austinkeeley:intrinsics-documentatation-error, r=jyn514

Removing erroneous semicolon in transmute documentation

There is a semicolon in the example code that causes the expected value to not be returned.

3 years agoRollup merge of #77155 - lcnr:ImplSource, r=ecstatic-morse
Jonas Schievink [Fri, 25 Sep 2020 17:42:48 +0000 (19:42 +0200)]
Rollup merge of #77155 - lcnr:ImplSource, r=ecstatic-morse

remove enum name from ImplSource variants

This is quite a lot cleaner in my opinion.

3 years agoRollup merge of #77146 - Mark-Simulacrum:xpyinstall, r=alexcrichton
Jonas Schievink [Fri, 25 Sep 2020 17:42:46 +0000 (19:42 +0200)]
Rollup merge of #77146 - Mark-Simulacrum:xpyinstall, r=alexcrichton

Install std for non-host targets

It seems reasonable that when configuring various targets you'd expect all of them to get std installed, even if you're not building compiler toolchains for each of those.

cc #76990

r? @alexcrichton

3 years agoRollup merge of #77126 - Mark-Simulacrum:llvm-less-often, r=alexcrichton
Jonas Schievink [Fri, 25 Sep 2020 17:42:44 +0000 (19:42 +0200)]
Rollup merge of #77126 - Mark-Simulacrum:llvm-less-often, r=alexcrichton

Invalidate local LLVM cache less often

This avoids a download of LLVM after every rebase. The downside to this is that if we land some patch affecting LLVM built in CI that breaks this option, but that PR does not update the LLVM submodule, we'll likely not notice until the next update -- but this seems unlikely to happen in practice and I am not personally worried about it.

r? @alexcrichton

3 years agoRollup merge of #77120 - ecstatic-morse:keep-stage-std, r=Mark-Simulacrum
Jonas Schievink [Fri, 25 Sep 2020 17:42:43 +0000 (19:42 +0200)]
Rollup merge of #77120 - ecstatic-morse:keep-stage-std, r=Mark-Simulacrum

Add `--keep-stage-std` to `x.py` for keeping only standard library artifacts

Unlike `--keep-stage 0`, `--keep-stage-std 0` will allow the stage 0 compiler artifacts (i.e., stage1/bin/rustc) to be rebuilt if it has changed. This allows contributors to iterate on later stages of the compiler in tandem with the standard library without needing to to rebuild the entire compiler. I often run into this when working on const-checking, since I may need to add a feature gate or make a small tweak to the standard library.

3 years agoRollup merge of #77106 - matthiaskrgr:changelog_seen, r=Mark-Simulacrum
Jonas Schievink [Fri, 25 Sep 2020 17:42:41 +0000 (19:42 +0200)]
Rollup merge of #77106 - matthiaskrgr:changelog_seen, r=Mark-Simulacrum

clarify that `changelog-seen = 1` goes to the beginning of config.toml

Fixes #77105

3 years agoRollup merge of #77097 - fusion-engineering-forks:slice-ptr-range-const-fn, r=oli-obk
Jonas Schievink [Fri, 25 Sep 2020 17:42:39 +0000 (19:42 +0200)]
Rollup merge of #77097 - fusion-engineering-forks:slice-ptr-range-const-fn, r=oli-obk

Make [].as_[mut_]ptr_range() (unstably) const.

Gated behind `const_ptr_offset`, as suggested by https://github.com/rust-lang/rust/issues/65807#issuecomment-697229404

This also marks `[].as_mut_ptr()` as const, because it's used by `as_mut_ptr_range`. I gated it behind the same feature, because I figured it's not worth adding a separate tracking issue for const `as_mut_ptr`.

3 years agoRollup merge of #77086 - ehuss:src-libunwind, r=Mark-Simulacrum
Jonas Schievink [Fri, 25 Sep 2020 17:42:37 +0000 (19:42 +0200)]
Rollup merge of #77086 - ehuss:src-libunwind, r=Mark-Simulacrum

Include libunwind in the rust-src component.

Some targets, such as musl, need the libunwind source to build the unwind crate (referenced [here](https://github.com/rust-lang/rust/blob/0da58007451a154da2480160429e1604a1f5f0ec/library/unwind/build.rs#L142)).

Fixes rust-lang/wg-cargo-std-aware#59

3 years agoRollup merge of #77073 - lcnr:ty-trait-param, r=matthewjasper
Jonas Schievink [Fri, 25 Sep 2020 17:42:35 +0000 (19:42 +0200)]
Rollup merge of #77073 - lcnr:ty-trait-param, r=matthewjasper

dead_code: look at trait impls even if they don't contain items

fixes #70225

3 years agoRollup merge of #77066 - jonas-schievink:dest-prop-borrow, r=oli-obk
Jonas Schievink [Fri, 25 Sep 2020 17:42:33 +0000 (19:42 +0200)]
Rollup merge of #77066 - jonas-schievink:dest-prop-borrow, r=oli-obk

Fix dest prop miscompilation around references

Closes https://github.com/rust-lang/rust/issues/77002

3 years agoRollup merge of #77005 - ssomers:btree_cleanup_3, r=Mark-Simulacrum
Jonas Schievink [Fri, 25 Sep 2020 17:42:31 +0000 (19:42 +0200)]
Rollup merge of #77005 - ssomers:btree_cleanup_3, r=Mark-Simulacrum

BtreeMap: refactoring around edges

Parts chipped off a more daring effort, that the btree benchmarks judge to be performance-neutral.

r? @Mark-Simulacrum

3 years agoRollup merge of #76973 - lzutao:unstably-const-assume, r=oli-obk
Jonas Schievink [Fri, 25 Sep 2020 17:42:29 +0000 (19:42 +0200)]
Rollup merge of #76973 - lzutao:unstably-const-assume, r=oli-obk

Unstably allow assume intrinsic in const contexts

Not sure much about this usage because there are concerns
about [blocking  optimization][1] and [slowing down LLVM][2] when using `assme` intrinsic
in inline functions.
But since Oli suggested in https://github.com/rust-lang/rust/issues/76960#issuecomment-695772221,
here we are.

[1]: https://github.com/rust-lang/rust/pull/54995#issuecomment-429302709
[2]: https://github.com/rust-lang/rust/issues/49572#issuecomment-589615423

3 years agoRollup merge of #76932 - fusion-engineering-forks:condvar-promise, r=sfackler
Jonas Schievink [Fri, 25 Sep 2020 17:42:28 +0000 (19:42 +0200)]
Rollup merge of #76932 - fusion-engineering-forks:condvar-promise, r=sfackler

Relax promises about condition variable.

For quite a while now, there have been plans to at some point use parking_lot or some other more efficient implementation of mutexes and condition variables. Right now, Mutex and CondVar both Box the 'real' mutex/condvar inside, to give it a stable address. This was done because implementations like pthread and Windows critical sections may not be moved. More efficient implementations based on futexes, WaitOnAddress, Windows SRW locks, parking_lot, etc. may be moved (while not borrowed), so wouldn't need boxing.

However, not boxing them (which would be great goal to achieve), breaks a promise std currently makes about CondVar. CondVar promises to panic when used with different mutexes, to ensure consistent behaviour on all platforms. To this check, a mutex is considered 'the same' if the address of the 'real mutex' in the Box is the same. This address doesn't change when moving a `std::mutex::Mutex` object, effectively giving it an identity that survives moves of the Mutex object. If we ever switch to a non-boxed version, they no longer carry such an identity, and this check can no longer be made.

Four options:
1. Always box mutexes.
2. Add a `MutexId` similar to `ThreadId`. Making mutexes bigger, and making it hard to ever have a `const fn new` for them.
3. Making the requirement of CondVar stricter: panic if the Mutex object itself moved.
4. Making the promise of CondVar weaker: don't promise to panic.

1, 2, and 3 seem like bad options. This PR updates the documentation for 4.

3 years agoAuto merge of #77157 - tmiasko:simplify-cfg-dup, r=jonas-schievink
bors [Fri, 25 Sep 2020 17:27:52 +0000 (17:27 +0000)]
Auto merge of #77157 - tmiasko:simplify-cfg-dup, r=jonas-schievink

Remove duplicated SimplifyCfg pass

3 years agoRemove extra space from vec drawing
Ivan Tham [Fri, 25 Sep 2020 15:20:22 +0000 (23:20 +0800)]
Remove extra space from vec drawing

3 years agoAuto merge of #73453 - erikdesjardins:tuplayout, r=eddyb
bors [Fri, 25 Sep 2020 14:42:20 +0000 (14:42 +0000)]
Auto merge of #73453 - erikdesjardins:tuplayout, r=eddyb

Ignore ZST offsets when deciding whether to use Scalar/ScalarPair layout

This is important because Scalar/ScalarPair layout previously would not be used if any ZST had nonzero offset.
For example, before this change, only `((), u128)` would be laid out like `u128`, not `(u128, ())`.

Fixes #63244

3 years agoAllow multiple allow_internal_unstable attributes
Dániel Buga [Fri, 25 Sep 2020 12:40:16 +0000 (14:40 +0200)]
Allow multiple allow_internal_unstable attributes

Co-authored-by: varkor <github@varkor.com>
3 years agoAuto merge of #77152 - vandenheuvel:update_chalk_further, r=jackh726
bors [Fri, 25 Sep 2020 12:22:05 +0000 (12:22 +0000)]
Auto merge of #77152 - vandenheuvel:update_chalk_further, r=jackh726

Update chalk to 0.28.0

3 years agoAuto merge of #77041 - lcnr:const-eval-perf, r=ecstatic-morse
bors [Fri, 25 Sep 2020 10:14:47 +0000 (10:14 +0000)]
Auto merge of #77041 - lcnr:const-eval-perf, r=ecstatic-morse

perf: move cold path of `process_obligations` into a separate function

cc #76575

This probably won't matter too much in the long run once #69218 is merged so we may not want to merge this.

r? `@ecstatic-morse`

3 years agoBTreeMap: various tweaks
Stein Somers [Sun, 9 Aug 2020 10:25:20 +0000 (12:25 +0200)]
BTreeMap: various tweaks

3 years agoBTreeMap: introduce edge methods similar to those of keys and values
Stein Somers [Sun, 9 Aug 2020 10:25:20 +0000 (12:25 +0200)]
BTreeMap: introduce edge methods similar to those of keys and values

3 years agoBTreeMap: refactor correct_childrens_parent_links
Stein Somers [Sun, 9 Aug 2020 10:25:20 +0000 (12:25 +0200)]
BTreeMap: refactor correct_childrens_parent_links

3 years agoAuto merge of #77144 - flip1995:clippyup, r=Manishearth
bors [Fri, 25 Sep 2020 06:23:55 +0000 (06:23 +0000)]
Auto merge of #77144 - flip1995:clippyup, r=Manishearth

Update Clippy

Bi-weekly Clippy update.

This includes a `Cargo.lock` update (d445493479711389f4dea3a0f433041077ba2088), so probably needs `rollup=never`.

r? `@Manishearth`

3 years agoAuto merge of #76844 - simonvandel:fix-76803, r=wesleywiser
bors [Fri, 25 Sep 2020 04:17:03 +0000 (04:17 +0000)]
Auto merge of #76844 - simonvandel:fix-76803, r=wesleywiser

Fix #76803 miscompilation

Fixes #76803
Seems like it was an oversight that the discriminant value being set was not compared to the target value from the SwitchInt, as a comment says this is a requirement for the optimization to be sound.

r? `@wesleywiser` since you are probably familiar with the optimization and made #76837 to workaround the bug

3 years agoRemoving erroneous semicolon
Austin Keeley [Fri, 25 Sep 2020 04:03:59 +0000 (00:03 -0400)]
Removing erroneous semicolon

3 years agoAuto merge of #77172 - jonas-schievink:rollup-a041rou, r=jonas-schievink
bors [Fri, 25 Sep 2020 01:56:06 +0000 (01:56 +0000)]
Auto merge of #77172 - jonas-schievink:rollup-a041rou, r=jonas-schievink

Rollup of 15 pull requests

Successful merges:

 - #75438 (Use adaptive SVG favicon for rustdoc like other rust sites)
 - #76304 (Make delegation methods of `std::net::IpAddr` unstably const)
 - #76724 (Allow a unique name to be assigned to dataflow graphviz output)
 - #76978 (Documented From impls in std/sync/mpsc/mod.rs)
 - #77044 (Liballoc bench vec use mem take not replace)
 - #77050 (Typo fix: "satsify" -> "satisfy")
 - #77074 (add array::from_ref)
 - #77078 (Don't use an if guard to check equality with a constant)
 - #77079 (Use `Self` in docs when possible)
 - #77081 (Merge two almost identical match arms)
 - #77121 (Updated html_root_url for compiler crates)
 - #77136 (Suggest `const_mut_refs`, not `const_fn` for mutable references in `const fn`)
 - #77160 (Suggest `const_fn_transmute`, not `const_fn`)
 - #77164 (Remove workaround for deref issue that no longer exists.)
 - #77165 (Followup to #76673)

Failed merges:

r? `@ghost`

3 years agoRollup merge of #77165 - simonvandel:do-not-fire-on-drop-and-replace, r=oli-obk
Jonas Schievink [Fri, 25 Sep 2020 00:29:52 +0000 (02:29 +0200)]
Rollup merge of #77165 - simonvandel:do-not-fire-on-drop-and-replace, r=oli-obk

Followup to #76673

Resolves https://github.com/rust-lang/rust/pull/76673#discussion_r494426303
r? @tmiasko

3 years agoRollup merge of #77164 - fusion-engineering-forks:no-more-funny-underscores, r=Mark...
Jonas Schievink [Fri, 25 Sep 2020 00:29:51 +0000 (02:29 +0200)]
Rollup merge of #77164 - fusion-engineering-forks:no-more-funny-underscores, r=Mark-Simulacrum

Remove workaround for deref issue that no longer exists.

The double underscores were used to work around issue #12808, which was solved in 2016.

3 years agoRollup merge of #77160 - ecstatic-morse:const-fn-transmute-suggestion, r=oli-obk
Jonas Schievink [Fri, 25 Sep 2020 00:29:49 +0000 (02:29 +0200)]
Rollup merge of #77160 - ecstatic-morse:const-fn-transmute-suggestion, r=oli-obk

Suggest `const_fn_transmute`, not `const_fn`

More fallout from #76850 in the vein of #77134. The fix is the same. I looked through the structured errors file and didn't see any more of this kind of diagnostics bug.

r? @oli-obk

3 years agoRollup merge of #77136 - ecstatic-morse:issue-77134, r=oli-obk
Jonas Schievink [Fri, 25 Sep 2020 00:29:47 +0000 (02:29 +0200)]
Rollup merge of #77136 - ecstatic-morse:issue-77134, r=oli-obk

Suggest `const_mut_refs`, not `const_fn` for mutable references in `const fn`

Resolves #77134.

Prior to #76850, most uses of `&mut` in `const fn` ~~required~~ involved two feature gates, `const_mut_refs` and `const_fn`. The first allowed all mutable borrows of locals. The second allowed only locals, arguments and return values whose types contained `&mut`. I switched the second check to the `const_mut_refs` gate. However, I forgot update the error message with the new suggestion.

Alternatively, we could revert to having two different feature gates for this. OP's code never borrows anything mutably, so it didn't need `const_mut_refs` in the past, only `const_fn`. I'd prefer to keep everything under a single gate, however.

r? @oli-obk

3 years agoRollup merge of #77121 - duckymirror:html-root-url, r=jyn514
Jonas Schievink [Fri, 25 Sep 2020 00:29:45 +0000 (02:29 +0200)]
Rollup merge of #77121 - duckymirror:html-root-url, r=jyn514

Updated html_root_url for compiler crates

Closes #77103

r? @jyn514

3 years agoRollup merge of #77081 - LingMan:patch-1, r=jonas-schievink
Jonas Schievink [Fri, 25 Sep 2020 00:29:44 +0000 (02:29 +0200)]
Rollup merge of #77081 - LingMan:patch-1, r=jonas-schievink

Merge two almost identical match arms

3 years agoRollup merge of #77079 - poliorcetics:more-self-in-docs, r=jyn514
Jonas Schievink [Fri, 25 Sep 2020 00:29:42 +0000 (02:29 +0200)]
Rollup merge of #77079 - poliorcetics:more-self-in-docs, r=jyn514

Use `Self` in docs when possible

Fixes #76542.

I used `rg '\s*//[!/]\s+fn [\w_]+\(&?self, ' .` in `library/` to find instances, I found some with that and some by manually checking.

@rustbot modify labels: C-enhancement T-doc

3 years agoRollup merge of #77078 - LingMan:patch-2, r=jonas-schievink
Jonas Schievink [Fri, 25 Sep 2020 00:29:40 +0000 (02:29 +0200)]
Rollup merge of #77078 - LingMan:patch-2, r=jonas-schievink

Don't use an if guard to check equality with a constant

Match on it directly instead

3 years agoRollup merge of #77074 - lcnr:array-from-ref, r=SimonSapin
Jonas Schievink [Fri, 25 Sep 2020 00:29:39 +0000 (02:29 +0200)]
Rollup merge of #77074 - lcnr:array-from-ref, r=SimonSapin

add array::from_ref

mirrors the methods in `std::slice` with the same name.

I guess this method previously didn't exist as there was close to no reason to create an array of size `1`.
This will change due to const generics in the near future.

3 years agoRollup merge of #77050 - follower:patch-1, r=oli-obk
Jonas Schievink [Fri, 25 Sep 2020 00:29:37 +0000 (02:29 +0200)]
Rollup merge of #77050 - follower:patch-1, r=oli-obk

Typo fix: "satsify" -> "satisfy"

3 years agoRollup merge of #77044 - pickfire:patch-4, r=jyn514
Jonas Schievink [Fri, 25 Sep 2020 00:29:35 +0000 (02:29 +0200)]
Rollup merge of #77044 - pickfire:patch-4, r=jyn514

Liballoc bench vec use mem take not replace

3 years agoRollup merge of #76978 - duckymirror:mpsc-from-doc, r=jyn514
Jonas Schievink [Fri, 25 Sep 2020 00:29:34 +0000 (02:29 +0200)]
Rollup merge of #76978 - duckymirror:mpsc-from-doc, r=jyn514

Documented From impls in std/sync/mpsc/mod.rs

This is for #51430.

r? @steveklabnik

3 years agoRollup merge of #76724 - ecstatic-morse:dataflow-pass-names, r=lcnr
Jonas Schievink [Fri, 25 Sep 2020 00:29:31 +0000 (02:29 +0200)]
Rollup merge of #76724 - ecstatic-morse:dataflow-pass-names, r=lcnr

Allow a unique name to be assigned to dataflow graphviz output

Previously, if the same analysis were invoked multiple times in a single compilation session, the graphviz output for later runs would overwrite that of previous runs. Allow callers to add a unique identifier to each run so this can be avoided.

3 years agoRollup merge of #76304 - CDirkx:const-ip, r=ecstatic-morse
Jonas Schievink [Fri, 25 Sep 2020 00:29:30 +0000 (02:29 +0200)]
Rollup merge of #76304 - CDirkx:const-ip, r=ecstatic-morse

Make delegation methods of `std::net::IpAddr` unstably const

Make the following methods of `std::net::IpAddr` unstable const under the `const_ip` feature:
 - `is_unspecified`
 - `is_loopback`
 - `is_global`
 - `is_multicast`

Also adds a test for these methods in a const context.

Possible because these methods delegate to the inner `Ipv4Addr` or `Ipv6Addr`, which were made const ([PR#76205](https://github.com/rust-lang/rust/pull/76142) and [PR#76206](https://github.com/rust-lang/rust/pull/76206)), and the recent stabilization of const control flow.

Part of #76205

r? @ecstatic-morse

3 years agoRollup merge of #75438 - Cldfire:rustdoc/use-adaptive-svg-favicon, r=GuillaumeGomez
Jonas Schievink [Fri, 25 Sep 2020 00:29:22 +0000 (02:29 +0200)]
Rollup merge of #75438 - Cldfire:rustdoc/use-adaptive-svg-favicon, r=GuillaumeGomez

Use adaptive SVG favicon for rustdoc like other rust sites

Use the theme-adaptive SVG favicon that was recently introduced [for the Rust site](https://github.com/rust-lang/www.rust-lang.org/pull/1185) (and others).

(This PR is simply copied from the PR linked above, so see that for rationale.)

Closes #72165.

Before, Firefox on Linux:

![image](https://user-images.githubusercontent.com/13814214/89971811-34c0a900-dc2a-11ea-9aa6-a4aa9d66bed4.png)

After, Firefox on Linux (`prefers-color-scheme` set to `dark` by setting `ui.systemUsesDarkTheme` to a number value of `1` in `about:config`):

![image](https://user-images.githubusercontent.com/13814214/89971842-515ce100-dc2a-11ea-92e8-c374aaaf6031.png)

3 years agoAuto merge of #77014 - tmiasko:arena, r=Mark-Simulacrum
bors [Thu, 24 Sep 2020 23:51:45 +0000 (23:51 +0000)]
Auto merge of #77014 - tmiasko:arena, r=Mark-Simulacrum

DroplessArena: Allocate objects from the end of memory chunk

Allocating from the end of memory chunk simplifies the alignment code
and reduces the number of checked arithmetic operations.

3 years agoperf: split progress_obligations with inline(never)
Bastian Kauschke [Thu, 24 Sep 2020 17:52:49 +0000 (19:52 +0200)]
perf: split progress_obligations with inline(never)

3 years agoBless tests
Dylan MacKenzie [Thu, 24 Sep 2020 18:12:28 +0000 (11:12 -0700)]
Bless tests

3 years agoSuggest `const_fn_transmute` instead of `const_fn`
Dylan MacKenzie [Thu, 24 Sep 2020 18:11:53 +0000 (11:11 -0700)]
Suggest `const_fn_transmute` instead of `const_fn`

3 years agoResolve https://github.com/rust-lang/rust/pull/76673#discussion_r494426303
Simon Vandel Sillesen [Thu, 24 Sep 2020 19:02:53 +0000 (21:02 +0200)]
Resolve https://github.com/rust-lang/rust/pull/76673#discussion_r494426303

3 years agoUpgrade chalk to 0.28.0
Bram van den Heuvel [Thu, 24 Sep 2020 15:37:55 +0000 (17:37 +0200)]
Upgrade chalk to 0.28.0

3 years agoRemove workaround for deref issue that no longer exists.
Mara Bos [Thu, 24 Sep 2020 18:50:09 +0000 (20:50 +0200)]
Remove workaround for deref issue that no longer exists.

The double underscores were used to work around issue #12808, which was
solved in 2016.

3 years agoAuto merge of #76918 - ishitatsuyuki:match-fastpath, r=oli-obk
bors [Thu, 24 Sep 2020 17:22:56 +0000 (17:22 +0000)]
Auto merge of #76918 - ishitatsuyuki:match-fastpath, r=oli-obk

Add fast path for match checking

This adds a fast path that would reduce the complexity to linear on matches consisting of only variant patterns (i.e. enum matches). (Also see: #7462) Unfortunately, I was too lazy to add a similar fast path for constants (mostly for integer matches), ideally that could be added another day.

TBH, I'm not confident with the performance claims due to the fact that enums tends to be small and FxHashMap could add a lot of overhead.

r? `@Mark-Simulacrum`

needs perf

3 years agoremove enum name from ImplSource variants
Bastian Kauschke [Thu, 24 Sep 2020 17:22:36 +0000 (19:22 +0200)]
remove enum name from ImplSource variants

3 years agoUpdate chalk to 0.27.0
Bram van den Heuvel [Thu, 24 Sep 2020 14:59:21 +0000 (16:59 +0200)]
Update chalk to 0.27.0

3 years agoUpdate chalk to 0.26.0
Bram van den Heuvel [Thu, 24 Sep 2020 14:49:02 +0000 (16:49 +0200)]
Update chalk to 0.26.0

3 years agoUpdate chalk to 0.25.0
Bram van den Heuvel [Thu, 24 Sep 2020 14:09:39 +0000 (16:09 +0200)]
Update chalk to 0.25.0

3 years agoUpdate chalk to 0.24.0
Bram van den Heuvel [Thu, 24 Sep 2020 14:02:31 +0000 (16:02 +0200)]
Update chalk to 0.24.0

3 years agoUpdate chalk to 0.23.0
Bram van den Heuvel [Thu, 24 Sep 2020 13:21:46 +0000 (15:21 +0200)]
Update chalk to 0.23.0

3 years agoUpdate chalk to 0.22.0
Bram van den Heuvel [Thu, 24 Sep 2020 12:43:41 +0000 (14:43 +0200)]
Update chalk to 0.22.0

3 years agoAuto merge of #77006 - oli-obk:🐌_const_queries, r=Mark-Simulacrum
bors [Thu, 24 Sep 2020 15:12:17 +0000 (15:12 +0000)]
Auto merge of #77006 - oli-obk:🐌_const_queries, r=Mark-Simulacrum

Cache `eval_to_allocation_raw` on disk

https://github.com/rust-lang/rust/pull/74949#issuecomment-695833161 regressed the performance on these queries, this PR gets the perf back.

3 years agoAlways cache const eval queries
Oliver Scherer [Thu, 24 Sep 2020 15:09:09 +0000 (17:09 +0200)]
Always cache const eval queries

3 years agomove test to intergrated test in library/core
Lzu Tao [Thu, 24 Sep 2020 14:41:40 +0000 (14:41 +0000)]
move test to intergrated test in library/core

3 years agoInstall std for non-host targets
Mark Rousskov [Thu, 24 Sep 2020 13:37:23 +0000 (09:37 -0400)]
Install std for non-host targets

3 years agoAuto merge of #76820 - jyn514:query-comments, r=davidtwco
bors [Thu, 24 Sep 2020 13:01:46 +0000 (13:01 +0000)]
Auto merge of #76820 - jyn514:query-comments, r=davidtwco

Preserve doc-comments when generating queries

Closes https://github.com/rust-lang/rust/issues/76812

3 years agoUpdate Cargo.lock
flip1995 [Thu, 24 Sep 2020 12:51:13 +0000 (14:51 +0200)]
Update Cargo.lock

3 years agoMerge commit 'e636b88aa180e8cab9e28802aac90adbc984234d' into clippyup
flip1995 [Thu, 24 Sep 2020 12:49:22 +0000 (14:49 +0200)]
Merge commit 'e636b88aa180e8cab9e28802aac90adbc984234d' into clippyup

3 years agoAuto merge of #77049 - lcnr:const-eval-function-signature, r=oli-obk
bors [Thu, 24 Sep 2020 10:29:14 +0000 (10:29 +0000)]
Auto merge of #77049 - lcnr:const-eval-function-signature, r=oli-obk

const_evaluatable_checked: extend predicate collection

We now walk the hir instead of using `ty` so that we get better spans here, While I am still not completely sure if that's
what we want in the end, it does seem a lot closer to the final goal than the previous version.

We also look into type aliases (and use a `TypeVisitor` here), about which I am not completely sure, but we will see how well this works.

We also look into fn decls, so the following should work now.
```rust
fn test<T>() -> [u8; std::mem::size_of::<T>()] {
    [0; std::mem::size_of::<T>()]
}
```
Additionally, we visit the optional trait and self type of impls.

r? `@oli-obk`

3 years agoAuto merge of #77028 - andjo403:mini, r=matthewjasper
bors [Thu, 24 Sep 2020 08:14:30 +0000 (08:14 +0000)]
Auto merge of #77028 - andjo403:mini, r=matthewjasper

Move MiniSet to data_structures

remove the need for T to be copy from MiniSet as was done for MiniMap

MiniMap and MiniSet was added by https://github.com/rust-lang/rust/pull/72412

think that this can be used in https://github.com/rust-lang/rust/pull/68828

3 years agoupdate tests
Bastian Kauschke [Tue, 22 Sep 2020 16:00:32 +0000 (18:00 +0200)]
update tests

3 years agovisit impl self ty + trait
Bastian Kauschke [Tue, 22 Sep 2020 09:55:03 +0000 (11:55 +0200)]
visit impl self ty + trait

3 years agoassign the correct `DefId` in `nominal_obligations`
Bastian Kauschke [Tue, 22 Sep 2020 09:36:54 +0000 (11:36 +0200)]
assign the correct `DefId` in `nominal_obligations`

3 years agowalk hir to get const evaluatable predicates
Bastian Kauschke [Tue, 22 Sep 2020 08:54:09 +0000 (10:54 +0200)]
walk hir to get const evaluatable predicates

3 years agofmt, use IndexSet directly instead of UniquePredicates
Bastian Kauschke [Tue, 22 Sep 2020 07:48:20 +0000 (09:48 +0200)]
fmt, use IndexSet directly instead of UniquePredicates

3 years agoconst_evaluatable_checked: collect predicates from fn_sig
Bastian Kauschke [Tue, 22 Sep 2020 07:42:29 +0000 (09:42 +0200)]
const_evaluatable_checked: collect predicates from fn_sig

3 years agoAuto merge of #76748 - tmiasko:no-op-jumps, r=matthewjasper
bors [Thu, 24 Sep 2020 05:57:06 +0000 (05:57 +0000)]
Auto merge of #76748 - tmiasko:no-op-jumps, r=matthewjasper

Fix underflow when calculating the number of no-op jumps folded

When removing unwinds to no-op blocks and folding jumps to no-op blocks,
remove the unwind target first. Otherwise we cannot determine if target
has been already folded or not.

Previous implementation incorrectly assumed that all resume targets had
been folded already, occasionally resulting in an underflow:

```
remove_noop_landing_pads: removed 18446744073709551613 jumps and 3 landing pads
```

3 years agoBless tests
Dylan MacKenzie [Thu, 24 Sep 2020 04:05:59 +0000 (21:05 -0700)]
Bless tests

3 years agoSuggest `const_mut_refs` for mutable references in const fn
Dylan MacKenzie [Thu, 24 Sep 2020 04:04:07 +0000 (21:04 -0700)]
Suggest `const_mut_refs` for mutable references in const fn

3 years agoAuto merge of #74430 - Manishearth:stabilize-intra-doc, r=Manishearth
bors [Thu, 24 Sep 2020 03:42:53 +0000 (03:42 +0000)]
Auto merge of #74430 - Manishearth:stabilize-intra-doc, r=Manishearth

Stabilize intra-doc links

Fixes https://github.com/rust-lang/rust/issues/43466

Thanks to the great work of `@jyn514` in getting the [cross-crate reexport issue](https://github.com/rust-lang/rust/issues/65983) in intra-rustdoc links fixed, I think we're now in a position to stabilize this feature.

The tracking issue currently has two unresolved issues:

 - <s>behavior around doc(hidden): This is fixed in https://github.com/rust-lang/rust/pull/73365, which is just waiting for CI and should land tomorrow. It's also a pretty niche bug so while I expect it to land soon I don't think we need to block stabilization on it anyway.</s>
 - Non-identifier primitive types like slices: This was not a part of the original RFC anyway, and is a pretty niche use case

The feature itself, sans https://github.com/rust-lang/rust/issues/65983, has been shipped on nightly for three years now, with people using it on docs.rs. https://github.com/rust-lang/rust/issues/65983 itself is not an overwhelmingly central bit of functionality; the reason we elected to block stabilization on it was that back in 2017 it was not possible to fix the issue without some major refactorings of resolve, and we did not want to stabilize something that had such a potentially unfixable bug.

Given that we've fixed it, I see no reason to delay stabilization on this long awaited feature. It's possible that the latest patches have problems, however we _have_ done crater runs of some of the crucial parts. Furthermore, that's what the release trains are for, we will have a solid three months to let it ride the trains before it actually hits the stable compiler.

r? `@rust-lang/rustdoc`

3 years agoUse theme-adaptive SVG favicon from other Rust sites
Jarek Samic [Thu, 24 Sep 2020 01:31:27 +0000 (21:31 -0400)]
Use theme-adaptive SVG favicon from other Rust sites

3 years agoAuto merge of #77083 - KodrAus:revert/const-type-id, r=RalfJung
bors [Thu, 24 Sep 2020 00:43:09 +0000 (00:43 +0000)]
Auto merge of #77083 - KodrAus:revert/const-type-id, r=RalfJung

revert const_type_id stabilization

This reverts #72488, which is currently on beta and scheduled to stabilize in `1.47.0`, based on https://github.com/rust-lang/rust/pull/75923#issuecomment-696676511

It turns out we might not be quite ready to stabilize `TypeId` in const contexts before having a chance to rework its internals. Since `TypeId` is a bit of an oddity we want to be careful about how those internals are currently being relied on while making changes. That will be easier to do without having to also consider compile-time contexts.

r? `@eddyb`

3 years agoRemove duplicated SimplifyCfg pass
Tomasz Miąsko [Thu, 24 Sep 2020 00:00:00 +0000 (00:00 +0000)]
Remove duplicated SimplifyCfg pass

3 years agoAdd entry to CHANGELOG for `--keep-stage-std`
Dylan MacKenzie [Wed, 23 Sep 2020 23:22:53 +0000 (16:22 -0700)]
Add entry to CHANGELOG for `--keep-stage-std`

3 years agoRemove warning about possible future deprecation
Dylan MacKenzie [Wed, 23 Sep 2020 23:17:11 +0000 (16:17 -0700)]
Remove warning about possible future deprecation

3 years agoAdjust support expectations for downloaded LLVMs
Mark Rousskov [Wed, 23 Sep 2020 23:05:11 +0000 (19:05 -0400)]
Adjust support expectations for downloaded LLVMs

3 years agoRe-download LLVM on submodule updates only
Mark Rousskov [Wed, 23 Sep 2020 23:03:52 +0000 (19:03 -0400)]
Re-download LLVM on submodule updates only

3 years agoupdate tracking issue for const_type_id
Ashley Mannix [Wed, 23 Sep 2020 23:00:04 +0000 (09:00 +1000)]
update tracking issue for const_type_id

3 years agoAuto merge of #77102 - Dylan-DPC:rollup-2jfrg3u, r=Dylan-DPC
bors [Wed, 23 Sep 2020 22:34:44 +0000 (22:34 +0000)]
Auto merge of #77102 - Dylan-DPC:rollup-2jfrg3u, r=Dylan-DPC

Rollup of 9 pull requests

Successful merges:

 - #76898 (Record `tcx.def_span` instead of `item.span` in crate metadata)
 - #76939 (emit errors during AbstractConst building)
 - #76965 (Add cfg(target_has_atomic_equal_alignment) and use it for Atomic::from_mut.)
 - #76993 (Changing the alloc() to accept &self instead of &mut self)
 - #76994 (fix small typo in docs and comments)
 - #77017 (Add missing examples on Vec iter types)
 - #77042 (Improve documentation for ToSocketAddrs)
 - #77047 (Miri: more informative deallocation error messages)
 - #77055 (Add #[track_caller] to more panicking Cell functions)

Failed merges:

r? `@ghost`

3 years agoAdd `keep-stage-std` to `x.py`
Dylan MacKenzie [Wed, 23 Sep 2020 21:25:23 +0000 (14:25 -0700)]
Add `keep-stage-std` to `x.py`

This keeps only the `std` artifacts compiled by the given stage, not the
compiler. This is useful when working on the latter stages of the
compiler in tandem with the standard library, since you don't have to
rebuild the *entire* compiler when the standard library changes.

3 years agoAuto merge of #76673 - simonvandel:remove-unneeded-drops, r=oli-obk
bors [Wed, 23 Sep 2020 20:13:47 +0000 (20:13 +0000)]
Auto merge of #76673 - simonvandel:remove-unneeded-drops, r=oli-obk

MIR pass to remove unneeded drops on types not needing drop

This is heavily dependent on MIR inlining running to actually see the drop statement.

Do we want to special case replacing a call to std::mem::drop with a goto aswell?

3 years agotidy
Erik Hofmayer [Wed, 23 Sep 2020 20:08:30 +0000 (22:08 +0200)]
tidy

3 years agouse array::from_ref for slices
Bastian Kauschke [Wed, 23 Sep 2020 19:33:45 +0000 (21:33 +0200)]
use array::from_ref for slices

3 years ago/nightly/nightly-rustc
Erik Hofmayer [Wed, 23 Sep 2020 19:51:56 +0000 (21:51 +0200)]
/nightly/nightly-rustc

3 years agoMake delegation methods of `std::net::IpAddr` unstable const
Christiaan Dirkx [Mon, 7 Sep 2020 15:43:48 +0000 (17:43 +0200)]
Make delegation methods of `std::net::IpAddr` unstable const

Make the following methods of `std::net::IpAddr` unstable const under the `const_ip` feature:
- `is_unspecified`
- `is_loopback`
- `is_global`
- `is_multicast`

Also adds a test for these methods in a const context.

Possible because these methods delegate to the inner `Ipv4Addr` or `Ipv6Addr`, which were made const, and the recent stabilization of const control flow.

Part of #76205

3 years agoUpdated html_root_url for compiler crates
Erik Hofmayer [Wed, 23 Sep 2020 19:14:43 +0000 (21:14 +0200)]
Updated html_root_url for compiler crates

3 years agoAuto merge of #6044 - rschoon:rc-buffer, r=yaahc
bors [Wed, 23 Sep 2020 18:35:08 +0000 (18:35 +0000)]
Auto merge of #6044 - rschoon:rc-buffer, r=yaahc

Add `rc_buffer` lint for checking Rc<String> and friends

Fixes #2623

This is a bit different from the original PR attempting to implement this type of lint.   Rather than linting against converting into the unwanted types, this PR lints against declaring the unwanted type in a struct or function definition.

I'm reasonably happy with what I have here, although I used the fully qualified type names for the Path and OsString suggestions, and I'm not sure if I should have just used the short versions instead, even if they might not have been declared via use.

Also, I don't know if "buffer type" is the best way to put it or not.  Alternatively I could call it a "growable type" or "growable buffer type", but I was thinking of PathBuf when I started making the lint.

changelog: Add `rc_buffer` lint

3 years agoIgnore test on wasm as it does not unwind
Simon Vandel Sillesen [Wed, 23 Sep 2020 16:25:55 +0000 (18:25 +0200)]
Ignore test on wasm as it does not unwind

3 years agoclarify that `changelog-seen = 1` goes to the beginning of config.toml
Matthias Krüger [Wed, 23 Sep 2020 13:45:35 +0000 (15:45 +0200)]
clarify that `changelog-seen = 1` goes to the beginning of config.toml

Fixes #77105

3 years agoAuto merge of #77090 - rust-lang:revert-76110-convert-openoptions-cint, r=dtolnay
bors [Wed, 23 Sep 2020 13:19:18 +0000 (13:19 +0000)]
Auto merge of #77090 - rust-lang:revert-76110-convert-openoptions-cint, r=dtolnay

Revert "Function to convert OpenOptions to c_int"

Reverts rust-lang/rust#76110. This broke Rust's stability guarantees.

Closes https://github.com/rust-lang/rust/issues/77089.

r? `@joshtriplett`

3 years agoRollup merge of #77055 - est31:more_track_caller, r=Mark-Simulacrum
Dylan DPC [Wed, 23 Sep 2020 12:54:15 +0000 (14:54 +0200)]
Rollup merge of #77055 - est31:more_track_caller, r=Mark-Simulacrum

Add #[track_caller] to more panicking Cell functions

Continuation of #74526

Adds the #[track_caller] attribute to almost all panicking Cell
functions. The ones that borrow two Cells in their function
body are spared, because the panic location helps pinpoint
which of the two borrows failed. You'd need to have
full debuginfo and backtraces enabled together with column
info in order to be able to discern the cases.
Column info in debuginfo is only available on non-Windows platforms.