]> git.lizzy.rs Git - rust.git/log
rust.git
4 years agoAuto merge of #74117 - Manishearth:rollup-ds7z0kx, r=Manishearth
bors [Tue, 7 Jul 2020 00:56:44 +0000 (00:56 +0000)]
Auto merge of #74117 - Manishearth:rollup-ds7z0kx, r=Manishearth

Rollup of 14 pull requests

Successful merges:

 - #70563 ([rustdoc] Page hash handling)
 - #73856 (Edit librustc_lexer top-level docs)
 - #73870 (typeck: adding type information to projection)
 - #73953 (Audit hidden/short code suggestions)
 - #73962 (libstd/net/tcp.rs: #![deny(unsafe_op_in_unsafe_fn)])
 - #73969 (mir: mark mir construction temporaries as internal)
 - #73974 (Move A|Rc::as_ptr from feature(weak_into_raw) to feature(rc_as_ptr))
 - #74067 (rustdoc: Restore underline text decoration on hover for FQN in header)
 - #74074 (Fix the return type of Windows' `OpenOptionsExt::security_qos_flags`.)
 - #74078 (Always resolve type@primitive as a primitive, not a module)
 - #74089 (Add rust-analyzer to the build manifest)
 - #74090 (Remove unused RUSTC_DEBUG_ASSERTIONS)
 - #74102 (Fix const prop ICE)
 - #74112 (Expand abbreviation in core::ffi description)

Failed merges:

r? @ghost

4 years agoRollup merge of #74112 - pierwill:patch-2, r=sfackler
Manish Goregaokar [Tue, 7 Jul 2020 00:45:41 +0000 (17:45 -0700)]
Rollup merge of #74112 - pierwill:patch-2, r=sfackler

Expand abbreviation in core::ffi description

4 years agoRollup merge of #74102 - oli-obk:const_prop_icde, r=wesleywiser
Manish Goregaokar [Tue, 7 Jul 2020 00:45:39 +0000 (17:45 -0700)]
Rollup merge of #74102 - oli-obk:const_prop_icde, r=wesleywiser

Fix const prop ICE

we used to erase the local just before we tried to read it for diagnostics

fixes #73993

r? @wesleywiser

4 years agoRollup merge of #74090 - tmiasko:rustc-debug-assertions, r=RalfJung
Manish Goregaokar [Tue, 7 Jul 2020 00:45:37 +0000 (17:45 -0700)]
Rollup merge of #74090 - tmiasko:rustc-debug-assertions, r=RalfJung

Remove unused RUSTC_DEBUG_ASSERTIONS

Since #73374 the rustc wrapper no longer configures debug assertions
based on RUSTC_DEBUG_ASSERTIONS environment variable.

r? @RalfJung

4 years agoRollup merge of #74089 - matklad:ship-rust-analyzer-some-more, r=pietroalbini
Manish Goregaokar [Tue, 7 Jul 2020 00:45:35 +0000 (17:45 -0700)]
Rollup merge of #74089 - matklad:ship-rust-analyzer-some-more, r=pietroalbini

Add rust-analyzer to the build manifest

Does not die locally, produces `rust-analyzer-0.1.0-dev-x86_64-unknown-linux-gnu.tar.gz.sha256` and add something about rust-analyzer to some `.toml` file. Seems like a success?

4 years agoRollup merge of #74078 - jyn514:lut, r=Manishearth
Manish Goregaokar [Tue, 7 Jul 2020 00:45:34 +0000 (17:45 -0700)]
Rollup merge of #74078 - jyn514:lut, r=Manishearth

Always resolve type@primitive as a primitive, not a module

Previously, if there were a module in scope with the same name as the
primitive, that would take precedence. Coupled with
https://github.com/rust-lang/rust/issues/58699, this made it impossible
to link to the primitive when that module was in scope.

This approach could be extended so that `struct@foo` would no longer resolve
to any type, etc. However, it could not be used for glob imports:

```rust
pub mod foo {
  pub struct Bar;
}

pub enum Bar {}
use foo::*;

// This is expected to link to `inner::Bar`, but instead it will link to the enum.
/// Link to [struct@Bar]
pub struct MyDocs;
```

The reason for this is that this change does not affect the resolution
algorithm of rustc_resolve at all. The only reason we could special-case
primitives is because we have a list of all possible primitives ahead of time.

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

r? @Manishearth

4 years agoRollup merge of #74074 - sunfishcode:windows-openoptionsext-return-type, r=LukasKalbe...
Manish Goregaokar [Tue, 7 Jul 2020 00:45:32 +0000 (17:45 -0700)]
Rollup merge of #74074 - sunfishcode:windows-openoptionsext-return-type, r=LukasKalbertodt

Fix the return type of Windows' `OpenOptionsExt::security_qos_flags`.

This adjusts the return type of Windows' `OpenOptionsExt::security_qos_flags`
to be consistent with the other functions in the trait.

4 years agoRollup merge of #74067 - rye:rustdoc-fqn-hover-underline, r=GuillaumeGomez
Manish Goregaokar [Tue, 7 Jul 2020 00:45:30 +0000 (17:45 -0700)]
Rollup merge of #74067 - rye:rustdoc-fqn-hover-underline, r=GuillaumeGomez

rustdoc: Restore underline text decoration on hover for FQN in header

This causes the components of FQN's (e.g. `std`, `net`, and `Ipv4Addr` of the FQN `std::net::Ipv4Addr`) to behave similarly to other links in the contents of rustdoc-styled pages. When the user hovers over them, more clearly indicating that they can be used for navigation.

I (and I hope others at least in part) have found the prior design to be somewhat confusing, as it is not clear (upon hovering) that the various parts of the FQN are actually links that the user can navigate to.

<details><summary>📸 Before, mouse hovered over "net" in the FQN</summary>
<img alt="A rustdoc page with the mouse hovered over the fully-qualified name in the page header, producing no visual change" src="https://user-images.githubusercontent.com/1566689/86538363-4c827000-bebb-11ea-8291-5ea6b85d7e19.png" />
</details>
<details><summary>📸 After, mouse hovered over "net" in the FQN</summary>
<img alt="A rustdoc page with the mouse hovered over the fully-qualified name in the page header, now with an underline showing up under the word hovered over by the mouse" src="https://user-images.githubusercontent.com/1566689/86538471-d3374d00-bebb-11ea-9bb3-7aa2d7a4800b.png" />
</details>

4 years agoRollup merge of #73974 - CAD97:rc-no-weak, r=dtolnay
Manish Goregaokar [Tue, 7 Jul 2020 00:45:28 +0000 (17:45 -0700)]
Rollup merge of #73974 - CAD97:rc-no-weak, r=dtolnay

Move A|Rc::as_ptr from feature(weak_into_raw) to feature(rc_as_ptr)

These were stabilized alongside the Weak versions, but having `feature = "weak_.."` on a fn definition for the non-weak pointers is potentially very misleading, especially in a review context where the impl header may not be immediately visible.

r? @RalfJung
@bors rollup=always

4 years agoRollup merge of #73969 - davidtwco:issue-73914-checkedadd-temp-generator-interior...
Manish Goregaokar [Tue, 7 Jul 2020 00:45:26 +0000 (17:45 -0700)]
Rollup merge of #73969 - davidtwco:issue-73914-checkedadd-temp-generator-interior, r=matthewjasper

mir: mark mir construction temporaries as internal

Fixes #73914.

This PR marks temporaries from MIR construction as internal such that they are skipped in `sanitize_witness` (where each MIR local is checked to have been contained within the generator interior computed during typeck). This resolves an ICE whereby the construction of checked addition introduced a `(u64, bool)` temporary which was not in the HIR and thus not in the generator interior.

r? @matthewjasper

4 years agoRollup merge of #73962 - ryr3:unsafe_tcp, r=LukasKalbertodt
Manish Goregaokar [Tue, 7 Jul 2020 00:45:24 +0000 (17:45 -0700)]
Rollup merge of #73962 - ryr3:unsafe_tcp, r=LukasKalbertodt

libstd/net/tcp.rs: #![deny(unsafe_op_in_unsafe_fn)]

Enclose unsafe operations in unsafe blocks for net/tcp.rs. Fixes part of #73904.

4 years agoRollup merge of #73953 - JohnTitor:audit-hidden-sugg, r=estebank
Manish Goregaokar [Tue, 7 Jul 2020 00:45:22 +0000 (17:45 -0700)]
Rollup merge of #73953 - JohnTitor:audit-hidden-sugg, r=estebank

Audit hidden/short code suggestions

Should fix #73641.
Audit uses of `span_suggestion_short` and `tool_only_span_suggestion` (`span_suggestion_hidden` is already tested with `run-rustfix`). Leave some FIXMEs for futher improvements/fixes.
r? @estebank

4 years agoRollup merge of #73870 - sexxi-goose:projection-ty, r=nikomatsakis
Manish Goregaokar [Tue, 7 Jul 2020 00:45:20 +0000 (17:45 -0700)]
Rollup merge of #73870 - sexxi-goose:projection-ty, r=nikomatsakis

typeck: adding type information to projection

This commit modifies the Place as follow:
* remove 'ty' from ProjectionKind
* add type information into to Projection
* replace 'ty' in Place with 'base_ty'
* introduce 'ty()' in `Place` to return the final type of the `Place`
* introduce `ty_before_projection()` in `Place` to return the type of
  a `Place` before i'th projection is applied

Closes https://github.com/rust-lang/project-rfc-2229/issues/5

4 years agoRollup merge of #73856 - pierwill:pierwill-lexer-doc, r=jonas-schievink
Manish Goregaokar [Tue, 7 Jul 2020 00:45:17 +0000 (17:45 -0700)]
Rollup merge of #73856 - pierwill:pierwill-lexer-doc, r=jonas-schievink

Edit librustc_lexer top-level docs

Minor edit, and adds link to librustc_parse::lexer.

4 years agoRollup merge of #70563 - GuillaumeGomez:page-hash-handling, r=ollie27,kinnison
Manish Goregaokar [Tue, 7 Jul 2020 00:45:15 +0000 (17:45 -0700)]
Rollup merge of #70563 - GuillaumeGomez:page-hash-handling, r=ollie27,kinnison

[rustdoc] Page hash handling

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

A good example to see the change is to use this URL: https://doc.rust-lang.org/nightly/std/string/struct.String.html#from_iter.v-3

After the change, it actually goes to the target element (and change the page hash to something more clear for the users).

r? @kinnison

cc @ollie27

4 years agolibstd: remove some mutable statics in sys::unix
Andy Russell [Fri, 3 Jul 2020 18:13:22 +0000 (14:13 -0400)]
libstd: remove some mutable statics in sys::unix

4 years agoEdit librustc_lexer top-level docs
pierwill [Sun, 28 Jun 2020 23:32:28 +0000 (16:32 -0700)]
Edit librustc_lexer top-level docs

Add link to librustc_parse::lexer

4 years agoExpand abbreviation in core::ffi description
pierwill [Mon, 6 Jul 2020 21:30:37 +0000 (14:30 -0700)]
Expand abbreviation in core::ffi description

4 years agoAuto merge of #73978 - Mark-Simulacrum:shrink-paramenv, r=nnethercote
bors [Mon, 6 Jul 2020 20:44:16 +0000 (20:44 +0000)]
Auto merge of #73978 - Mark-Simulacrum:shrink-paramenv, r=nnethercote

Shrink ParamEnv to 16 bytes

r? @nnethercote

x.py check passes but I haven't tried running perf or tests

4 years agoAdd test for issue 74083
Gary Guo [Mon, 6 Jul 2020 20:06:58 +0000 (21:06 +0100)]
Add test for issue 74083

4 years agoAdd UI test for issue 74082
Gary Guo [Mon, 6 Jul 2020 20:04:54 +0000 (21:04 +0100)]
Add UI test for issue 74082

4 years agoOnly allow `repr(i128/u128)` on enum
Gary Guo [Mon, 6 Jul 2020 19:42:19 +0000 (20:42 +0100)]
Only allow `repr(i128/u128)` on enum

4 years agoHide `&mut self` methods from Deref in sidebar
Gary Guo [Mon, 6 Jul 2020 19:32:26 +0000 (20:32 +0100)]
Hide `&mut self` methods from Deref in sidebar

If there are no `DerefMut` impl for the type.

4 years agofixups
Jon Gjengset [Mon, 6 Jul 2020 15:52:20 +0000 (11:52 -0400)]
fixups

4 years agoAdd guard to check for local `core` crate
Seth Pellegrino [Mon, 6 Jul 2020 15:46:44 +0000 (08:46 -0700)]
Add guard to check for local `core` crate

4 years agoRemove pointless `black_box` call, add a comment about the `unaligned_` benches,...
Thom Chiovoloni [Mon, 6 Jul 2020 14:43:32 +0000 (07:43 -0700)]
Remove pointless `black_box` call, add a comment about the `unaligned_` benches, and clean up stray semicolon

4 years agoAdd VecDeque::range* methods
Jon Gjengset [Mon, 6 Jul 2020 14:33:24 +0000 (10:33 -0400)]
Add VecDeque::range* methods

This patch adds `VecDeque::range` and `VecDeque::range_mut` to provide
iterators over a sub-range of a `VecDeque`. This behavior can be
emulated with `skip` and `take`, but directly providing a `Range` is
more ergonomic. This also partially makes up for `VecDeque`'s lack of
`SliceIndex` support.

4 years agoAdd rust-analyzer to the build manifest
Aleksey Kladov [Mon, 6 Jul 2020 08:26:49 +0000 (10:26 +0200)]
Add rust-analyzer to the build manifest

4 years agoAlways resolve type@primitive as a primitive, not a module
Joshua Nelson [Mon, 6 Jul 2020 01:20:31 +0000 (21:20 -0400)]
Always resolve type@primitive as a primitive, not a module

Previously, if there were a module in scope with the same name as the
primitive, that would take precedence. Coupled with
https://github.com/rust-lang/rust/issues/58699, this made it impossible
to link to the primitive when that module was in scope.

This approach could be extended so that `struct@foo` would no longer resolve
to any type, etc. However, it could not be used for glob imports:

```rust
pub mod foo {
  pub struct Bar;
}

pub enum Bar {}
use foo::*;

// This is expected to link to `inner::Bar`, but instead it will link to the enum.
/// Link to [struct@Bar]
pub struct MyDocs;
```

The reason for this is that this change does not affect the resolution
algorithm of rustc_resolve at all. The only reason we could special-case
primitives is because we have a list of all possible primitives ahead of time.

4 years agoUse relative path for local links to primitives in libcore
Seth Pellegrino [Mon, 6 Jul 2020 00:22:21 +0000 (17:22 -0700)]
Use relative path for local links to primitives in libcore

Else, links to `char::foo` would point into `/path/to/src/libcore/std/primitive.char.html#method.foo`.

Split out from #73804.

4 years agoAuto merge of #74073 - Manishearth:rollup-faqo9lx, r=Manishearth
bors [Sun, 5 Jul 2020 23:08:08 +0000 (23:08 +0000)]
Auto merge of #74073 - Manishearth:rollup-faqo9lx, r=Manishearth

Rollup of 12 pull requests

Successful merges:

 - #72688 (added .collect() into String from Box<str>)
 - #73787 (Add unstable docs for rustc_attrs)
 - #73834 (Some refactoring around intrinsic type checking)
 - #73871 (Fix try_print_visible_def_path for Rust 2018)
 - #73937 (Explain exhaustive matching on {usize,isize} maximum values)
 - #73973 (Use `Span`s to identify unreachable subpatterns in or-patterns)
 - #74000 (add `lazy_normalization_consts` feature gate)
 - #74025 (Remove unnecessary release from Arc::try_unwrap)
 - #74027 (Convert more `DefId`s to `LocalDefId`s)
 - #74055 (Fix spacing in Iterator fold doc)
 - #74057 (expected_found `&T` -> `T`)
 - #74064 (variant_count: avoid incorrect dummy implementation)

Failed merges:

r? @ghost

4 years agoRollup merge of #74064 - RalfJung:variant-count-bootstrap, r=kennytm
Manish Goregaokar [Sun, 5 Jul 2020 23:07:39 +0000 (16:07 -0700)]
Rollup merge of #74064 - RalfJung:variant-count-bootstrap, r=kennytm

variant_count: avoid incorrect dummy implementation

This also avoids a stage 0 doctest failure.

4 years agoRollup merge of #74057 - lcnr:expected_found, r=davidtwco
Manish Goregaokar [Sun, 5 Jul 2020 23:07:37 +0000 (16:07 -0700)]
Rollup merge of #74057 - lcnr:expected_found, r=davidtwco

expected_found `&T` -> `T`

4 years agoRollup merge of #74055 - pickfire:patch-1, r=jonas-schievink
Manish Goregaokar [Sun, 5 Jul 2020 23:07:35 +0000 (16:07 -0700)]
Rollup merge of #74055 - pickfire:patch-1, r=jonas-schievink

Fix spacing in Iterator fold doc

4 years agoRollup merge of #74027 - lcnr:ConstCx-local-def-id, r=varkor
Manish Goregaokar [Sun, 5 Jul 2020 23:07:34 +0000 (16:07 -0700)]
Rollup merge of #74027 - lcnr:ConstCx-local-def-id, r=varkor

Convert more `DefId`s to `LocalDefId`s

4 years agoRollup merge of #74025 - tmiasko:try-unwrap, r=Amanieu
Manish Goregaokar [Sun, 5 Jul 2020 23:07:32 +0000 (16:07 -0700)]
Rollup merge of #74025 - tmiasko:try-unwrap, r=Amanieu

Remove unnecessary release from Arc::try_unwrap

The thread that recovers the unique access to Arc inner value (e.g., drop
when ref-count strong reaches zero, successful try_unwrap), ensures that
other operations on Arc inner value happened before by synchronizing
with release operations performed when decrementing the reference counter.

When try_unwrap succeeds, the current thread recovers the unique access
to Arc inner value, so release is unnecessary.

r? @Amanieu

4 years agoRollup merge of #74000 - lcnr:lazy_normalisation_consts, r=varkor
Manish Goregaokar [Sun, 5 Jul 2020 23:07:30 +0000 (16:07 -0700)]
Rollup merge of #74000 - lcnr:lazy_normalisation_consts, r=varkor

add `lazy_normalization_consts` feature gate

In #71973 I underestimated the amount of code which is influenced by lazy normalization of consts
and decided against having a separate feature flag for this.

Looking a bit more into this, the following issues are already working with lazy norm in its current state #47814 #57739 #73980

I therefore think it is worth it to enable lazy norm separately. Note that `#![feature(const_generics)]` still automatically activates
this feature, so using `#![feature(const_generics, lazy_normalization_consts)]` is redundant.

r? @varkor @nikomatsakis

4 years agoRollup merge of #73973 - Nadrieril:fix-71977, r=matthewjasper
Manish Goregaokar [Sun, 5 Jul 2020 23:07:28 +0000 (16:07 -0700)]
Rollup merge of #73973 - Nadrieril:fix-71977, r=matthewjasper

Use `Span`s to identify unreachable subpatterns in or-patterns

Fixes #71977

4 years agoRollup merge of #73937 - JohnTitor:note-exhaustive-sized-int, r=varkor
Manish Goregaokar [Sun, 5 Jul 2020 23:07:27 +0000 (16:07 -0700)]
Rollup merge of #73937 - JohnTitor:note-exhaustive-sized-int, r=varkor

Explain exhaustive matching on {usize,isize} maximum values

The wording is taken from https://github.com/rust-lang/rfcs/blob/master/text/2591-exhaustive-integer-pattern-matching.md#reference-level-explanation.
Fixes #73919

r? @varkor

4 years agoRollup merge of #73871 - da-x:private-types-2018-no-extern, r=petrochenkov
Manish Goregaokar [Sun, 5 Jul 2020 23:07:25 +0000 (16:07 -0700)]
Rollup merge of #73871 - da-x:private-types-2018-no-extern, r=petrochenkov

Fix try_print_visible_def_path for Rust 2018

The recursive check of `try_print_visible_def_path` did not properly handle the Rust 2018 case of crate-paths without 'extern crate'. Instead, it returned a "not found" via (false, self).

 This fixes #56175.

4 years agoRollup merge of #73834 - oli-obk:safe_intrinsics, r=ecstatic-morse
Manish Goregaokar [Sun, 5 Jul 2020 23:07:23 +0000 (16:07 -0700)]
Rollup merge of #73834 - oli-obk:safe_intrinsics, r=ecstatic-morse

Some refactoring around intrinsic type checking

So... This PR went a bit overboard. I wanted to make the `rustc_peek` intrinsic safe (cc @ecstatic-morse ), and remembered a long-standing itch of mine. So I made that huge `&str` match for the intrinsic name a match on `Symbol`s (so basically `u32`s). This is unlikely to have a positive perf effect, even if it likely has better codegen (intrinsics are used rarely, mostly once in their wrapper), so it's mostly a consistency thing since other places actually match on the symbol name of the intrinsics.

4 years agoRollup merge of #73787 - pickfire:rustc-attrs, r=RalfJung
Manish Goregaokar [Sun, 5 Jul 2020 23:07:21 +0000 (16:07 -0700)]
Rollup merge of #73787 - pickfire:rustc-attrs, r=RalfJung

Add unstable docs for rustc_attrs

r? @RalfJung

4 years agoRollup merge of #72688 - djugei:master, r=Amanieu
Manish Goregaokar [Sun, 5 Jul 2020 23:07:19 +0000 (16:07 -0700)]
Rollup merge of #72688 - djugei:master, r=Amanieu

added .collect() into String from Box<str>

I have not created an rfc, because i felt like this is a very minor change.

i have just set a random feature name and rust version as stability attribute, i expect to have to change that, i just don't know what the policy on that is. all guides i could find focused on contributing to the compiler, not contributing to the standard library.

drawbacks: more code in the standard library, could be replaced with specialization: base-implementation for AsRef\<str> and specialization for String and Cow. i can write that code if ppl want it.

advantages: using "real strings" i.e. Box\<str> is as ergonomic as string slices (&str) and string buffers (String) with iterators.

4 years agoFix the return type of Windows' `OpenOptionsExt::security_qos_flags`.
Dan Gohman [Fri, 3 Jul 2020 19:05:59 +0000 (12:05 -0700)]
Fix the return type of Windows' `OpenOptionsExt::security_qos_flags`.

This adjusts the return type of Windows' `OpenOptionsExt::security_qos_flags`
to be consistent with the other functions in the trait.

4 years agoAdd 'unrolled' is_ascii_align_to benchmark, and move is_ascii benchmarks into own...
Thom Chiovoloni [Sun, 5 Jul 2020 22:52:13 +0000 (15:52 -0700)]
Add 'unrolled' is_ascii_align_to benchmark, and move is_ascii benchmarks into own file

4 years agoRemove unused RUSTC_DEBUG_ASSERTIONS
Tomasz MiÄ…sko [Mon, 6 Jul 2020 00:00:00 +0000 (00:00 +0000)]
Remove unused RUSTC_DEBUG_ASSERTIONS

Since #73374 the rustc wrapper no longer configures debug assertions
based on RUSTC_DEBUG_ASSERTIONS environment variable.

4 years agoBenchmark the unaligned case for is_ascii, and add missing SAFETY
Thom Chiovoloni [Sun, 5 Jul 2020 21:51:05 +0000 (14:51 -0700)]
Benchmark the unaligned case for is_ascii, and add missing SAFETY

4 years agoAdd benchmark for slice is_ascii using align_to
Thom Chiovoloni [Sun, 5 Jul 2020 21:33:27 +0000 (14:33 -0700)]
Add benchmark for slice is_ascii using align_to

4 years agoUse for<'tcx> fn pointers in Providers, instead of having Providers<'tcx>.
Eduard-Mihai Burtescu [Sun, 5 Jul 2020 20:00:14 +0000 (23:00 +0300)]
Use for<'tcx> fn pointers in Providers, instead of having Providers<'tcx>.

4 years agoReplace early-bound normalization hack with per-query key/value type aliases.
Eduard-Mihai Burtescu [Sun, 5 Jul 2020 19:58:46 +0000 (22:58 +0300)]
Replace early-bound normalization hack with per-query key/value type aliases.

4 years agoAuto merge of #73879 - ecstatic-morse:discr-switch-uninit, r=oli-obk
bors [Sun, 5 Jul 2020 18:01:47 +0000 (18:01 +0000)]
Auto merge of #73879 - ecstatic-morse:discr-switch-uninit, r=oli-obk

Handle inactive enum variants in `MaybeUninitializedPlaces`

Resolves the first part of #69715.

This is the equivalent of #68528 but for `MaybeUninitializedPlaces`. Because we now notify drop elaboration that inactive enum variants might be uninitialized, some drops get marked as ["open" that were previously "static"](https://github.com/rust-lang/rust/blob/e0e5d82e1677c82d209b214bbfc2cc5705c2336a/src/librustc_mir/transform/elaborate_drops.rs#L191). Unlike in #69715, this isn't strictly better: An "open" drop expands to more MIR than a simple call to the drop shim. However, because drop elaboration considers each field of an "open" drop separately, it can sometimes eliminate unnecessary drops of moved-from or unit-like enum variants. This is the case for `Option::unwrap`, which is reflected in the `mir-opt` test.

cc @eddyb
r? @oli-obk

4 years agorustdoc: Restore underline text decoration on hover for FQN in header
Kristofer Rye [Sun, 5 Jul 2020 16:56:41 +0000 (11:56 -0500)]
rustdoc: Restore underline text decoration on hover for FQN in header

This causes the components of FQN's to behave similarly to other links
in the contents of rustdoc-styled pages.

I (and I hope others at least in part) have found the prior design to be
somewhat confusing, as it is not clear (upon hovering) that the various
parts of the FQN are actually links that the user can navigate to.

In short, this patch makes links in the FQN have an underline when the
user hovers over them, more clearly indicating that they can be used for
navigation.

Signed-off-by: Kristofer Rye <kristofer.rye@gmail.com>
4 years agoAvoid `vec!` allocation in `is_ascii_slice_*` benches
Thom Chiovoloni [Sun, 5 Jul 2020 17:20:01 +0000 (10:20 -0700)]
Avoid `vec!` allocation in `is_ascii_slice_*` benches

4 years agoOptimize is_ascii for &str and &[u8]
Thom Chiovoloni [Sun, 5 Jul 2020 17:09:29 +0000 (10:09 -0700)]
Optimize is_ascii for &str and &[u8]

4 years agovariant_count: avoid incorrect dummy implementation
Ralf Jung [Sun, 5 Jul 2020 16:12:21 +0000 (18:12 +0200)]
variant_count: avoid incorrect dummy implementation

4 years agofmt
Ralf Jung [Sun, 5 Jul 2020 14:01:18 +0000 (16:01 +0200)]
fmt

4 years agoAvoid deconstructing pointer for hashing
Mark Rousskov [Fri, 3 Jul 2020 11:40:37 +0000 (07:40 -0400)]
Avoid deconstructing pointer for hashing

4 years agoShrink ParamEnv to 16 bytes
Mark Rousskov [Fri, 3 Jul 2020 00:52:40 +0000 (20:52 -0400)]
Shrink ParamEnv to 16 bytes

4 years agoconst validation: add test for uninit bool
Ralf Jung [Sun, 5 Jul 2020 11:48:06 +0000 (13:48 +0200)]
const validation: add test for uninit bool

4 years agocatch errors more locally around read_discriminant
Ralf Jung [Sun, 5 Jul 2020 11:40:27 +0000 (13:40 +0200)]
catch errors more locally around read_discriminant

4 years agocatch InvalidUninitBytes during validation
Ralf Jung [Sun, 5 Jul 2020 10:14:12 +0000 (12:14 +0200)]
catch InvalidUninitBytes during validation

4 years agoexpected found `&T` -> `T`
Bastian Kauschke [Sun, 5 Jul 2020 09:38:39 +0000 (11:38 +0200)]
expected found `&T` -> `T`

4 years agoExplain effects of debugging options from config.toml
Tomasz MiÄ…sko [Sun, 5 Jul 2020 00:00:00 +0000 (00:00 +0000)]
Explain effects of debugging options from config.toml

Co-authored-by: Teymour Aldridge <42674621+teymour-aldridge@users.noreply.github.com>
4 years agoFix spacing in Iterator fold doc
Ivan Tham [Sun, 5 Jul 2020 07:23:42 +0000 (15:23 +0800)]
Fix spacing in Iterator fold doc

4 years agoFix #71977
Nadrieril [Thu, 2 Jul 2020 20:49:58 +0000 (21:49 +0100)]
Fix #71977

4 years agoAddress code reviews
Yuki Okushi [Sat, 4 Jul 2020 18:40:59 +0000 (03:40 +0900)]
Address code reviews

4 years agoFix const prop ICE
Oliver Scherer [Sat, 4 Jul 2020 17:30:45 +0000 (19:30 +0200)]
Fix const prop ICE

we used to erase the local just before we tried to read it for diagnostics

4 years agoExplain exhaustive matching on {usize,isize} maximum values
Yuki Okushi [Wed, 1 Jul 2020 17:37:52 +0000 (02:37 +0900)]
Explain exhaustive matching on {usize,isize} maximum values

4 years agoMatch on `Symbol` instead of `&str` for type-checking intrinsics.
Oliver Scherer [Sun, 28 Jun 2020 10:58:20 +0000 (12:58 +0200)]
Match on `Symbol` instead of `&str` for type-checking intrinsics.

4 years agoMake `rustc_peek` a safe intrinsic
Oliver Scherer [Sat, 27 Jun 2020 09:47:18 +0000 (11:47 +0200)]
Make `rustc_peek` a safe intrinsic

4 years agonit
Bastian Kauschke [Sat, 4 Jul 2020 14:20:27 +0000 (16:20 +0200)]
nit

Co-authored-by: varkor <github@varkor.com>
4 years agoinstantiate_opaque_types LocalDefId
Bastian Kauschke [Sat, 4 Jul 2020 12:14:41 +0000 (14:14 +0200)]
instantiate_opaque_types LocalDefId

4 years agoConstCx to LocalDefId
Bastian Kauschke [Sat, 4 Jul 2020 12:02:41 +0000 (14:02 +0200)]
ConstCx to LocalDefId

4 years agoRemove unnecessary release from Arc::try_unwrap
Tomasz MiÄ…sko [Sat, 4 Jul 2020 00:00:00 +0000 (00:00 +0000)]
Remove unnecessary release from Arc::try_unwrap

The thread that recovers the unique access to Arc inner value (e.g., drop
when ref-count strong reaches zero, successful try_unwrap), ensures that
other operations on Arc inner value happened before by synchronizing
with release operations performed when decrementing the reference counter.

When try_unwrap succeeds, the current thread recovers the unique access
to Arc inner value, so release is unnecessary.

4 years agoadd `lazy_normalization_consts` feature gate
Bastian Kauschke [Fri, 3 Jul 2020 16:11:21 +0000 (18:11 +0200)]
add `lazy_normalization_consts` feature gate

4 years agoAuto merge of #72978 - matklad:ship-rust-analyzer, r=Mark-Simulacrum
bors [Sat, 4 Jul 2020 04:54:27 +0000 (04:54 +0000)]
Auto merge of #72978 - matklad:ship-rust-analyzer, r=Mark-Simulacrum

ship rust analyzer

This successfully  builds rust-analyzer as a part of rust repo. I haven't yet added required changes to dist.rs -- seems like I just have to copy-paste quite a bit of code I don't really understand :-)

4 years agoAuto merge of #74019 - Manishearth:rollup-2st3jsk, r=Manishearth
bors [Sat, 4 Jul 2020 01:09:09 +0000 (01:09 +0000)]
Auto merge of #74019 - Manishearth:rollup-2st3jsk, r=Manishearth

Rollup of 12 pull requests

Successful merges:

 - #73140 (Fallback to xml.etree.ElementTree)
 - #73670 (Add `format_args_capture` feature)
 - #73693 (Use exhaustive match in const_prop.rs)
 - #73845 (Use &raw in A|Rc::as_ptr)
 - #73861 (Create E0768)
 - #73881 (Standardize bibliographic citations in rustc API docs)
 - #73925 (Improve comments from #72617, as suggested by RalfJung)
 - #73949 ([mir-opt] Fix mis-optimization and other issues with the SimplifyArmIdentity pass)
 - #73984 (Edit docs for rustc_data_structures::graph::scc)
 - #73985 (Fix "getting started" link)
 - #73997 (fix typo)
 - #73999 (Bump mingw-check CI image from Ubuntu 16.04 to 18.04.)

Failed merges:

 - #74000 (add `lazy_normalization_consts` feature gate)

r? @ghost

4 years agoRollup merge of #73999 - eddyb:svv-prereq, r=Mark-Simulacrum
Manish Goregaokar [Sat, 4 Jul 2020 00:17:10 +0000 (17:17 -0700)]
Rollup merge of #73999 - eddyb:svv-prereq, r=Mark-Simulacrum

Bump mingw-check CI image from Ubuntu 16.04 to 18.04.

I chose 18.04 because we use it for other builders, and it's enough to get a version of MinGW that can build `libssh2-sys`.

This is a prereq for #73902, where `libssh2-sys` shows up as an indirect dependency of `x.py check src/tools/semverver` (through `src/tools/cargo`, which we don't currently `x.py check` because it's not in-tree). See also https://github.com/rust-lang/rust/pull/73902#issuecomment-652414502.

r? @Mark-Simulacrum cc @mati865

4 years agoRollup merge of #73997 - rust-lang:lcnr-patch-1, r=jonas-schievink
Manish Goregaokar [Sat, 4 Jul 2020 00:17:09 +0000 (17:17 -0700)]
Rollup merge of #73997 - rust-lang:lcnr-patch-1, r=jonas-schievink

fix typo

r? @Dylan-DPC

4 years agoRollup merge of #73985 - e00E:fix-getting-started-link, r=jonas-schievink
Manish Goregaokar [Sat, 4 Jul 2020 00:17:07 +0000 (17:17 -0700)]
Rollup merge of #73985 - e00E:fix-getting-started-link, r=jonas-schievink

Fix "getting started" link

The previous link is 404.

4 years agoRollup merge of #73984 - pierwill:pierwill-tarjan, r=jonas-schievink
Manish Goregaokar [Sat, 4 Jul 2020 00:17:05 +0000 (17:17 -0700)]
Rollup merge of #73984 - pierwill:pierwill-tarjan, r=jonas-schievink

Edit docs for rustc_data_structures::graph::scc

- Add newline to provide concise module summary
- Add wikipedia link
- Italicize O notation

4 years agoRollup merge of #73949 - wesleywiser:simplify_try_fixes, r=oli-obk
Manish Goregaokar [Sat, 4 Jul 2020 00:17:03 +0000 (17:17 -0700)]
Rollup merge of #73949 - wesleywiser:simplify_try_fixes, r=oli-obk

[mir-opt] Fix mis-optimization and other issues with the SimplifyArmIdentity pass

This does not yet attempt re-enabling the pass, but it does resolve a number of issues with the pass.

r? @oli-obk

I believe this closes #73223.

4 years agoRollup merge of #73925 - eduardosm:improve-pr72617-comments, r=RalfJung
Manish Goregaokar [Sat, 4 Jul 2020 00:17:01 +0000 (17:17 -0700)]
Rollup merge of #73925 - eduardosm:improve-pr72617-comments, r=RalfJung

Improve comments from #72617, as suggested by RalfJung

r? @RalfJung

4 years agoRollup merge of #73881 - pierwill:pierwill-citations, r=jonas-schievink
Manish Goregaokar [Sat, 4 Jul 2020 00:16:59 +0000 (17:16 -0700)]
Rollup merge of #73881 - pierwill:pierwill-citations, r=jonas-schievink

Standardize bibliographic citations in rustc API docs

See #73877.

4 years agoRollup merge of #73861 - GuillaumeGomez:create-e0767, r=Dylan-DPC
Manish Goregaokar [Sat, 4 Jul 2020 00:16:58 +0000 (17:16 -0700)]
Rollup merge of #73861 - GuillaumeGomez:create-e0767, r=Dylan-DPC

Create E0768

r? @Dylan-DPC

4 years agoRollup merge of #73845 - CAD97:weak-as-unsized-ptr, r=RalfJung
Manish Goregaokar [Sat, 4 Jul 2020 00:16:56 +0000 (17:16 -0700)]
Rollup merge of #73845 - CAD97:weak-as-unsized-ptr, r=RalfJung

Use &raw in A|Rc::as_ptr

This PR uses `&raw` for offsetting `*mut [A]RcInner<T> -> *mut T`.

Additionally, this updates the implementation of `Weak::as_ptr` to support unsized `T`, though it does not yet relax the bounds of `Weak::as_ptr`/`into_raw`/`from_raw` to accept unsized `T`.

4 years agoRollup merge of #73693 - wesleywiser:const_prop_exhaustive_match, r=oli-obk
Manish Goregaokar [Sat, 4 Jul 2020 00:16:54 +0000 (17:16 -0700)]
Rollup merge of #73693 - wesleywiser:const_prop_exhaustive_match, r=oli-obk

Use exhaustive match in const_prop.rs

Addresses a comment left by @RalfJung on #73613

r? @RalfJung

4 years agoRollup merge of #73670 - davidhewitt:format-args-capture, r=varkor
Manish Goregaokar [Sat, 4 Jul 2020 00:16:52 +0000 (17:16 -0700)]
Rollup merge of #73670 - davidhewitt:format-args-capture, r=varkor

Add `format_args_capture` feature

This is the initial implementation PR for [RFC 2795](https://github.com/rust-lang/rfcs/pull/2795).

Note that, as dicussed in the tracking issue (#67984), the feature gate has been called `format_args_capture`.

Next up I guess I need to add documentation for this feature. I've not written any docs before for rustc / std so I would appreciate suggestions on where I should add docs.

4 years agoRollup merge of #73140 - tmiasko:element-tree, r=GuillaumeGomez
Manish Goregaokar [Sat, 4 Jul 2020 00:16:50 +0000 (17:16 -0700)]
Rollup merge of #73140 - tmiasko:element-tree, r=GuillaumeGomez

Fallback to xml.etree.ElementTree

The xml.etree.cElementTree has been deprecated since Python 3.3
and removed in Python 3.9 https://bugs.python.org/issue36543.

4 years agoUpdate UI tests
Guillaume Gomez [Fri, 3 Jul 2020 22:15:08 +0000 (00:15 +0200)]
Update UI tests

4 years agoCreate new E0768 error code for "no valid digits found for number" error
Guillaume Gomez [Fri, 3 Jul 2020 22:12:16 +0000 (00:12 +0200)]
Create new E0768 error code for "no valid digits found for number" error

4 years agoAuto merge of #73650 - pietroalbini:ci-aarch64-gnu, r=Mark-Simulacrum
bors [Fri, 3 Jul 2020 21:16:31 +0000 (21:16 +0000)]
Auto merge of #73650 - pietroalbini:ci-aarch64-gnu, r=Mark-Simulacrum

Add Docker image to run AArch64 Linux tests

This PR adds a Docker image to run the AArch64 Linux test suite on a native AArch64 host platform, which will be used in the future to run the test suite in our CI. The image will also be useful for ARM folks to ensure internally that the bugfixes they submit work.

This will be the first Docker image designed to run on a non-x86_64 host platform, and to prevent surprising behavior this PR moves all images requiring a x86_64 host in the `src/ci/docker/host-x86_64` directory. Paths and scripts are changed accordingly, and a helpful error message is added when someone tries to run an image on the wrong architecture:

```
Invalid image: aarch64-gnu
Note: the image exists for the aarch64 host architecture
Note: the current host architecture is x86_64
```

The old emulated and disabled `aarch64-gnu` builder is also removed in this PR.

This PR is best reviewed commit-by-commit.
r? @Mark-Simulacrum

4 years agoEdit docs for rustc_data_structures::graph::scc
pierwill [Tue, 30 Jun 2020 22:16:18 +0000 (15:16 -0700)]
Edit docs for rustc_data_structures::graph::scc

- Add newline to provide concise module summary
- Add wikipedia link
- Italicize O notation

4 years agoIgnore test with panic on wasm targets
David Hewitt [Fri, 3 Jul 2020 17:17:53 +0000 (18:17 +0100)]
Ignore test with panic on wasm targets

4 years agoBump mingw-check CI image from Ubuntu 16.04 to 18.04.
Eduard-Mihai Burtescu [Fri, 3 Jul 2020 15:27:46 +0000 (18:27 +0300)]
Bump mingw-check CI image from Ubuntu 16.04 to 18.04.

4 years agofix typo
Bastian Kauschke [Fri, 3 Jul 2020 15:21:20 +0000 (17:21 +0200)]
fix typo

4 years agoAdd rust-analyzer submodule
Aleksey Kladov [Thu, 4 Jun 2020 11:11:15 +0000 (13:11 +0200)]
Add rust-analyzer submodule

The current plan is that submodule tracks the `release` branch of
rust-analyzer, which is updated once a week.

rust-analyzer is a workspace (with a virtual manifest), the actual
binary is provide by `crates/rust-analyzer` package.

Note that we intentionally don't add rust-analyzer to `Kind::Test`,
for two reasons.

*First*, at the moment rust-analyzer's test suite does a couple of
things which might not work in the context of rust repository. For
example, it shells out directly to `rustup` and `rustfmt`. So, making
this work requires non-trivial efforts.

*Second*, it seems unlikely that running tests in rust-lang/rust repo
would provide any additional guarantees. rust-analyzer builds with
stable and does not depend on the specifics of the compiler, so
changes to compiler can't break ra, unless they break stability
guarantee. Additionally, rust-analyzer itself is gated on bors, so we
are pretty confident that test suite passes.

4 years agoadjust ub-enum test to be endianess-independent
Ralf Jung [Fri, 3 Jul 2020 10:12:50 +0000 (12:12 +0200)]
adjust ub-enum test to be endianess-independent

4 years agoFix "getting started" link
Valentin [Fri, 3 Jul 2020 09:42:12 +0000 (11:42 +0200)]
Fix "getting started" link

The previous link is 404.

4 years agoci: remove the emulated aarch64-gnu image
Pietro Albini [Tue, 23 Jun 2020 10:46:12 +0000 (12:46 +0200)]
ci: remove the emulated aarch64-gnu image