]> git.lizzy.rs Git - rust.git/log
rust.git
3 years agoRollup merge of #82037 - calavera:strip_debuginfo_osx, r=petrochenkov
Yuki Okushi [Thu, 10 Jun 2021 02:02:01 +0000 (11:02 +0900)]
Rollup merge of #82037 - calavera:strip_debuginfo_osx, r=petrochenkov

Make symbols stripping work on MacOS X

As reported in the [stabilization issue](https://github.com/rust-lang/rust/issues/72110), MacOS' linker doesn't support the `-s` and `-S` flags to strip symbols anymore. However, the os ships a separated tool to perform these operations.

This change allows the compiler to use that tool after a target has been compiled to strip symbols.

For rationale, see: https://github.com/rust-lang/rust/issues/72110#issuecomment-641169818
For option selection, see: https://www.unix.com/man-page/osx/1/strip/

Signed-off-by: David Calavera <david.calavera@gmail.com>
3 years agoAuto merge of #86003 - pnkfelix:issue-84297-revert-81238, r=Mark-Simulacrum
bors [Wed, 9 Jun 2021 16:47:05 +0000 (16:47 +0000)]
Auto merge of #86003 - pnkfelix:issue-84297-revert-81238, r=Mark-Simulacrum

Make copy/copy_nonoverlapping fn's again

Make copy/copy_nonoverlapping fn's again, rather than intrinsics.

This a short-term change to address issue #84297.

It effectively reverts PRs #81167 #81238 (and part of #82967), #83091, and parts of #79684.

3 years agoMake symbols stripping work on MacOS X
David Calavera [Fri, 12 Feb 2021 18:24:16 +0000 (10:24 -0800)]
Make symbols stripping work on MacOS X

As reported in the stabilization issue, MacOS' linker doesn't support the `-s` and `-S` flags to strip symbols anymore. However, the os ships a separated tool to perform these operations.

This change allows the compiler to use that tool after a target has been compiled to strip symbols.

For rationale, see: https://github.com/rust-lang/rust/issues/72110#issuecomment-641169818
For option selection, see: https://www.unix.com/man-page/osx/1/strip/

Signed-off-by: David Calavera <david.calavera@gmail.com>
3 years agoAuto merge of #86150 - cjgillot:notable, r=michaelwoerister
bors [Wed, 9 Jun 2021 14:06:10 +0000 (14:06 +0000)]
Auto merge of #86150 - cjgillot:notable, r=michaelwoerister

Do not require the DefPathTable to construct the on-disk cache.

r? `@michaelwoerister`

3 years agoAuto merge of #85975 - the8472:revert-take-tra, r=scottmcm
bors [Wed, 9 Jun 2021 11:24:54 +0000 (11:24 +0000)]
Auto merge of #85975 - the8472:revert-take-tra, r=scottmcm

Revert "implement TrustedRandomAccess for Take iterator adapter"

This reverts commit 37a5b515e9c36ee3f57d9e0d7db7efce2fb02195 (#83990).

The original change unintentionally caused side-effects from certain iterator chains combining `take`, `zip` and `next_back()` to be omitted which is observable by user code and thus likely a breaking change

Technically one could declare it not a breaking change since `Zip`'s API contract is silent about about its backwards iteration behavior but on the other hand there is nothing in the stable Iterator API that could justify the currently observable behavior. And either way, this impact wasn't noticed or discussed in the original PR.

Fixes #85969

3 years agoAuto merge of #86118 - spastorino:tait-soundness-bug, r=nikomatsakis
bors [Wed, 9 Jun 2021 09:00:16 +0000 (09:00 +0000)]
Auto merge of #86118 - spastorino:tait-soundness-bug, r=nikomatsakis

Create different inference variables for different defining uses of TAITs

Fixes #73481

r? `@nikomatsakis`
cc `@oli-obk`

3 years agoAuto merge of #86107 - Smittyvb:peephole-optim-eq-bool, r=wesleywiser
bors [Wed, 9 Jun 2021 06:06:06 +0000 (06:06 +0000)]
Auto merge of #86107 - Smittyvb:peephole-optim-eq-bool, r=wesleywiser

Peephole optimize `x == false` and `x != true`

This adds peephole optimizations to make `x == false`, `false == x`, `x != true`, and `true != x` get optimized to `!x` in the `instcombine` MIR pass. That pass currently handles `x == true` -> `x` already.

3 years agoAuto merge of #86160 - JohnTitor:rollup-8ark9x7, r=JohnTitor
bors [Wed, 9 Jun 2021 03:15:34 +0000 (03:15 +0000)]
Auto merge of #86160 - JohnTitor:rollup-8ark9x7, r=JohnTitor

Rollup of 11 pull requests

Successful merges:

 - #85676 (Fix documentation style inconsistencies for IP addresses)
 - #85715 (Document `From` impls in string.rs)
 - #85791 (Add `Ipv6Addr::is_unicast`)
 - #85957 (Display defaults on const params- rustdoc )
 - #85982 (Enable rustdoc to document safe wasm intrinsics)
 - #86121 (Forwarding implementation for Seek trait's stream_position method)
 - #86124 (Include macro name in 'local ambiguity' error)
 - #86128 (Refactor: Extract render_summary from render_impl.)
 - #86142 (Simplify proc_macro code using Bound::cloned().)
 - #86158 (Update books)
 - #86159 (Update cargo)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

3 years agoRollup merge of #86159 - ehuss:update-cargo, r=ehuss
Yuki Okushi [Wed, 9 Jun 2021 03:04:10 +0000 (12:04 +0900)]
Rollup merge of #86159 - ehuss:update-cargo, r=ehuss

Update cargo

11 commits in 0cecbd67323ca14a7eb6505900d0d7307b00355b..aa8b09297bb3156b849e73db48af4cd050492fe6
2021-06-01 20:09:13 +0000 to 2021-06-09 00:28:53 +0000
- Add `--prune` option for cargo-tree (rust-lang/cargo#9520)
- Fix typo in gitignore docs. (rust-lang/cargo#9556)
- Fix typos in command_prelude.rs (rust-lang/cargo#9552)
- Make clippy happy (rust-lang/cargo#9551)
- Remove some dead code. (rust-lang/cargo#9546)
- Add additional test for CJK progress width (rust-lang/cargo#9515)
- Pull in semver 1.0.3 'x' fix (rust-lang/cargo#9544)
- Add some tracking issues to unstable docs. (rust-lang/cargo#9540)
- Update documentation for include/exclude. (rust-lang/cargo#9538)
- Bump mdbook version for contrib guide. (rust-lang/cargo#9534)
- Replace deprecated `[replace]` references with `[patch]` (rust-lang/cargo#9533)

3 years agoRollup merge of #86158 - ehuss:update-books, r=ehuss
Yuki Okushi [Wed, 9 Jun 2021 03:04:09 +0000 (12:04 +0900)]
Rollup merge of #86158 - ehuss:update-books, r=ehuss

Update books

## reference

4 commits in 9c68af3ce6ccca2395e1868addef26a0542e9ddd..8f598e2af6c25b4a7ee88ef6a8196d9b8ea50ca8
2021-05-24 09:53:32 -0700 to 2021-06-01 19:00:46 +0100
- Add crate and module to glossary. (rust-lang-nursery/reference#1016)
- Fix type_length_limit example. (rust-lang-nursery/reference#1026)
- Rearrange HRTB grammar. (rust-lang-nursery/reference#1011)
- Revert "Temporarily remove pat_param." (rust-lang-nursery/reference#1010)

## rustc-dev-guide

6 commits in 50de7f0682adc5d95ce858fe6318d19b4b951553..c8da5bfd1c7c71d90ef1646f5e0a9f6609d5c78a
2021-05-20 15:02:20 +0200 to 2021-06-04 09:08:56 +0200
- Fix some links (rust-lang/rustc-dev-guide#1137)
- explain Miri engine vs Miri-the-tool
- Add more information about no_hash query modifier. (rust-lang/rustc-dev-guide#1133)
- improve section introduction
- not all tools require waiting for a nightly release before they can be fixed
- Describe the difference of rustc_lint vs rustc_lint_defs.

3 years agoRollup merge of #86142 - m-ou-se:proc-macro-subspan-bound-cloned-cleanup, r=petrochenkov
Yuki Okushi [Wed, 9 Jun 2021 03:04:08 +0000 (12:04 +0900)]
Rollup merge of #86142 - m-ou-se:proc-macro-subspan-bound-cloned-cleanup, r=petrochenkov

Simplify proc_macro code using Bound::cloned().

3 years agoRollup merge of #86128 - jsha:render-impl-into-mod, r=GuillaumeGomez
Yuki Okushi [Wed, 9 Jun 2021 03:04:07 +0000 (12:04 +0900)]
Rollup merge of #86128 - jsha:render-impl-into-mod, r=GuillaumeGomez

Refactor: Extract render_summary from render_impl.

This allows for a more readable straight-through logic in render_impl without need for a closure.

I think this will make #85970 a bit more of a straightforward change.

This is a pure refactoring. I've verified that the output of `x.py doc library/std` is byte-for-byte identical.

r? `@GuillaumeGomez`

3 years agoRollup merge of #86124 - Aaron1011:ambig-macro-name, r=varkor
Yuki Okushi [Wed, 9 Jun 2021 03:04:06 +0000 (12:04 +0900)]
Rollup merge of #86124 - Aaron1011:ambig-macro-name, r=varkor

Include macro name in 'local ambiguity' error

Currently, we only point at the span of the macro argument. When the
macro call is itself generated by another macro, this can make it
difficult or impossible to determine which macro is responsible for
producing the error.

3 years agoRollup merge of #86121 - nickshiling:forwarding_impl_for_seek_trait_stream_position...
Yuki Okushi [Wed, 9 Jun 2021 03:04:05 +0000 (12:04 +0900)]
Rollup merge of #86121 - nickshiling:forwarding_impl_for_seek_trait_stream_position, r=dtolnay

Forwarding implementation for Seek trait's stream_position method

Forwarding implementations for `Seek` trait's `stream_position` were missed when it was stabilized in `1.51.0`

3 years agoRollup merge of #85982 - alexcrichton:doc-safe-wasm, r=jyn514
Yuki Okushi [Wed, 9 Jun 2021 03:04:04 +0000 (12:04 +0900)]
Rollup merge of #85982 - alexcrichton:doc-safe-wasm, r=jyn514

Enable rustdoc to document safe wasm intrinsics

This commit fixes an issue not found during #84988 where rustdoc is used
to document cross-platform intrinsics but it was requiring that
functions which use `#[target_feature]` are `unsafe` erroneously, even
if they're WebAssembly specific. Rustdoc today, for example, already has
a special case where it enables annotations like
`#[target_feature(enable = "simd128")]` on platforms other than
WebAssembly. The purpose of this commit is to relax the "require all
`#[target_feature]` functions are `unsafe`" requirement for all targets
whenever rustdoc is running, enabling all targets to fully document
other targets, such as WebAssembly, where intrinsics functions aren't
always `unsafe`.

3 years agoRollup merge of #85957 - BoxyUwU:rustdoc-const-generic-defaults, r=oli-obk
Yuki Okushi [Wed, 9 Jun 2021 03:04:03 +0000 (12:04 +0900)]
Rollup merge of #85957 - BoxyUwU:rustdoc-const-generic-defaults, r=oli-obk

Display defaults on const params- rustdoc

previously rustdoc would render this struct declaration:
`pub struct Foo<const N: usize = 10>;`
as:
`pub struct Foo<const N: usize>;`
this PR changes it to render correctly

3 years agoRollup merge of #85791 - CDirkx:is_unicast, r=joshtriplett
Yuki Okushi [Wed, 9 Jun 2021 03:04:01 +0000 (12:04 +0900)]
Rollup merge of #85791 - CDirkx:is_unicast, r=joshtriplett

Add `Ipv6Addr::is_unicast`

Adds an unstable utility method `Ipv6Addr::is_unicast` under the feature flag `ip` (tracking issue: #27709).

Added for completeness with the other unicast methods (see also https://github.com/rust-lang/rust/issues/85604#issuecomment-848220455) and opposite of `is_multicast`.

3 years agoRollup merge of #85715 - fee1-dead:document-string, r=JohnTitor
Yuki Okushi [Wed, 9 Jun 2021 03:03:59 +0000 (12:03 +0900)]
Rollup merge of #85715 - fee1-dead:document-string, r=JohnTitor

Document `From` impls in string.rs

3 years agoRollup merge of #85676 - CDirkx:ip-style, r=JohnTitor
Yuki Okushi [Wed, 9 Jun 2021 03:03:54 +0000 (12:03 +0900)]
Rollup merge of #85676 - CDirkx:ip-style, r=JohnTitor

Fix documentation style inconsistencies for IP addresses

Pulled out of #85655 as it is unrelated. Fixes some inconsistencies in the docs for IP addresses:
- Currently some addresses are backticked, some are not, this PR backticks everything consistently. (looks better imo)
- Lowercase hex-literals are used when writing addresses.

3 years agoUpdate cargo
Eric Huss [Wed, 9 Jun 2021 02:38:25 +0000 (19:38 -0700)]
Update cargo

3 years agoUpdate books
Eric Huss [Wed, 9 Jun 2021 02:15:11 +0000 (19:15 -0700)]
Update books

3 years agoDo not require the DefPathTable to construct the on-disk cache.
Camille GILLOT [Tue, 8 Jun 2021 20:18:53 +0000 (22:18 +0200)]
Do not require the DefPathTable to construct the on-disk cache.

3 years agoadd VecMap docs
Santiago Pastorino [Tue, 8 Jun 2021 20:16:05 +0000 (17:16 -0300)]
add VecMap docs

3 years agoUse impl FnMut directly as predicate type
Santiago Pastorino [Tue, 8 Jun 2021 19:52:33 +0000 (16:52 -0300)]
Use impl FnMut directly as predicate type

3 years agoExplicitly pass find arguments down the predicate so coercions can apply
Santiago Pastorino [Tue, 8 Jun 2021 19:50:33 +0000 (16:50 -0300)]
Explicitly pass find arguments down the predicate so coercions can apply

3 years agoDo not deconstruct OpaqueTypeKey to make the code more clear
Santiago Pastorino [Tue, 8 Jun 2021 19:48:58 +0000 (16:48 -0300)]
Do not deconstruct OpaqueTypeKey to make the code more clear

3 years agodefin_ty_def_id -> definition_ty_def_id
Santiago Pastorino [Tue, 8 Jun 2021 19:45:44 +0000 (16:45 -0300)]
defin_ty_def_id -> definition_ty_def_id

3 years agoAuto merge of #86139 - hyd-dev:miri, r=RalfJung
bors [Tue, 8 Jun 2021 18:33:51 +0000 (18:33 +0000)]
Auto merge of #86139 - hyd-dev:miri, r=RalfJung

Update Miri

Fixes #86133.

r? `@RalfJung`

3 years agoSimplify proc_macro code using Bound::cloned().
Mara Bos [Tue, 8 Jun 2021 16:09:29 +0000 (18:09 +0200)]
Simplify proc_macro code using Bound::cloned().

3 years agoUpdate Miri
hyd-dev [Tue, 8 Jun 2021 15:33:39 +0000 (23:33 +0800)]
Update Miri

3 years agoDestructure OpaqueTypeKey in certain cases to simplify code
Santiago Pastorino [Tue, 8 Jun 2021 12:50:16 +0000 (09:50 -0300)]
Destructure OpaqueTypeKey in certain cases to simplify code

3 years agoSimplify code by using VecMap::get_by
Santiago Pastorino [Tue, 8 Jun 2021 12:41:26 +0000 (09:41 -0300)]
Simplify code by using VecMap::get_by

3 years agoAdd VecMap::get_by(FnMut -> bool)
Santiago Pastorino [Tue, 8 Jun 2021 12:40:58 +0000 (09:40 -0300)]
Add VecMap::get_by(FnMut -> bool)

3 years agoAuto merge of #86127 - JohnTitor:rollup-0c6mp3j, r=JohnTitor
bors [Tue, 8 Jun 2021 07:04:31 +0000 (07:04 +0000)]
Auto merge of #86127 - JohnTitor:rollup-0c6mp3j, r=JohnTitor

Rollup of 11 pull requests

Successful merges:

 - #85906 (Use `Iterator::find` instead of open-coding it)
 - #85951 (Update the documentation of `-C force-unwind-tables` for #83482)
 - #85985 (Clarify documentation of slice sorting methods)
 - #85989 (Remove rustfmt tests from top-level .gitattributes)
 - #86074 (Default panic message should print Box<dyn Any>)
 - #86078 (Type page font weight)
 - #86090 (:arrow_up: rust-analyzer)
 - #86095 (Search description codeblock)
 - #86096 (Comment out unused error codes and add description for E0316)
 - #86101 (Correct type signature in doc for Bound::as_mut)
 - #86103 (Remove lifetime hack)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

3 years agoRefactor: Extract render_summary from render_impl.
Jacob Hoffman-Andrews [Tue, 8 Jun 2021 04:16:35 +0000 (21:16 -0700)]
Refactor: Extract render_summary from render_impl.

This allows for a more readable straight-through logic in render_impl
without need for a closure.

3 years agoRollup merge of #86103 - camsteffen:lifetime-hack, r=jackh726
Yuki Okushi [Tue, 8 Jun 2021 04:26:38 +0000 (13:26 +0900)]
Rollup merge of #86103 - camsteffen:lifetime-hack, r=jackh726

Remove lifetime hack

It compiles without the hack. But I don't know why. I can't get the example in the referenced issue to compile...

3 years agoRollup merge of #86101 - glittershark:bound-as-mut-doc-fix, r=m-ou-se
Yuki Okushi [Tue, 8 Jun 2021 04:26:37 +0000 (13:26 +0900)]
Rollup merge of #86101 - glittershark:bound-as-mut-doc-fix, r=m-ou-se

Correct type signature in doc for Bound::as_mut

Thanks to ``@drmason13`` for pointing this out!

3 years agoRollup merge of #86096 - FabianWolff:ec-E0316, r=GuillaumeGomez
Yuki Okushi [Tue, 8 Jun 2021 04:26:36 +0000 (13:26 +0900)]
Rollup merge of #86096 - FabianWolff:ec-E0316, r=GuillaumeGomez

Comment out unused error codes and add description for E0316

I have added an extended description of `E0316` and commented out a bunch of unused error codes to make clear the fact that they are no longer in use. You can check for yourself with
```shell
for ec in                                                \
    E0314 E0315   E0473 E0474 E0475   E0479 E0480 E0481  \
    E0483 E0484 E0485 E0486 E0487 E0488 E0489
do
    if [ ! -z "`grep -r $ec compiler/* --exclude-dir=rustc_error_codes`" ]
    then
        echo $ec
        false
    fi
done
```
i.e. these error codes appear nowhere in the compiler code and thus cannot be emitted.

r? ```@GuillaumeGomez```

3 years agoRollup merge of #86095 - GuillaumeGomez:search-description-codeblock, r=jsha
Yuki Okushi [Tue, 8 Jun 2021 04:26:35 +0000 (13:26 +0900)]
Rollup merge of #86095 - GuillaumeGomez:search-description-codeblock, r=jsha

Search description codeblock

The codeblocks are not displayed correctly:

![Screenshot from 2021-06-07 11-11-53](https://user-images.githubusercontent.com/3050060/120991915-5fb05680-c782-11eb-9b32-973a64b1f631.png)

This PR interprets the HTML correctly (and still prevent invalid HTML because of how it inserts it):

![Screenshot from 2021-06-07 11-12-00](https://user-images.githubusercontent.com/3050060/120991919-6048ed00-c782-11eb-8ac5-c3aa6508bc8b.png)

r? ```@jsha```

3 years agoRollup merge of #86090 - lnicola:rust-analyzer-2021-06-07, r=jonas-schievink
Yuki Okushi [Tue, 8 Jun 2021 04:26:33 +0000 (13:26 +0900)]
Rollup merge of #86090 - lnicola:rust-analyzer-2021-06-07, r=jonas-schievink

:arrow_up: rust-analyzer

3 years agoRollup merge of #86078 - GuillaumeGomez:type-page-font-weight, r=jsha
Yuki Okushi [Tue, 8 Jun 2021 04:26:32 +0000 (13:26 +0900)]
Rollup merge of #86078 - GuillaumeGomez:type-page-font-weight, r=jsha

Type page font weight

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

r? ```@jsha```

3 years agoRollup merge of #86074 - reaganmcf:iss-86039, r=jyn514
Yuki Okushi [Tue, 8 Jun 2021 04:26:31 +0000 (13:26 +0900)]
Rollup merge of #86074 - reaganmcf:iss-86039, r=jyn514

Default panic message should print Box<dyn Any>

Closes #86039

Prior to this patch, the panic message from running the following code would be `thread 'main' panicked at 'Box<Any>'...`
```rust
use std::panic::panic_any;
fn main() {
    panic_any(42);
}
```

This patch updates the phrasing to be more consistent. It now instead shows the following panic message:

```
thread 'main' panicked at 'Box<dyn Any>', ...
```

It's a very small fix ðŸ˜„

3 years agoRollup merge of #85989 - jyn514:gitignore-cleanup, r=ehuss
Yuki Okushi [Tue, 8 Jun 2021 04:26:30 +0000 (13:26 +0900)]
Rollup merge of #85989 - jyn514:gitignore-cleanup, r=ehuss

Remove rustfmt tests from top-level .gitattributes

These are tracked in src/tools/rustfmt/.gitattributes already, they
don't need to be listed twice.

r? `@ehuss` since you suggested adding them in https://github.com/rust-lang/rust/pull/82208/#issuecomment-841440199; I think it should be ok now that bors isn't trying to merge the `subtree add` changes.

cc `@calebcartwright`

3 years agoRollup merge of #85985 - Lionelf329:master, r=joshtriplett
Yuki Okushi [Tue, 8 Jun 2021 04:26:29 +0000 (13:26 +0900)]
Rollup merge of #85985 - Lionelf329:master, r=joshtriplett

Clarify documentation of slice sorting methods

After reading about [this](https://polkadot.network/a-polkadot-postmortem-24-05-2021/), I realized that although the documentation of these methods is not ambiguous in its current state, it is very easy to read it and erroneously assume that their exact behaviour can be relied upon to be deterministic. Although the docs make no guarantees about which index is returned when there are multiple matches, being more explicit about when and how their determinism can be relied upon should help prevent people from making this mistake in the future.

r? ``@steveklabnik``

3 years agoRollup merge of #85951 - hyd-dev:force-unwind-tables, r=steveklabnik
Yuki Okushi [Tue, 8 Jun 2021 04:26:28 +0000 (13:26 +0900)]
Rollup merge of #85951 - hyd-dev:force-unwind-tables, r=steveklabnik

Update the documentation of `-C force-unwind-tables` for #83482

`panic=unwind` does not require `force-unwind-tables` to be "yes" anymore.
I forgot to update this in #83482.

3 years agoRollup merge of #85906 - LingMan:iter_find, r=matthewjasper
Yuki Okushi [Tue, 8 Jun 2021 04:26:28 +0000 (13:26 +0900)]
Rollup merge of #85906 - LingMan:iter_find, r=matthewjasper

Use `Iterator::find` instead of open-coding it

```@rustbot``` modify labels +C-cleanup +T-compiler

3 years agoAuto merge of #86115 - Xanewok:update-rls, r=Xanewok
bors [Tue, 8 Jun 2021 04:23:27 +0000 (04:23 +0000)]
Auto merge of #86115 - Xanewok:update-rls, r=Xanewok

Update RLS

This bumps racer to 2.1.48, which bumps rustc-ap-* crates to v722 in
order to unbreak the toolstate.

r? `@ghost`

3 years agoInclude macro name in 'local ambiguity' error
Aaron Hill [Tue, 8 Jun 2021 01:17:48 +0000 (20:17 -0500)]
Include macro name in 'local ambiguity' error

Currently, we only point at the span of the macro argument. When the
macro call is itself generated by another macro, this can make it
difficult or impossible to determine which macro is responsible for
producing the error.

3 years agoAuto merge of #83515 - tamird:string-remove-matches-rev, r=m-ou-se
bors [Tue, 8 Jun 2021 01:05:48 +0000 (01:05 +0000)]
Auto merge of #83515 - tamird:string-remove-matches-rev, r=m-ou-se

String::remove_matches O(n^2) -> O(n)

Copy only non-matching bytes. Replace collection of matches into a
vector with iteration over rejections, exploiting the guarantee that we
mutate parts of the haystack that have already been searched over.

r? `@joshtriplett`

3 years agoEnable rustdoc to document safe wasm intrinsics
Alex Crichton [Fri, 4 Jun 2021 01:56:31 +0000 (18:56 -0700)]
Enable rustdoc to document safe wasm intrinsics

This commit fixes an issue not found during #84988 where rustdoc is used
to document cross-platform intrinsics but it was requiring that
functions which use `#[target_feature]` are `unsafe` erroneously, even
if they're WebAssembly specific. Rustdoc today, for example, already has
a special case where it enables annotations like
`#[target_feature(enable = "simd128")]` on platforms other than
WebAssembly. The purpose of this commit is to relax the "require all
`#[target_feature]` functions are `unsafe`" requirement for all targets
whenever rustdoc is running, enabling all targets to fully document
other targets, such as WebAssembly, where intrinsics functions aren't
always `unsafe`.

3 years agoForwarding implementation for Seek trait's stream_position method
myshylin [Mon, 7 Jun 2021 23:21:22 +0000 (19:21 -0400)]
Forwarding implementation for Seek trait's stream_position method

3 years agoAdd more TAIT multiple defining uses test cases
Santiago Pastorino [Mon, 7 Jun 2021 21:56:26 +0000 (18:56 -0300)]
Add more TAIT multiple defining uses test cases

3 years agoDifferentiate different defining uses of taits when they reference distinct generic...
Santiago Pastorino [Mon, 7 Jun 2021 21:12:43 +0000 (18:12 -0300)]
Differentiate different defining uses of taits when they reference distinct generic parameters

3 years agoRemove substs from OpaqueTypeDecl, use the one in OpaqueTypeKey
Santiago Pastorino [Mon, 7 Jun 2021 20:53:09 +0000 (17:53 -0300)]
Remove substs from OpaqueTypeDecl, use the one in OpaqueTypeKey

3 years agoUse substs from opaque type key instead of using it from opaque_decl
Santiago Pastorino [Mon, 7 Jun 2021 20:34:36 +0000 (17:34 -0300)]
Use substs from opaque type key instead of using it from opaque_decl

3 years agoMake opaque type map key be of type OpaqueTypeKey
Santiago Pastorino [Mon, 7 Jun 2021 19:57:44 +0000 (16:57 -0300)]
Make opaque type map key be of type OpaqueTypeKey

3 years agoRemove ResolvedOpaqueTy and just use Ty, SubstsRef is already there
Santiago Pastorino [Mon, 7 Jun 2021 17:40:47 +0000 (14:40 -0300)]
Remove ResolvedOpaqueTy and just use Ty, SubstsRef is already there

3 years agoMake OpaqueTypeKey the key of opaque types map
Santiago Pastorino [Sat, 5 Jun 2021 18:08:35 +0000 (15:08 -0300)]
Make OpaqueTypeKey the key of opaque types map

3 years agoChange concrete opaque type to be a `VecMap`
Santiago Pastorino [Fri, 4 Jun 2021 20:02:48 +0000 (17:02 -0300)]
Change concrete opaque type  to be a `VecMap`

3 years agoChange opaque type map to be a `VecMap`
Santiago Pastorino [Fri, 4 Jun 2021 19:15:31 +0000 (16:15 -0300)]
Change opaque type map to be a `VecMap`

3 years agoAdd VecMap to rustc_data_structures
Santiago Pastorino [Fri, 4 Jun 2021 13:05:27 +0000 (10:05 -0300)]
Add VecMap to rustc_data_structures

3 years agoClarify documentation of slice sorting methods
Lionel Foxcroft [Fri, 4 Jun 2021 05:27:19 +0000 (01:27 -0400)]
Clarify documentation of slice sorting methods

3 years agoUpdate RLS
Igor Matuszewski [Mon, 7 Jun 2021 20:12:24 +0000 (22:12 +0200)]
Update RLS

This bumps racer to 2.1.48, which bumps rustc-ap-* crates to v722 in
order to unbreak the toolstate.

3 years agoPeephole optimize `x == false` and `x != true`
Smitty [Mon, 7 Jun 2021 16:33:00 +0000 (12:33 -0400)]
Peephole optimize `x == false` and `x != true`

3 years agoCorrect type signature in doc for Bound::as_mut
Griffin Smith [Mon, 7 Jun 2021 14:55:31 +0000 (10:55 -0400)]
Correct type signature in doc for Bound::as_mut

3 years agoRemove lifetime hack
Cameron Steffen [Mon, 7 Jun 2021 14:50:07 +0000 (09:50 -0500)]
Remove lifetime hack

3 years agoAuto merge of #85903 - bjorn3:rustc_serialize_cleanup, r=varkor
bors [Mon, 7 Jun 2021 14:40:26 +0000 (14:40 +0000)]
Auto merge of #85903 - bjorn3:rustc_serialize_cleanup, r=varkor

Remove unused functions and arguments from rustc_serialize

3 years agoBless ui/where-clauses/where-for-self.rs test
Fabian Wolff [Mon, 7 Jun 2021 13:00:47 +0000 (15:00 +0200)]
Bless ui/where-clauses/where-for-self.rs test

3 years agoAdd E0316.md
Fabian Wolff [Mon, 7 Jun 2021 11:05:17 +0000 (13:05 +0200)]
Add E0316.md

3 years agoComment out unused error codes in error_codes.rs
Fabian Wolff [Mon, 7 Jun 2021 11:01:04 +0000 (13:01 +0200)]
Comment out unused error codes in error_codes.rs

3 years agoAuto merge of #85891 - bjorn3:revert_merge_crate_disambiguator, r=Mark-Simulacrum
bors [Mon, 7 Jun 2021 10:42:56 +0000 (10:42 +0000)]
Auto merge of #85891 - bjorn3:revert_merge_crate_disambiguator, r=Mark-Simulacrum

Revert "Merge CrateDisambiguator into StableCrateId"

This reverts https://github.com/rust-lang/rust/pull/85804

3 years agoAdd test to ensure the result descripton is correctly handling codeblocks
Guillaume Gomez [Mon, 7 Jun 2021 09:19:29 +0000 (11:19 +0200)]
Add test to ensure the result descripton is correctly handling codeblocks

3 years agoFix integration of codeblocks in search result description
Guillaume Gomez [Mon, 7 Jun 2021 09:12:27 +0000 (11:12 +0200)]
Fix integration of codeblocks in search result description

3 years agoformat version
Ellen [Mon, 7 Jun 2021 08:47:05 +0000 (09:47 +0100)]
format version

3 years agoRevert "Merge CrateDisambiguator into StableCrateId"
bjorn3 [Tue, 1 Jun 2021 14:32:13 +0000 (16:32 +0200)]
Revert "Merge CrateDisambiguator into StableCrateId"

This reverts commit d0ec85d3fb6d322496cb8f4bc1c21e19f23284ad.

3 years agoRevert "Fix test"
bjorn3 [Tue, 1 Jun 2021 14:31:58 +0000 (16:31 +0200)]
Revert "Fix test"

This reverts commit 3abdebe79d9a3a2256a36fe8f408dad6a466f89f.

3 years agoRevert "Update tests"
bjorn3 [Tue, 1 Jun 2021 14:31:57 +0000 (16:31 +0200)]
Revert "Update tests"

This reverts commit c76b1b031753fc08a18a3906d828683476c1e595.

3 years agoRevert "Update mir opt tests"
bjorn3 [Tue, 1 Jun 2021 14:31:54 +0000 (16:31 +0200)]
Revert "Update mir opt tests"

This reverts commit e0e0cfa6492292d0b905b07a4ed727f4e1aefc80.

3 years agoAuto merge of #86091 - JohnTitor:rollup-wceot6d, r=JohnTitor
bors [Mon, 7 Jun 2021 08:01:45 +0000 (08:01 +0000)]
Auto merge of #86091 - JohnTitor:rollup-wceot6d, r=JohnTitor

Rollup of 6 pull requests

Successful merges:

 - #84262 (Fix ICE during type layout when there's a `[type error]`)
 - #85973 (Replace a `match` with an `if let`)
 - #85996 (rustbuild: take changes to the standard library into account for `download-rustc`)
 - #86016 (Unify duplicate linker_and_flavor methods in rustc_codegen_{cranelift,ssa}.)
 - #86025 (Remove the install prefix from the rpath set when using -Crpath)
 - #86081 (Use `try_into` instead of asserting manually)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

3 years agoRollup merge of #86081 - LingMan:try_into, r=jyn514
Yuki Okushi [Mon, 7 Jun 2021 06:21:05 +0000 (15:21 +0900)]
Rollup merge of #86081 - LingMan:try_into, r=jyn514

Use `try_into` instead of asserting manually

`@rustbot` modify labels +C-cleanup +T-compiler

3 years agoRollup merge of #86025 - bjorn3:no_rpath_cfg_prefix, r=jackh726
Yuki Okushi [Mon, 7 Jun 2021 06:21:04 +0000 (15:21 +0900)]
Rollup merge of #86025 - bjorn3:no_rpath_cfg_prefix, r=jackh726

Remove the install prefix from the rpath set when using -Crpath

It was broken anyway for rustup installs and nobody seems to have noticed.

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

3 years agoRollup merge of #86016 - luqmana:infer-linker-flavor, r=petrochenkov
Yuki Okushi [Mon, 7 Jun 2021 06:21:03 +0000 (15:21 +0900)]
Rollup merge of #86016 - luqmana:infer-linker-flavor, r=petrochenkov

Unify duplicate linker_and_flavor methods in rustc_codegen_{cranelift,ssa}.

The two methods were exactly the same so this removes the cranelift copy. This will help make sure both they don't get out of sync.

3 years agoRollup merge of #85996 - jyn514:library-changes, r=Mark-Simulacrum
Yuki Okushi [Mon, 7 Jun 2021 06:21:02 +0000 (15:21 +0900)]
Rollup merge of #85996 - jyn514:library-changes, r=Mark-Simulacrum

rustbuild: take changes to the standard library into account for `download-rustc`

Previously, changing the standard library with `download-rustc =
"if-unchanged"` would incorrectly reuse the cached compiler and standard
library from CI, which was confusing and led to incorrect test failures
or successes.

r? `@Mark-Simulacrum`

3 years agoRollup merge of #85973 - LingMan:indentation, r=jyn514
Yuki Okushi [Mon, 7 Jun 2021 06:21:01 +0000 (15:21 +0900)]
Rollup merge of #85973 - LingMan:indentation, r=jyn514

Replace a `match` with an `if let`

Seems like a better fit here and saves one level of indentation.

`@rustbot` modify labels +C-cleanup +T-compiler

3 years agoRollup merge of #84262 - camelid:sized-ice, r=estebank
Yuki Okushi [Mon, 7 Jun 2021 06:20:56 +0000 (15:20 +0900)]
Rollup merge of #84262 - camelid:sized-ice, r=estebank

Fix ICE during type layout when there's a `[type error]`

Fixes #84108.

Based on estebank's [comment], except I used `delay_span_bug` because it
should work in more cases, and I think it expresses its intent more
clearly.

r? `@estebank`

[comment]: https://github.com/rust-lang/rust/issues/84108#issuecomment-818916848

3 years ago:arrow_up: rust-analyzer
Laurențiu Nicola [Mon, 7 Jun 2021 05:15:15 +0000 (08:15 +0300)]
:arrow_up: rust-analyzer

3 years agoAuto merge of #85810 - bjorn3:further_driver_cleanup, r=varkor
bors [Mon, 7 Jun 2021 02:30:24 +0000 (02:30 +0000)]
Auto merge of #85810 - bjorn3:further_driver_cleanup, r=varkor

Driver improvements

This PR contains a couple of cleanups for the driver and a few small improvements for the custom codegen backend interface. It also implements `--version` and `-Cpasses=list` support for custom codegen backends.

3 years agoAuto merge of #86080 - GuillaumeGomez:rollup-vb5g14e, r=GuillaumeGomez
bors [Mon, 7 Jun 2021 00:01:10 +0000 (00:01 +0000)]
Auto merge of #86080 - GuillaumeGomez:rollup-vb5g14e, r=GuillaumeGomez

Rollup of 8 pull requests

Successful merges:

 - #83433 (Pass --cfg=bootstrap for proc macros built by stage0)
 - #84940 (Don't run sanity checks for `x.py setup`)
 - #85912 (Use `Iterator::any` and `filter_map` instead of open-coding them)
 - #85965 (Remove dead code from `LocalAnalyzer`)
 - #86010 (Fix two ICEs in the parser)
 - #86040 (Fix display for search results)
 - #86058 (Remove `_`  from E0121 diagnostic suggestions)
 - #86077 (Fix corrected example in E0759.md)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

3 years agoUpdate testsuite to match new panic msg
Reagan McFarland [Sun, 6 Jun 2021 23:38:53 +0000 (19:38 -0400)]
Update testsuite to match new panic msg

This patch fixes tests from failing that were matching on `Box<Any>`,
which was the old panic message. Since the new panic message is `Box<dyn
Any>`, the tests have been updated to match against this instead.

3 years agoUse `try_into` instead of asserting manually
LingMan [Sun, 6 Jun 2021 23:27:40 +0000 (01:27 +0200)]
Use `try_into` instead of asserting manually

3 years agoRollup merge of #86077 - FabianWolff:issue-86061, r=GuillaumeGomez
Guillaume Gomez [Sun, 6 Jun 2021 23:06:55 +0000 (01:06 +0200)]
Rollup merge of #86077 - FabianWolff:issue-86061, r=GuillaumeGomez

Fix corrected example in E0759.md

This pull request fixes #86061, which was probably caused by a copy-paste error, where the supposedly corrected code example was also marked with `compile_fail`. Thus, the fact that the "correct" example actually _isn't_ correct was not caught by the doc-tests. This pull request removes the incorrect `compile_fail` annotation and fixes the example.

r? ``@GuillaumeGomez``

3 years agoRollup merge of #86058 - fee1-dead:E0121-improvements, r=jackh726
Guillaume Gomez [Sun, 6 Jun 2021 23:06:54 +0000 (01:06 +0200)]
Rollup merge of #86058 - fee1-dead:E0121-improvements, r=jackh726

Remove `_`  from E0121 diagnostic suggestions

Fixes #86021.

3 years agoRollup merge of #86040 - GuillaumeGomez:search-result-display-height, r=jsha
Guillaume Gomez [Sun, 6 Jun 2021 23:06:53 +0000 (01:06 +0200)]
Rollup merge of #86040 - GuillaumeGomez:search-result-display-height, r=jsha

Fix display for search results

This fixes unwanted margin and font-weight coming from `.method`. Before:

![Screenshot from 2021-06-05 23-03-34](https://user-images.githubusercontent.com/3050060/120905486-9e46f380-c652-11eb-8008-6db6e0517ba3.png)

after:

![Screenshot from 2021-06-05 23-05-02](https://user-images.githubusercontent.com/3050060/120905489-9edf8a00-c652-11eb-817d-f676f6ab7303.png)

r? ``@jsha``

3 years agoRollup merge of #86010 - FabianWolff:ICE-parser, r=varkor
Guillaume Gomez [Sun, 6 Jun 2021 23:06:52 +0000 (01:06 +0200)]
Rollup merge of #86010 - FabianWolff:ICE-parser, r=varkor

Fix two ICEs in the parser

This pull request fixes #84104 and fixes #84148. The latter is caused by an invalid `assert_ne!()` in the parser, which I have simply removed because the error is then caught in another part of the parser.

#84104 is somewhat more subtle and has to do with a suggestion to remove extraneous `<` characters; for instance:
```rust
fn main() {
    foo::<Ty<<<i32>();
}
```
currently leads to
```
error: unmatched angle brackets
 --> unmatched-langle.rs:2:10
  |
2 |     foo::<Ty<<<i32>();
  |          ^^^ help: remove extra angle brackets
```
which is obviously wrong and stems from the fact that the code for issuing the above suggestion does not consider the possibility that there might be other tokens in between the opening angle brackets. In #84104, this has led to a span being generated that ends in the middle of a multi-byte character (because the code issuing the suggestion thought that it was only skipping over `<`, which are single-byte), causing an ICE.

3 years agoRollup merge of #85965 - tmiasko:a, r=nagisa
Guillaume Gomez [Sun, 6 Jun 2021 23:06:51 +0000 (01:06 +0200)]
Rollup merge of #85965 - tmiasko:a, r=nagisa

Remove dead code from `LocalAnalyzer`

3 years agoRollup merge of #85912 - LingMan:iter_any, r=nagisa
Guillaume Gomez [Sun, 6 Jun 2021 23:06:50 +0000 (01:06 +0200)]
Rollup merge of #85912 - LingMan:iter_any, r=nagisa

Use `Iterator::any` and `filter_map` instead of open-coding them

``@rustbot`` modify labels +C-cleanup +T-compiler

3 years agoRollup merge of #84940 - jyn514:ninja, r=Mark-Simulacrum
Guillaume Gomez [Sun, 6 Jun 2021 23:06:49 +0000 (01:06 +0200)]
Rollup merge of #84940 - jyn514:ninja, r=Mark-Simulacrum

Don't run sanity checks for `x.py setup`

These requirements change as soon as the command finishes running, and
`setup` doesn't build anything, so the check doesn't make sense.

Previously, `x.py setup` would give hard errors if `ninja` and `cmake`
were not installed, even if the new profile didn't require them.

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

3 years agoRollup merge of #83433 - jyn514:cfg-bootstrap-macro, r=Mark-Simulacrum
Guillaume Gomez [Sun, 6 Jun 2021 23:06:48 +0000 (01:06 +0200)]
Rollup merge of #83433 - jyn514:cfg-bootstrap-macro, r=Mark-Simulacrum

Pass --cfg=bootstrap for proc macros built by stage0

Cargo has a bug where it ignores RUSTFLAGS when building proc macro
crates (https://github.com/rust-lang/cargo/issues/4423).
However, sometimes rustc_macro needs to have conditional
compilation when there are breaking changes to the `libproc_macro` API
(see for example #83363). Previously, this wasn't possible, because the
crate couldn't tell the difference between stage 0 and stage 1.

Another alternative is to unconditionally build rustc_macros with the
master libstd instead of the beta one (i.e. use `--sysroot
stage0-sysroot`), but that led to strange and maddening errors:

```
error[E0460]: found possibly newer version of crate `std` which `synstructure` depends on
 --> compiler/rustc_macros/src/lib.rs:5:5
  |
5 | use synstructure::decl_derive;
  |     ^^^^^^^^^^^^
  |
  = note: perhaps that crate needs to be recompiled?
  = note: the following crate versions were found:
          crate `std`: /home/joshua/rustc2/build/x86_64-unknown-linux-gnu/stage0-sysroot/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-b3602c301b71cc3d.rmeta
          crate `synstructure`: /home/joshua/rustc2/build/x86_64-unknown-linux-gnu/stage0-rustc/release/deps/libsynstructure-74ee66863479e972.rmeta
error[E0460]: found possibly newer version of crate `std` which `proc_macro2` depends on
  --> /home/joshua/.local/lib/cargo/registry/src/github.com-1ecc6299db9ec823/tracing-attributes-0.1.13/src/lib.rs:90:5
   |
90 | use proc_macro2::TokenStream;
   |     ^^^^^^^^^^^
   |
   = note: perhaps that crate needs to be recompiled?
   = note: the following crate versions were found:
           crate `std`: /home/joshua/rustc2/build/x86_64-unknown-linux-gnu/stage0-sysroot/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-b3602c301b71cc3d.rmeta
           crate `proc_macro2`: /home/joshua/rustc2/build/x86_64-unknown-linux-gnu/stage0-rustc/release/deps/libproc_macro2-a83c1f01610c129e.rlib
```

r? `@Mark-Simulacrum` cc `@jhpratt`

3 years agoAdd test to check that font-weight is correctly set on type page
Guillaume Gomez [Sun, 6 Jun 2021 21:06:49 +0000 (23:06 +0200)]
Add test to check that font-weight is correctly set on type page

3 years agoFix invalid weight for type pages
Guillaume Gomez [Sun, 6 Jun 2021 21:06:01 +0000 (23:06 +0200)]
Fix invalid weight for type pages