]> git.lizzy.rs Git - rust.git/log
rust.git
4 years agoTweak `spawn_thread_pool`.
Nicholas Nethercote [Tue, 7 Jul 2020 03:15:02 +0000 (13:15 +1000)]
Tweak `spawn_thread_pool`.

This makes the two versions (parallel and non-parallel) more similar to
each other.

4 years agoAdd an explanatory comment to `scoped_thread`.
Nicholas Nethercote [Tue, 7 Jul 2020 03:10:19 +0000 (13:10 +1000)]
Add an explanatory comment to `scoped_thread`.

4 years agoEliminate `rust_input`.
Nicholas Nethercote [Tue, 7 Jul 2020 04:13:03 +0000 (14:13 +1000)]
Eliminate `rust_input`.

It has a single call site and having it as a separate (higher-order!)
function makes the code harder to read.

4 years agoAuto merge of #74195 - Manishearth:rollup-h3m0sl8, r=Manishearth
bors [Thu, 9 Jul 2020 21:32:02 +0000 (21:32 +0000)]
Auto merge of #74195 - Manishearth:rollup-h3m0sl8, r=Manishearth

Rollup of 14 pull requests

Successful merges:

 - #73292 (Fixing broken link for the Eq trait)
 - #73791 (Allow for parentheses after macro intra-doc-links)
 - #74070 ( Use for<'tcx> fn pointers in Providers, instead of having Providers<'tcx>.)
 - #74077 (Use relative path for local links to primitives)
 - #74079 (Eliminate confusing "globals" terminology.)
 - #74107 (Hide `&mut self` methods from Deref in sidebar if there are no `DerefMut` impl for the type.)
 - #74136 (Fix broken link in rustdocdoc)
 - #74137 (Update cargo)
 - #74142 (Liballoc use vec instead of vector)
 - #74143 (Try remove unneeded ToString import in liballoc slice)
 - #74146 (update miri)
 - #74150 (Avoid "blacklist")
 - #74184 (Add docs for intra-doc-links)
 - #74188 (Tweak `::` -> `:` typo heuristic and reduce verbosity)

Failed merges:

 - #74122 (Start-up clean-up)
 - #74127 (Avoid "whitelist")

r? @ghost

4 years agoRollup merge of #74188 - estebank:tweak-ascription-typo-heuristic, r=petrochenkov
Manish Goregaokar [Thu, 9 Jul 2020 18:50:50 +0000 (11:50 -0700)]
Rollup merge of #74188 - estebank:tweak-ascription-typo-heuristic, r=petrochenkov

Tweak `::` -> `:` typo heuristic and reduce verbosity

Do not trigger on correct type ascription expressions with trailing
operators and _do_ trigger on likely path typos where a turbofish is
used.

On likely path typos, remove note explaining type ascription.

Clean up indentation.

r? @petrochenkov

4 years agoRollup merge of #74184 - Manishearth:doc-intra-doc, r=GuillaumeGomez
Manish Goregaokar [Thu, 9 Jul 2020 18:50:48 +0000 (11:50 -0700)]
Rollup merge of #74184 - Manishearth:doc-intra-doc, r=GuillaumeGomez

Add docs for intra-doc-links

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

Hmm, for some reason my push closed the previous PR

4 years agoRollup merge of #74150 - tamird:blocklist, r=nikomatsakis
Manish Goregaokar [Thu, 9 Jul 2020 18:50:46 +0000 (11:50 -0700)]
Rollup merge of #74150 - tamird:blocklist, r=nikomatsakis

Avoid "blacklist"

Other terms are more inclusive and precise.

Clippy still has a lint named "blacklisted-name", but renaming it would
be a breaking change, so is left for future work.

The target configuration option "abi-blacklist" has been depreciated and
renamed to "unsupported-abis". The old name continues to work.

4 years agoRollup merge of #74146 - RalfJung:miri, r=RalfJung
Manish Goregaokar [Thu, 9 Jul 2020 18:50:44 +0000 (11:50 -0700)]
Rollup merge of #74146 - RalfJung:miri, r=RalfJung

update miri

Fixes https://github.com/rust-lang/rust/issues/74132
Cc @rust-lang/miri r? @ghost

4 years agoRollup merge of #74143 - pickfire:patch-2, r=jonas-schievink
Manish Goregaokar [Thu, 9 Jul 2020 18:50:42 +0000 (11:50 -0700)]
Rollup merge of #74143 - pickfire:patch-2, r=jonas-schievink

Try remove unneeded ToString import in liballoc slice

4 years agoRollup merge of #74142 - pickfire:patch-1, r=dtolnay
Manish Goregaokar [Thu, 9 Jul 2020 18:50:40 +0000 (11:50 -0700)]
Rollup merge of #74142 - pickfire:patch-1, r=dtolnay

Liballoc use vec instead of vector

Keep congruency with other parts, full word vector is rarely used.

4 years agoRollup merge of #74137 - ehuss:update-cargo, r=ehuss
Manish Goregaokar [Thu, 9 Jul 2020 18:50:39 +0000 (11:50 -0700)]
Rollup merge of #74137 - ehuss:update-cargo, r=ehuss

Update cargo

6 commits in fede83ccf973457de319ba6fa0e36ead454d2e20..4f74d9b2a771c58b7ef4906b2668afd075bc8081
2020-07-02 21:51:34 +0000 to 2020-07-08 17:13:00 +0000
- Disable long_file_names test if not supported on Windows. (rust-lang/cargo#8469)
- Add support for deserializing enums in config files (rust-lang/cargo#8454)
- Write GNU tar files, supporting long names. (rust-lang/cargo#8453)
- Don't overwrite existing `rustdoc` args with --document-private-items (rust-lang/cargo#8449)
- Add some help about rustup's +toolchain syntax. (rust-lang/cargo#8455)
- Update metadata man page. (rust-lang/cargo#8451)

4 years agoRollup merge of #74136 - JohnTitor:index-page-link, r=GuillaumeGomez
Manish Goregaokar [Thu, 9 Jul 2020 18:50:37 +0000 (11:50 -0700)]
Rollup merge of #74136 - JohnTitor:index-page-link, r=GuillaumeGomez

Fix broken link in rustdocdoc

The previous link redirects to https://www.rust-lang.org/learn.

4 years agoRollup merge of #74107 - nbdd0121:rustdoc, r=GuillaumeGomez
Manish Goregaokar [Thu, 9 Jul 2020 18:50:34 +0000 (11:50 -0700)]
Rollup merge of #74107 - nbdd0121:rustdoc, r=GuillaumeGomez

Hide `&mut self` methods from Deref in sidebar if there are no `DerefMut` impl for the type.

This partially addresses #74083.

4 years agoRollup merge of #74079 - nnethercote:session-globals, r=nikomatsakis
Manish Goregaokar [Thu, 9 Jul 2020 18:50:32 +0000 (11:50 -0700)]
Rollup merge of #74079 - nnethercote:session-globals, r=nikomatsakis

Eliminate confusing "globals" terminology.

There are some structures that are called "globals", but are they global
to a compilation session, and not truly global. I have always found this
highly confusing, so this commit renames them as "session globals" and
adds a comment explaining things.

Also, the commit fixes an unnecessary nesting of `set()` calls
`src/librustc_errors/json/tests.rs`

r? @Aaron1011

4 years agoRollup merge of #74077 - sethp:docs/fix-intra-doc-primitive-link, r=jyn514
Manish Goregaokar [Thu, 9 Jul 2020 18:50:30 +0000 (11:50 -0700)]
Rollup merge of #74077 - sethp:docs/fix-intra-doc-primitive-link, r=jyn514

Use relative path for local links to primitives

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

Split out from #73804.

4 years agoRollup merge of #74070 - eddyb:forall-tcx-providers, r=nikomatsakis
Manish Goregaokar [Thu, 9 Jul 2020 18:50:28 +0000 (11:50 -0700)]
Rollup merge of #74070 - eddyb:forall-tcx-providers, r=nikomatsakis

 Use for<'tcx> fn pointers in Providers, instead of having Providers<'tcx>.

In order to work around normalization-under-HRTB (for `provide!` in `rustc_metadata`), we ended up with this:
```rust
struct Providers<'tcx> {
    type_of: fn(TyCtxt<'tcx>, DefId) -> Ty<'tcx>,
    // ...
}
```
But what I initially wanted to do, IIRC, was this:
```rust
struct Providers {
    type_of: for<'tcx> fn(TyCtxt<'tcx>, DefId) -> Ty<'tcx>,
    // ...
}
```

This PR moves to the latter, for the simple reason that only the latter allows keeping a `Providers` value, or a subset of its `fn` pointer fields, around in a `static` or `thread_local!`, which can be really useful for custom drivers that override queries.
(@jyn514 and I came across a concrete usecase of that in `rustdoc`)

The `provide!` macro in `rustc_metadata` is fixed by making the query key/value types available as type aliases under `ty::query::query_{keys,values}`, not just associated types (this is the first commit).

r? @nikomatsakis

4 years agoRollup merge of #73791 - Manishearth:parens-intra-doc, r=GuillaumeGomez,jyn514
Manish Goregaokar [Thu, 9 Jul 2020 18:50:26 +0000 (11:50 -0700)]
Rollup merge of #73791 - Manishearth:parens-intra-doc, r=GuillaumeGomez,jyn514

Allow for parentheses after macro intra-doc-links

None

4 years agoRollup merge of #73292 - poliorcetics:fix-link-in-partialeq, r=Dylan-DPC
Manish Goregaokar [Thu, 9 Jul 2020 18:50:17 +0000 (11:50 -0700)]
Rollup merge of #73292 - poliorcetics:fix-link-in-partialeq, r=Dylan-DPC

Fixing broken link for the Eq trait

Fixes #73233.

4 years agoAdd test
Manish Goregaokar [Thu, 9 Jul 2020 17:27:48 +0000 (10:27 -0700)]
Add test

4 years agoMove to unstable section
Manish Goregaokar [Thu, 9 Jul 2020 15:36:41 +0000 (08:36 -0700)]
Move to unstable section

4 years agoTweak `::` -> `:` typo heuristic and reduce verbosity
Esteban Küber [Thu, 9 Jul 2020 16:09:25 +0000 (09:09 -0700)]
Tweak `::` -> `:` typo heuristic and reduce verbosity

Do not trigger on correct type ascription expressions with trailing
operators and _do_ trigger on likely path typos where a turbofish is
used.

On likely path typos, remove note explaining type ascription.

4 years agoReduce indentation
Esteban Küber [Thu, 9 Jul 2020 16:05:40 +0000 (09:05 -0700)]
Reduce indentation

4 years agoAllow for parentheses after macro intra-doc-links
Manish Goregaokar [Sat, 27 Jun 2020 07:22:03 +0000 (00:22 -0700)]
Allow for parentheses after macro intra-doc-links

4 years agoUpdate src/doc/rustdoc/src/intra-doc-links.md
Manish Goregaokar [Thu, 9 Jul 2020 15:31:44 +0000 (08:31 -0700)]
Update src/doc/rustdoc/src/intra-doc-links.md

4 years agoAdd docs for intra-doc-links
Manish Goregaokar [Sat, 27 Jun 2020 19:12:55 +0000 (12:12 -0700)]
Add docs for intra-doc-links

4 years agoupdate miri
Ralf Jung [Thu, 9 Jul 2020 11:36:16 +0000 (13:36 +0200)]
update miri

4 years agoAuto merge of #74131 - ollie27:rustdoc_invalid_codeblock_attributes_name, r=Guillaume...
bors [Thu, 9 Jul 2020 07:00:27 +0000 (07:00 +0000)]
Auto merge of #74131 - ollie27:rustdoc_invalid_codeblock_attributes_name, r=GuillaumeGomez

rustdoc: Rename invalid_codeblock_attribute lint to be plural

Lint names should be plural as per the lint naming conventions: https://github.com/rust-lang/rfcs/blob/master/text/0344-conventions-galore.md#lints

r? @GuillaumeGomez

4 years agoEliminate confusing "globals" terminology.
Nicholas Nethercote [Mon, 6 Jul 2020 00:53:14 +0000 (10:53 +1000)]
Eliminate confusing "globals" terminology.

There are some structures that are called "globals", but are they global
to a compilation session, and not truly global. I have always found this
highly confusing, so this commit renames them as "session globals" and
adds a comment explaining things.

Also, the commit fixes an unnecessary nesting of `set()` calls
`src/librustc_errors/json/tests.rs`

4 years agoAuto merge of #74153 - ehuss:fix-bootstrap-test-librustc, r=Mark-Simulacrum
bors [Wed, 8 Jul 2020 20:03:32 +0000 (20:03 +0000)]
Auto merge of #74153 - ehuss:fix-bootstrap-test-librustc, r=Mark-Simulacrum

Fix x.py test for librustc crates.

#73352 introduced a bug where `x.py test src/librustc_ast` would fail to actually run the tests. The issue is that `krate` and `all_krates` were changed to return relative paths. This caused the code to do a test of "relative_path ends with absolute path" which is always false.  The solution is to swap that around.

The change to `Crate` isn't necessary, it just simplifies the code and makes it uniform with `CrateLibrustc`.

4 years agoUpdate cargo
Eric Huss [Tue, 7 Jul 2020 22:33:21 +0000 (15:33 -0700)]
Update cargo

4 years agoFix librustc_errors unit tests.
Eric Huss [Wed, 8 Jul 2020 17:44:29 +0000 (10:44 -0700)]
Fix librustc_errors unit tests.

4 years agoAvoid running test on Windows platforms
Seth Pellegrino [Wed, 8 Jul 2020 16:48:15 +0000 (09:48 -0700)]
Avoid running test on Windows platforms

There don't seem to be any other compiletests that are 1) building a standalone "no_core" create and then 2) trying to link against it. There seems to be a platform-specific limitation in doing so:

```
2020-07-08T16:07:42.9419409Z   = note:    Creating library D:\a\rust\rust\build\i686-pc-windows-msvc\test\rustdoc\intra-link-prim-methods-external-core\auxiliary\my_core.dll.lib and object D:\a\rust\rust\build\i686-pc-windows-msvc\test\rustdoc\intra-link-prim-methods-external-core\auxiliary\my_core.dll.exp
2020-07-08T16:07:42.9419810Z           LINK : error LNK2001: unresolved external symbol __DllMainCRTStartup@12
2020-07-08T16:07:42.9420032Z           D:\a\rust\rust\build\i686-pc-windows-msvc\test\rustdoc\intra-link-prim-methods-external-core\auxiliary\my_core.dll : fatal error LNK1120: 1 unresolved externals
```

Possibly this could be resolved by adding a `__DllMainCRTStartup` or `__DllMainCRTStartup@12` symbol in an architecture- and platform-specific way.

4 years agoAvoid "blacklist"
Tamir Duberstein [Wed, 8 Jul 2020 13:36:52 +0000 (09:36 -0400)]
Avoid "blacklist"

Other terms are more inclusive and precise.

Clippy still has a lint named "blacklisted-name", but renaming it would
be a breaking change, so is left for future work.

The target configuration option "abi-blacklist" has been depreciated and
renamed to "unsupported-abis". The old name continues to work.

4 years agoFix x.py test for librustc crates.
Eric Huss [Wed, 8 Jul 2020 15:52:48 +0000 (08:52 -0700)]
Fix x.py test for librustc crates.

4 years agoApply #![crate_type = "rlib"] directly to the linker
Seth Pellegrino [Wed, 8 Jul 2020 15:20:43 +0000 (08:20 -0700)]
Apply #![crate_type = "rlib"] directly to the linker

4 years agoAuto merge of #74124 - ehuss:fix-doc-dry-run-up-to-date, r=Mark-Simulacrum
bors [Wed, 8 Jul 2020 09:47:41 +0000 (09:47 +0000)]
Auto merge of #74124 - ehuss:fix-doc-dry-run-up-to-date, r=Mark-Simulacrum

Fix occasional bootstrap panic in docs.

I am occasionally running into this panic when running `x.py`:

> thread 'main' panicked at 'source "/Users/eric/Proj/rust/rust/build/x86_64-apple-darwin/md-doc/unstable-book" failed to get metadata: No such file or directory (os error 2)', src/build_helper/lib.rs:173:19

I have not been able to figure out the exact sequence of commands that leads to this error (I tried for quite a while to reproduce it). I think it may involve updating my tree, but I am uncertain.  An artificial way to trigger it is to build the documentation, and then delete the `md-doc` directory manually.

The cause is that bootstrap does a "dry run" before every command, and in this case `up_to_date` panics because the destination exists (`build/x86_64-apple-darwin/doc/unstable-book/index.html `) but the source does not (`build/x86_64-apple-darwin/md-doc/unstable-book`).

I am uncertain if it is important that the last line `builder.run(…)` needs to be called during the dry run. This patch seems to fix the issue, though.

4 years agoRemove unneeded ToString import in liballoc slice
Ivan Tham [Wed, 8 Jul 2020 04:47:19 +0000 (12:47 +0800)]
Remove unneeded ToString import in liballoc slice

4 years agoLiballoc use vec instead of vector
Ivan Tham [Wed, 8 Jul 2020 04:44:43 +0000 (12:44 +0800)]
Liballoc use vec instead of vector

Keep congruency with other parts, full word vector is rarely used.

4 years agoFix broken link in rustdocdoc
Yuki Okushi [Tue, 7 Jul 2020 22:15:17 +0000 (07:15 +0900)]
Fix broken link in rustdocdoc

4 years agoRevert "Add guard to check for local `core` crate"
Seth Pellegrino [Tue, 7 Jul 2020 21:15:31 +0000 (14:15 -0700)]
Revert "Add guard to check for local `core` crate"

This reverts commit ee3a0f867e938f469cbbb422a76ed5662be2ecc7.

4 years agoAuto merge of #74006 - euclio:sys-unix-static-mut, r=oli-obk
bors [Tue, 7 Jul 2020 19:35:26 +0000 (19:35 +0000)]
Auto merge of #74006 - euclio:sys-unix-static-mut, r=oli-obk

libstd: remove some mutable statics in sys::unix

My understanding is that this achieves the same behavior and performance with safe code.

4 years agoignore-tidy-linelength for @has assertions
Seth Pellegrino [Tue, 7 Jul 2020 17:39:10 +0000 (10:39 -0700)]
ignore-tidy-linelength for @has assertions

4 years agorustdoc: Rename invalid_codeblock_attribute lint to be plural
Oliver Middleton [Tue, 7 Jul 2020 17:23:15 +0000 (18:23 +0100)]
rustdoc: Rename invalid_codeblock_attribute lint to be plural

4 years agoAssert current behavior for links
Seth Pellegrino [Tue, 7 Jul 2020 17:23:29 +0000 (10:23 -0700)]
Assert current behavior for links

For the two of these tests that have a local `char` to link to, this behavior isn't what's expected, but is what's happening presently.

4 years agoAuto merge of #74059 - RalfJung:miri-uninit-validation, r=oli-obk
bors [Tue, 7 Jul 2020 14:21:18 +0000 (14:21 +0000)]
Auto merge of #74059 - RalfJung:miri-uninit-validation, r=oli-obk

Miri value validation: fix handling of uninit memory

Fixes https://github.com/rust-lang/miri/issues/1456
Fixes https://github.com/rust-lang/miri/issues/1467

r? @oli-obk

4 years agoFix occasional bootstrap panic in docs.
Eric Huss [Tue, 7 Jul 2020 13:37:47 +0000 (06:37 -0700)]
Fix occasional bootstrap panic in docs.

4 years agoAuto merge of #73562 - poliorcetics:e0432-to-edition2018, r=GuillaumeGomez
bors [Tue, 7 Jul 2020 09:22:57 +0000 (09:22 +0000)]
Auto merge of #73562 - poliorcetics:e0432-to-edition2018, r=GuillaumeGomez

Update E0432 long description with the separate behaviors of editions 2015 and 2018

Fixes #64668.

I restarted from the work done in #71413.

4 years agobuild extern docs as well
Seth Pellegrino [Tue, 7 Jul 2020 02:46:53 +0000 (19:46 -0700)]
build extern docs as well

4 years agoTwo new rustdoc tests for intra links
Seth Pellegrino [Tue, 7 Jul 2020 02:35:07 +0000 (19:35 -0700)]
Two new rustdoc tests for intra links

They both produce less-than-desirable output (links going to docs.rust-lang.org), but I haven't figured out yet how to assert about them properly.

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 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 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 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 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 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 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