]> git.lizzy.rs Git - rust.git/log
rust.git
3 years agoAuto merge of #74404 - lcnr:ty-dep-path-cleanup-aaaaa, r=eddyb
bors [Wed, 22 Jul 2020 21:50:21 +0000 (21:50 +0000)]
Auto merge of #74404 - lcnr:ty-dep-path-cleanup-aaaaa, r=eddyb

remove some const arg in ty dep path boilerplate

followup to #74113, together with #74376, this closes #74360.

r? @eddyb

3 years agoAuto merge of #74633 - davidtwco:issue-74614-disable-polymorphisation, r=wesleywiser
bors [Wed, 22 Jul 2020 19:34:20 +0000 (19:34 +0000)]
Auto merge of #74633 - davidtwco:issue-74614-disable-polymorphisation, r=wesleywiser

Disable polymorphisation

Fixes #74614.

This PR disables polymorphisation to fix the regression in #74614 after investigation into the issue makes it clear that the fix won't be trivial. ~~I'll file an issue shortly to replace #74614 with the findings so far.~~ #74636 has been filed to track the fix of the underlying regression.

r? @eddyb

3 years agoAuto merge of #74642 - Manishearth:rollup-148kz52, r=Manishearth
bors [Wed, 22 Jul 2020 16:30:36 +0000 (16:30 +0000)]
Auto merge of #74642 - Manishearth:rollup-148kz52, r=Manishearth

Rollup of 9 pull requests

Successful merges:

 - #73655 (va_args implementation for AAPCS.)
 - #73893 (Stabilize control-flow-guard codegen option)
 - #74237 (compiletest: Rewrite extract_*_version functions)
 - #74454 (small coherence cleanup)
 - #74528 (refactor and reword intra-doc link errors)
 - #74568 (Apply #66379 to `*mut T` `as_ref`)
 - #74570 (Use forge links for prioritization procedure)
 - #74589 (Update books)
 - #74635 (Fix tooltip position if the documentation starts with a code block)

Failed merges:

r? @ghost

3 years agoRollup merge of #74635 - GuillaumeGomez:fix-tooltip-pos, r=Manishearth
Manish Goregaokar [Wed, 22 Jul 2020 16:29:17 +0000 (09:29 -0700)]
Rollup merge of #74635 - GuillaumeGomez:fix-tooltip-pos, r=Manishearth

Fix tooltip position if the documentation starts with a code block

Fixes #74321.

Before:

![before](https://user-images.githubusercontent.com/3050060/88188970-cf842400-cc38-11ea-839b-37e41656837d.png)

After:

![after](https://user-images.githubusercontent.com/3050060/88188981-d3b04180-cc38-11ea-8194-713ffe640d3a.png)

And in case there is text, it is not being applied:

![after-witness](https://user-images.githubusercontent.com/3050060/88189009-ddd24000-cc38-11ea-9f0a-61dfd0a0cbd0.png)

And on mobile it isn't needed so it's not "activated":

![Screenshot from 2020-07-22 17-17-43](https://user-images.githubusercontent.com/3050060/88194698-65bb4880-cc3f-11ea-8513-0043ccca8cfc.png)

r? @rust-lang/rustdoc

3 years agoRollup merge of #74589 - ehuss:update-books, r=ehuss
Manish Goregaokar [Wed, 22 Jul 2020 16:29:15 +0000 (09:29 -0700)]
Rollup merge of #74589 - ehuss:update-books, r=ehuss

Update books

## reference

5 commits in 0ea7bc494f1289234d8800bb9185021e0ad946f0..b329ce37424874ad4db94f829a55807c6e21d2cb
2020-07-02 15:33:04 -0700 to 2020-07-20 08:54:08 -0700
- this '*' is unnecessary, and reduces readability (rust-lang-nursery/reference#853)
- Tiny typo fix (rust-lang-nursery/reference#849)
- Update const eval chapter to latest changes (rust-lang-nursery/reference#842)
- Document #[track_caller]. (rust-lang-nursery/reference#742)
- Document shebang restriction. (rust-lang-nursery/reference#823)

## book

2 commits in 84a31397b34f9d405df44f2899ff17a4828dba18..a914f2c7e5cdb771fa465de142381a51c53b580e
2020-07-04 10:50:18 -0500 to 2020-07-21 09:20:05 -0500
- Change misleading wording (rust-lang/book#2399)
- Improve wording to include Windows versions (rust-lang/book#2395)

## edition-guide

3 commits in 82bec5877c77cfad530ca11095db4456d757f668..bd6e4a9f59c5c1545f572266af77f5c7a5bad6d1
2020-06-03 08:56:02 -0500 to 2020-07-12 17:37:08 -0500
- update guide for 1.36 and 1.37 (rust-lang/edition-guide#217)
- Add contents for Rust 1.35 (rust-lang/edition-guide#216)
- update edition guide for Rust 1.34 (rust-lang/edition-guide#215)

3 years agoRollup merge of #74570 - spastorino:fix-prioritization-procedures-links, r=Mark-Simul...
Manish Goregaokar [Wed, 22 Jul 2020 16:29:13 +0000 (09:29 -0700)]
Rollup merge of #74570 - spastorino:fix-prioritization-procedures-links, r=Mark-Simulacrum

Use forge links for prioritization procedure

r? @Mark-Simulacrum

cc @rust-lang/wg-prioritization

3 years agoRollup merge of #74568 - aticu:master, r=Mark-Simulacrum
Manish Goregaokar [Wed, 22 Jul 2020 16:29:11 +0000 (09:29 -0700)]
Rollup merge of #74568 - aticu:master, r=Mark-Simulacrum

Apply #66379 to `*mut T` `as_ref`

#66379 changed the documentation of `as_ref` on the type `*const T` and `as_mut` on the type `*mut T`, but it missed making that same change for `as_ref` on the type `*mut T`.

3 years agoRollup merge of #74528 - euclio:intra-link-errors, r=jyn514
Manish Goregaokar [Wed, 22 Jul 2020 16:29:09 +0000 (09:29 -0700)]
Rollup merge of #74528 - euclio:intra-link-errors, r=jyn514

refactor and reword intra-doc link errors

This commit refactors intra-doc link error reporting to deduplicate code
and decouple error construction from the type of error. This greatly
improves flexibility at each error construction site, while reducing the
complexity of the diagnostic creation.

This commit also rewords the diagnostics for clarity and style:

- Diagnostics should not end in periods.
- It's unnecessary to say "ignoring it". Since this is a warning by
  default, it's already clear that the link is ignored.

3 years agoRollup merge of #74454 - lcnr:negative-impls, r=nikomatsakis
Manish Goregaokar [Wed, 22 Jul 2020 16:29:07 +0000 (09:29 -0700)]
Rollup merge of #74454 - lcnr:negative-impls, r=nikomatsakis

small coherence cleanup

r? @eddyb

3 years agoRollup merge of #74237 - lzutao:compiletest, r=Mark-Simulacrum
Manish Goregaokar [Wed, 22 Jul 2020 16:29:05 +0000 (09:29 -0700)]
Rollup merge of #74237 - lzutao:compiletest, r=Mark-Simulacrum

compiletest: Rewrite extract_*_version functions

This makes extract_lldb_version has the same version type like
extract_gdb_version.

3 years agoRollup merge of #73893 - ajpaverd:cfguard-stabilize, r=nikomatsakis
Manish Goregaokar [Wed, 22 Jul 2020 16:29:03 +0000 (09:29 -0700)]
Rollup merge of #73893 - ajpaverd:cfguard-stabilize, r=nikomatsakis

Stabilize control-flow-guard codegen option

This is the stabilization PR discussed in #68793. It converts the `-Z control-flow-guard` debugging option into a codegen option (`-C control-flow-guard`), and changes the associated tests.

3 years agoRollup merge of #73655 - JamieCunliffe:jamie_va-args-c, r=nikic
Manish Goregaokar [Wed, 22 Jul 2020 16:29:00 +0000 (09:29 -0700)]
Rollup merge of #73655 - JamieCunliffe:jamie_va-args-c, r=nikic

va_args implementation for AAPCS.

Implement the va args in codegen for AAPCS, this will be used as the
default va_args implementation for AArch64 rather than the va_args
llvm-ir as it currently is.

This should fix the following issues:
https://github.com/rust-lang/rust/issues/56475
https://github.com/rust-lang/rust/issues/72579

3 years agoFix tooltip position if the documentation starts with a code block
Guillaume Gomez [Wed, 22 Jul 2020 14:28:47 +0000 (16:28 +0200)]
Fix tooltip position if the documentation starts with a code block

3 years agotests: add regression test for #74614
David Wood [Wed, 22 Jul 2020 14:35:52 +0000 (15:35 +0100)]
tests: add regression test for #74614

This commit adds a regression test for #74614 so that it is fixed before
polymorphisation is re-enabled.

Signed-off-by: David Wood <david@davidtw.co>
3 years agosess: disable polymorphisation
David Wood [Wed, 22 Jul 2020 14:03:56 +0000 (15:03 +0100)]
sess: disable polymorphisation

This commit disables polymorphisation to resolve regressions related to
closures which inherit unused generic parameters and are then used in
casts or reflection.

Signed-off-by: David Wood <david@davidtw.co>
3 years agomir: improve polymorphic constant bug
David Wood [Wed, 22 Jul 2020 09:31:12 +0000 (10:31 +0100)]
mir: improve polymorphic constant bug

This commit changes the span and content of the "collection encountered
polymorphic constant" bug in monomorphization collection to point to the
use of the constant rather than the definition.

Signed-off-by: David Wood <david@davidtw.co>
3 years agoAuto merge of #74620 - rust-lang:remove-most-azure, r=Mark-Simulacrum
bors [Wed, 22 Jul 2020 13:40:55 +0000 (13:40 +0000)]
Auto merge of #74620 - rust-lang:remove-most-azure, r=Mark-Simulacrum

Disable Azure Pipelines except for macOS

Following up on https://github.com/rust-lang/rust/pull/74565, this PR disables most of Azure Pipelines except for macOS auto builds, practically switching us to GitHub Actions :tada:

r? @Mark-Simulacrum

3 years agoci: disable Azure Pipelines except for macOS
Pietro Albini [Wed, 22 Jul 2020 09:00:56 +0000 (11:00 +0200)]
ci: disable Azure Pipelines except for macOS

3 years agoAuto merge of #73270 - dylanmckay:avr-use-correct-addrspace, r=nagisa
bors [Wed, 22 Jul 2020 08:18:46 +0000 (08:18 +0000)]
Auto merge of #73270 - dylanmckay:avr-use-correct-addrspace, r=nagisa

[AVR] Correctly set the pointer address space when constructing pointers to functions

NOTE: Pull request iterations:

* https://github.com/dylanmckay/rust/releases/tag/avr-use-correct-addrspace.0
* https://github.com/dylanmckay/rust/releases/tag/avr-use-correct-addrspace.1
* https://github.com/dylanmckay/rust/releases/tag/avr-use-correct-addrspace.2

This patch extends the existing `type_i8p` method so that it requires an
explicit address space to be specified. Before this patch, the
`type_i8p` method implcitily assumed the default address space, which is
not a safe transformation on all targets, namely AVR.

The Rust compiler already has support for tracking the "instruction
address space" on a per-target basis. This patch extends the code
generation routines so that an address space must always be specified.

In my estimation, around 15% of the callers of `type_i8p` produced
invalid code on AVR due to the loss of address space prior to LLVM final
code generation. This would lead to unavoidable assertion errors
relating to invalid bitcasts.

With this patch, the address space is always either 1) explicitly preserved
from the input type, or 2) explicitly set to the instruction address
space because the logic is dealing with functions which must be placed
there, or 3) explicitly set to the default address space 0 because the
logic can only operate on data space pointers and thus we keep the
existing semantics of assuming the default, "data" address space.

3 years agoAuto merge of #74578 - ehuss:fix-rust-src, r=Mark-Simulacrum
bors [Wed, 22 Jul 2020 02:51:58 +0000 (02:51 +0000)]
Auto merge of #74578 - ehuss:fix-rust-src, r=Mark-Simulacrum

Fix rust-src component.

The rust-src component could not be installed by rustup because it included some symbolic links. #74520 added the backtrace directory which included some symlinks. Since the rust-src component doesn't need most of the files in the `backtrace` submodule, this changes it to only include the minimum necessary.

Tested with cargo's build-std that it can build from the resulting tarball.

Fixes #74577

3 years agoAuto merge of #74565 - pietroalbini:build-on-gha, r=Mark-Simulacrum
bors [Tue, 21 Jul 2020 23:29:22 +0000 (23:29 +0000)]
Auto merge of #74565 - pietroalbini:build-on-gha, r=Mark-Simulacrum

Upload builds from GHA instead of Azure Pipelines

This PR does two things:

* Enables RLA comments on PRs (needed after the switch to GHA in RLA).
* Switches GitHub Actions as the CI authorized to upload non-macOS builds.

Note that Docker/LLVM caches will likely be busted.

r? @Mark-Simulacrum

3 years agofetch -> lookup
Bastian Kauschke [Tue, 21 Jul 2020 20:54:18 +0000 (22:54 +0200)]
fetch -> lookup

3 years ago`try_update` -> `try_upgrade`
Bastian Kauschke [Fri, 17 Jul 2020 17:12:30 +0000 (19:12 +0200)]
`try_update` -> `try_upgrade`

3 years agoremove some const arg in ty dep path boilerplate
Bastian Kauschke [Thu, 16 Jul 2020 17:36:18 +0000 (19:36 +0200)]
remove some const arg in ty dep path boilerplate

3 years ago[AVR] Ensure that function pointers stored within aggregates are annotated with the...
Dylan McKay [Fri, 19 Jun 2020 07:04:30 +0000 (19:04 +1200)]
[AVR] Ensure that function pointers stored within aggregates are annotated with the correct space

Before this patch, a function pointer stored within an aggregate like a
struct or an enum would always have the default address space `0`.

This patch removes this assumption and instead, introspects the inner
type being pointed at, storing the target address space in the PointeeInfo
struct so that downstream users may query it.

3 years ago[AVR] Correctly set the pointer address space when constructing pointers to functions
Dylan McKay [Thu, 11 Jun 2020 05:52:09 +0000 (17:52 +1200)]
[AVR] Correctly set the pointer address space when constructing pointers to functions

This patch extends the existing `type_i8p` method so that it requires an
explicit address space to be specified. Before this patch, the
`type_i8p` method implcitily assumed the default address space, which is
not a safe transformation on all targets, namely AVR.

The Rust compiler already has support for tracking the "instruction
address space" on a per-target basis. This patch extends the code
generation routines so that an address space must always be specified.

In my estimation, around 15% of the callers of `type_i8p` produced
invalid code on AVR due to the loss of address space prior to LLVM final
code generation. This would lead to unavoidable assertion errors
relating to invalid bitcasts.

With this patch, the address space is always either 1) explicitly set to
the instruction address space because the logic is dealing with functions
which must be placed there, or 2) explicitly set to the default address
space 0 because the logic can only operate on data space pointers and thus
we keep the existing semantics of assuming the default, "data" address space.

3 years agoUpdate books
Eric Huss [Tue, 21 Jul 2020 14:58:59 +0000 (07:58 -0700)]
Update books

3 years agoRemove the assert on alignment check.
Jamie Cunliffe [Tue, 21 Jul 2020 12:46:22 +0000 (13:46 +0100)]
Remove the assert on alignment check.

Also the alignment should only be done on general register types as
per the AAPCS so fixed that issue.

Copyright (c) 2020, Arm Limited.

3 years agoAuto merge of #74075 - sunfishcode:wasi-prelude-rawfd, r=alexcrichton
bors [Tue, 21 Jul 2020 06:55:17 +0000 (06:55 +0000)]
Auto merge of #74075 - sunfishcode:wasi-prelude-rawfd, r=alexcrichton

Add `RawFd` to WASI's `std::os::wasi::prelude`.

Add `RawFd` to WASI's `std::os::wasi::prelude`, making it consistent
with all other platforms which also have `AsRawFd`, `FromRawFd`, and
`IntoRawFd` in their respective preludes.

3 years agoAuto merge of #69749 - davidtwco:issue-46477-polymorphization, r=eddyb
bors [Tue, 21 Jul 2020 03:09:04 +0000 (03:09 +0000)]
Auto merge of #69749 - davidtwco:issue-46477-polymorphization, r=eddyb

Polymorphization

This PR implements an analysis to detect when functions could remain polymorphic during code generation.

Fixes #46477

r? @eddyb
cc @rust-lang/wg-mir-opt @nikomatsakis @pnkfelix

3 years agoFix rust-src component.
Eric Huss [Tue, 21 Jul 2020 02:49:03 +0000 (19:49 -0700)]
Fix rust-src component.

3 years agorefactor and reword intra-doc link errors
Andy Russell [Sun, 19 Jul 2020 17:03:35 +0000 (13:03 -0400)]
refactor and reword intra-doc link errors

This commit refactors intra-doc link error reporting to deduplicate code
and decouple error construction from the type of error. This greatly
improves flexibility at each error construction site, while reducing the
complexity of the diagnostic creation.

This commit also rewords the diagnostics for clarity and style:

- Diagnostics should not end in periods.
- It's unnecessary to say "ignoring it". Since this is a warning by
  default, it's already clear that the link is ignored.

3 years agoAuto merge of #74569 - Manishearth:rollup-hkn5ex9, r=Manishearth
bors [Mon, 20 Jul 2020 21:38:46 +0000 (21:38 +0000)]
Auto merge of #74569 - Manishearth:rollup-hkn5ex9, r=Manishearth

Rollup of 13 pull requests

Successful merges:

 - #72714 (Fix debug assertion in typeck)
 - #73197 (Impl Default for ranges)
 - #73323 (wf: check foreign fn decls for well-formedness)
 - #74051 (disallow non-static lifetimes in const generics)
 - #74376 (test caching opt_const_param_of on disc)
 - #74501 (Ayu theme: Use different background color for Run button)
 - #74505 (Fix search input focus in ayu theme)
 - #74522 (Update sanitizer docs)
 - #74546 (Fix duplicate maybe_uninit_extra attribute)
 - #74552 (Stabilize TAU constant.)
 - #74555 (Improve "important traits" popup display on mobile)
 - #74557 (Fix an ICE on an invalid `binding @ ...` in a tuple struct pattern)
 - #74561 (update backtrace-rs)

Failed merges:

r? @ghost

3 years agoupdate coherence docs
Bastian Kauschke [Mon, 20 Jul 2020 21:18:06 +0000 (23:18 +0200)]
update coherence docs

3 years agoreview
Bastian Kauschke [Mon, 20 Jul 2020 20:34:26 +0000 (22:34 +0200)]
review

3 years agoRollup merge of #74561 - RalfJung:backtrace, r=alexcrichton
Manish Goregaokar [Mon, 20 Jul 2020 19:30:34 +0000 (12:30 -0700)]
Rollup merge of #74561 - RalfJung:backtrace, r=alexcrichton

update backtrace-rs

Hopefully fixes https://github.com/rust-lang/rust/issues/74484
r? @alexcrichton

3 years agoRollup merge of #74557 - jakubadamw:issue-74539, r=nagisa
Manish Goregaokar [Mon, 20 Jul 2020 19:30:32 +0000 (12:30 -0700)]
Rollup merge of #74557 - jakubadamw:issue-74539, r=nagisa

Fix an ICE on an invalid `binding @ ...` in a tuple struct pattern

Fixes #74539.

3 years agoRollup merge of #74555 - GuillaumeGomez:important-traits-popup, r=Manishearth
Manish Goregaokar [Mon, 20 Jul 2020 19:30:31 +0000 (12:30 -0700)]
Rollup merge of #74555 - GuillaumeGomez:important-traits-popup, r=Manishearth

Improve "important traits" popup display on mobile

I implemented what @XAMPPRocky suggested in the [internals thread topic](https://internals.rust-lang.org/t/feedback-on-important-traits-rustdoc-feature/12752/18). I can confirm it works nicely.

r? @Manishearth

@Manishearth: By the way: I realized that when you click on the "i", you have to click again to make the popup disappear. Do you want me to extend the popup removal to any click outside the popup?

3 years agoRollup merge of #74552 - fusion-engineering-forks:stabilize-tau, r=dtolnay
Manish Goregaokar [Mon, 20 Jul 2020 19:30:29 +0000 (12:30 -0700)]
Rollup merge of #74552 - fusion-engineering-forks:stabilize-tau, r=dtolnay

Stabilize TAU constant.

Closes #66770.

3 years agoRollup merge of #74546 - jethrogb:jb/duplicate-attribute-maybe_uninit_extra, r=kennytm
Manish Goregaokar [Mon, 20 Jul 2020 19:30:27 +0000 (12:30 -0700)]
Rollup merge of #74546 - jethrogb:jb/duplicate-attribute-maybe_uninit_extra, r=kennytm

Fix duplicate maybe_uninit_extra attribute

Introduced in #72414

3 years agoRollup merge of #74522 - tmiasko:sanitizer-docs, r=nikomatsakis
Manish Goregaokar [Mon, 20 Jul 2020 19:30:25 +0000 (12:30 -0700)]
Rollup merge of #74522 - tmiasko:sanitizer-docs, r=nikomatsakis

Update sanitizer docs

* Document AddressSanitizer memory leak detection defaults.
* Remove CC & CFLAGS from MemorySanitizer example - they are now unnecessary for pure Rust projects (backtrace-rs moved away from libbacktrace).

3 years agoRollup merge of #74505 - Cldfire:fix-search-focus, r=GuillaumeGomez
Manish Goregaokar [Mon, 20 Jul 2020 19:30:24 +0000 (12:30 -0700)]
Rollup merge of #74505 - Cldfire:fix-search-focus, r=GuillaumeGomez

Fix search input focus in ayu theme

Closes #74496.

Before:

![image](https://user-images.githubusercontent.com/13814214/87868463-d0c8fe80-c963-11ea-9003-aa578d869e98.png)

After:

![image](https://user-images.githubusercontent.com/13814214/87868467-dc1c2a00-c963-11ea-89a8-1280f68ff9df.png)

3 years agoRollup merge of #74501 - lzutao:css_run_border, r=GuillaumeGomez
Manish Goregaokar [Mon, 20 Jul 2020 19:30:22 +0000 (12:30 -0700)]
Rollup merge of #74501 - lzutao:css_run_border, r=GuillaumeGomez

Ayu theme: Use different background color for Run button

Make it clearer that there is a button Run there.

Demo in https://github.com/rust-lang/rust/pull/74501#issuecomment-660597377 .

3 years agoRollup merge of #74376 - lcnr:type-dependent-path-cleanup, r=eddyb
Manish Goregaokar [Mon, 20 Jul 2020 19:30:20 +0000 (12:30 -0700)]
Rollup merge of #74376 - lcnr:type-dependent-path-cleanup, r=eddyb

test caching opt_const_param_of on disc

Followup to #74113, implements parts of #74360

Tried caching `opt_const_param_of` on disk and adding an early exit if `tcx.dep_kind(def_id) != DefKind::AnonConst`.

Ended up causing a perf regression instead, so we just remove the FIXME and a short note to `opt_const_param_of`.

r? @eddyb

3 years agoRollup merge of #74051 - yodaldevoid:issue_60814, r=nikomatsakis
Manish Goregaokar [Mon, 20 Jul 2020 19:30:18 +0000 (12:30 -0700)]
Rollup merge of #74051 - yodaldevoid:issue_60814, r=nikomatsakis

disallow non-static lifetimes in const generics

Disallow non-static lifetimes in const generics in order to to patch over an ICE caused when we encounter a non-static lifetime in a const generic during borrow checking. This restriction may be relaxed in the future, but we need more discussion before then, and in the meantime we should still deal with this ICE.

Fixes issue #60814

3 years agoRollup merge of #73323 - davidtwco:issue-73252-wfcheck-foreign-fn-decl, r=ecstatic...
Manish Goregaokar [Mon, 20 Jul 2020 19:30:16 +0000 (12:30 -0700)]
Rollup merge of #73323 - davidtwco:issue-73252-wfcheck-foreign-fn-decl, r=ecstatic-morse

wf: check foreign fn decls for well-formedness

Fixes #73252 and fixes #73253.

This PR extends current well-formedness checking to apply to foreign function declarations, re-using the existing machinery for regular functions. In doing this, later parts of the compiler (such as the `improper_ctypes` lint) can rely on being operations not failing as a result of invalid code which would normally be caught earlier.

3 years agoRollup merge of #73197 - c410-f3r:ranges, r=dtolnay
Manish Goregaokar [Mon, 20 Jul 2020 19:30:14 +0000 (12:30 -0700)]
Rollup merge of #73197 - c410-f3r:ranges, r=dtolnay

Impl Default for ranges

Couldn't find an issue about it.

`Range` and friends probably can implement `Default` if `Idx: Default`. For example, the following would be possible:

```rust
#[derive(Default)]
struct Foo(core::ops::RangeToInclusive<u64>);

let _ = [1, 2, 3].get(core::ops::Range::default());

core::ops::RangeFrom::<u8>::default().take(20).for_each(|x| { dbg!(x); });

fn stuff<T: Default>() { let instance = T::default(); ... more stuff }
stuff::<core::ops::RangeTo<f32>>();
```

Maybe there are some concerns about safety or misunderstandings?

3 years agoRollup merge of #72714 - JohnTitor:debug-assert, r=nikomatsakis
Manish Goregaokar [Mon, 20 Jul 2020 19:30:12 +0000 (12:30 -0700)]
Rollup merge of #72714 - JohnTitor:debug-assert, r=nikomatsakis

Fix debug assertion in typeck

Fixes #72410

3 years agoUse forge links for prioritization procedure
Santiago Pastorino [Mon, 20 Jul 2020 19:29:58 +0000 (16:29 -0300)]
Use forge links for prioritization procedure

3 years agoApply #66379 to `*mut T` `as_ref`
aticu [Mon, 20 Jul 2020 18:39:17 +0000 (20:39 +0200)]
Apply #66379 to `*mut T` `as_ref`

3 years agoindex: introduce and use `FiniteBitSet`
David Wood [Fri, 17 Jul 2020 11:28:23 +0000 (12:28 +0100)]
index: introduce and use `FiniteBitSet`

This commit introduces a `FiniteBitSet` type which replaces the manual
bit manipulation which was being performed in polymorphization.

Signed-off-by: David Wood <david@davidtw.co>
3 years agomir: use attribute over `-Z polymorphize-errors`
David Wood [Thu, 16 Jul 2020 16:52:23 +0000 (17:52 +0100)]
mir: use attribute over `-Z polymorphize-errors`

This commit replaces the `-Z polymorphize-errors` debugging flag with a
`#[rustc_polymorphize_error]` attribute for use on functions.

Signed-off-by: David Wood <david@davidtw.co>
3 years agometadata: record `unused_generic_params`
David Wood [Mon, 22 Jun 2020 13:00:53 +0000 (14:00 +0100)]
metadata: record `unused_generic_params`

This commit records the results of `unused_generic_params` in crate
metadata, hopefully improving performance.

Signed-off-by: David Wood <david@davidtw.co>
3 years agoty: normalize fn sigs before subst
David Wood [Mon, 22 Jun 2020 13:00:27 +0000 (14:00 +0100)]
ty: normalize fn sigs before subst

This commit normalizes function signatures for instances before
substituting, a workaround for polymorphization considering
parameters unused when they show up in the signature, but not the
body (due to being normalized).

Unfortunately, this causes test output to change with the parallel
compiler only.

Signed-off-by: David Wood <david@davidtw.co>
3 years agomir: `unused_generic_params` query
David Wood [Mon, 22 Jun 2020 12:57:03 +0000 (13:57 +0100)]
mir: `unused_generic_params` query

This commit implements the `unused_generic_params` query, an initial
version of polymorphization which detects when an item does not use
generic parameters and is being needlessly monomorphized as a result.

Signed-off-by: David Wood <david@davidtw.co>
3 years agoFix an ICE on an invalid `binding @ ...` in a tuple struct pattern
Jakub Adam Wieczorek [Mon, 20 Jul 2020 13:13:00 +0000 (15:13 +0200)]
Fix an ICE on an invalid `binding @ ...` in a tuple struct pattern

3 years agoci: upload non-macOS from GHA instead of Azure Pipelines
Pietro Albini [Mon, 20 Jul 2020 15:43:48 +0000 (17:43 +0200)]
ci: upload non-macOS from GHA instead of Azure Pipelines

3 years agoci: allow RLA to pick the right PR number
Pietro Albini [Mon, 20 Jul 2020 15:11:30 +0000 (17:11 +0200)]
ci: allow RLA to pick the right PR number

3 years agoupdate backtrace-rs
Ralf Jung [Mon, 20 Jul 2020 14:44:46 +0000 (16:44 +0200)]
update backtrace-rs

3 years agoAuto merge of #74550 - matklad:rust-analyzer-2020-07-20, r=matklad
bors [Mon, 20 Jul 2020 13:42:20 +0000 (13:42 +0000)]
Auto merge of #74550 - matklad:rust-analyzer-2020-07-20, r=matklad

:arrow_up: rust-analyzer

r? @ghost

3 years agoImprove "important traits" popup display on mobile
Guillaume Gomez [Mon, 20 Jul 2020 12:37:47 +0000 (14:37 +0200)]
Improve "important traits" popup display on mobile

3 years agoStabilize TAU constant.
Mara Bos [Fri, 10 Jul 2020 10:08:32 +0000 (12:08 +0200)]
Stabilize TAU constant.

Closes #66770.

3 years ago:arrow_up: rust-analyzer
Aleksey Kladov [Mon, 20 Jul 2020 11:21:16 +0000 (13:21 +0200)]
:arrow_up: rust-analyzer

3 years agoFix duplicate maybe_uninit_extra attribute
Jethro Beekman [Mon, 20 Jul 2020 10:23:47 +0000 (12:23 +0200)]
Fix duplicate maybe_uninit_extra attribute

3 years agoshim: adjust valid shim asserts
David Wood [Mon, 22 Jun 2020 12:45:05 +0000 (13:45 +0100)]
shim: adjust valid shim asserts

This commit makes valid shim asserts more specific - checking for the
specific types that are valid for a given type of shim - and removes
asserts for types which require substitutions.

Signed-off-by: David Wood <david@davidtw.co>
3 years agodebuginfo: add type metadata for params
David Wood [Mon, 22 Jun 2020 12:36:53 +0000 (13:36 +0100)]
debuginfo: add type metadata for params

This commit adds type metadata for generic parameters (that arise from
polymorphization). Generic parameter metadata is considered zero-sized
and named after the generic parameter.

Signed-off-by: David Wood <david@davidtw.co>
3 years agodebuginfo: no type metadata if substs reqd
David Wood [Mon, 22 Jun 2020 12:33:17 +0000 (13:33 +0100)]
debuginfo: no type metadata if substs reqd

This commit skips generating debuginfo type metadata if substitutions
are required by the type. This avoids ICEs that result from layouts
of types with substitutions being computed.

Signed-off-by: David Wood <david@davidtw.co>
3 years agoty: add doc comments to `Generics` methods
David Wood [Mon, 22 Jun 2020 12:24:59 +0000 (13:24 +0100)]
ty: add doc comments to `Generics` methods

This commit adds doc comments to the `param_at`, `region_param` and
`const_param` methods on the `Generics` struct.

Signed-off-by: David Wood <david@davidtw.co>
3 years agotrait_sel: only test predicates w/ no substs
David Wood [Mon, 22 Jun 2020 12:22:45 +0000 (13:22 +0100)]
trait_sel: only test predicates w/ no substs

This commit modifies the `substitute_normalize_and_test_predicates`
query, renaming it to `impossible_predicates` and only checking
predicates which do not require substs. By making this change,
polymorphization doesn't have to explicitly support vtables.

Signed-off-by: David Wood <david@davidtw.co>
3 years agoty: `STILL_FURTHER_SPECIALIZABLE` w/out prnt subst
David Wood [Mon, 22 Jun 2020 12:07:05 +0000 (13:07 +0100)]
ty: `STILL_FURTHER_SPECIALIZABLE` w/out prnt subst

This commit modifies the `STILL_FURTHER_SPECIALIZABLE` flag so that the
flag isn't set by the parent substs of closures or generators.

Signed-off-by: David Wood <david@davidtw.co>
3 years agomir: rename `should_monomorphize_locally`
David Wood [Mon, 22 Jun 2020 12:02:32 +0000 (13:02 +0100)]
mir: rename `should_monomorphize_locally`

This commit renames `should_monomorphize_locally` to
`should_codegen_locally` which better describes what the function
determines once polymorphization is added.

Signed-off-by: David Wood <david@davidtw.co>
3 years agomir: avoid double substitution
David Wood [Mon, 22 Jun 2020 11:53:40 +0000 (12:53 +0100)]
mir: avoid double substitution

This commit avoids a natural, free-range double substitution error by
monomorphizing the projection element before getting the type.

Signed-off-by: David Wood <david@davidtw.co>
3 years agoAuto merge of #74010 - pierwill:pierwill-o-notation, r=GuillaumeGomez
bors [Mon, 20 Jul 2020 10:19:58 +0000 (10:19 +0000)]
Auto merge of #74010 - pierwill:pierwill-o-notation, r=GuillaumeGomez

Use italics for O notation

In documentation, I think it makes sense to italicize O notation (*O(n)*) as opposed to using back-ticks (`O(n)`). Visually, back-ticks focus the reader on the literal characters being used, making them ideal for representing code. Using italics, as far I can tell, more closely follows typographic conventions in mathematics and computer science.

Just a suggestion, of course! ðŸ˜‡

3 years agowf: check foreign fn decls for well-formedness
David Wood [Sat, 13 Jun 2020 18:37:25 +0000 (19:37 +0100)]
wf: check foreign fn decls for well-formedness

This commit extends current well-formedness checking to apply to foreign
function declarations, re-using the existing machinery for regular
functions. In doing this, later parts of the compiler (such as the
`improper_ctypes` lint) can rely on being operations not failing as a
result of invalid code which would normally be caught earlier.

Signed-off-by: David Wood <david@davidtw.co>
3 years agoAuto merge of #74540 - alexcrichton:std-no-backtrace, r=Mark-Simulacrum
bors [Mon, 20 Jul 2020 06:09:42 +0000 (06:09 +0000)]
Auto merge of #74540 - alexcrichton:std-no-backtrace, r=Mark-Simulacrum

std: Fix compilation without backtrace feature

This should hopefully handle #74484 but in any case fixes compilation of
the standard library without the `backtrace` feature. The need for this
feature is somewhat unclear now because the `backtrace` crate should
always compile (no more C code!) but we can handle that later if
necessary.

3 years agoUse italics for O notation
pierwill [Fri, 3 Jul 2020 19:13:01 +0000 (12:13 -0700)]
Use italics for O notation

Co-authored-by: Guillaume Gomez <guillaume1.gomez@gmail.com>
3 years agoAuto merge of #74543 - Manishearth:rollup-m5w6hyg, r=Manishearth
bors [Mon, 20 Jul 2020 02:43:31 +0000 (02:43 +0000)]
Auto merge of #74543 - Manishearth:rollup-m5w6hyg, r=Manishearth

Rollup of 9 pull requests

Successful merges:

 - #73618 (Documentation for the false keyword)
 - #74486 (Improve Read::read_exact documentation)
 - #74514 (Do not clobber RUSTDOCFLAGS)
 - #74516 (do not try fetching the ancestors of errored trait impls)
 - #74520 (include backtrace folder in rust-src component)
 - #74523 (Improve documentation for `core::fmt` internals)
 - #74527 (Add myself to toolstate change notifications for rustfmt)
 - #74534 (Only skip impls of foreign unstable traits)
 - #74536 (fix documentation surrounding the `in` and `for` keywords)

Failed merges:

r? @ghost

3 years agoRollup merge of #74536 - Nicholas-Baron:master, r=joshtriplett
Manish Goregaokar [Mon, 20 Jul 2020 02:12:45 +0000 (19:12 -0700)]
Rollup merge of #74536 - Nicholas-Baron:master, r=joshtriplett

fix documentation surrounding the `in` and `for` keywords

Addresses #74529

The `in` keyword incorrectly referenced the `Iterator` trait. This reference was changed to `IntoIterator` without changing the underlying link.

Additionally, the `IntoIterator` trait was referenced towards the end of the documentation for `for`. An additional reference was added earlier and broadened the existing documentation from any iterator to anything that can be turned into an iterator.

3 years agoRollup merge of #74534 - Mark-Simulacrum:rustdoc-stability, r=Manishearth
Manish Goregaokar [Mon, 20 Jul 2020 02:12:43 +0000 (19:12 -0700)]
Rollup merge of #74534 - Mark-Simulacrum:rustdoc-stability, r=Manishearth

Only skip impls of foreign unstable traits

Previously unstable impls were skipped, which meant that any impl with an unstable method would get skipped.

Fixes #74531.

3 years agoRollup merge of #74527 - calebcartwright:rustfmt-toolstate-maintainers, r=Mark-Simulacrum
Manish Goregaokar [Mon, 20 Jul 2020 02:12:42 +0000 (19:12 -0700)]
Rollup merge of #74527 - calebcartwright:rustfmt-toolstate-maintainers, r=Mark-Simulacrum

Add myself to toolstate change notifications for rustfmt

I'd like to get the toolstate change notifications for rustfmt as well so that I'll know when things break.

Have spoken with @topecongiro about this offline already.

3 years agoRollup merge of #74523 - sollyucko:patch-1, r=Mark-Simulacrum
Manish Goregaokar [Mon, 20 Jul 2020 02:12:40 +0000 (19:12 -0700)]
Rollup merge of #74523 - sollyucko:patch-1, r=Mark-Simulacrum

Improve documentation for `core::fmt` internals

The public interface of `core::fmt` is well-documented, but the internals have very minimal documentation.

3 years agoRollup merge of #74520 - RalfJung:backtrace-src, r=Mark-Simulacrum
Manish Goregaokar [Mon, 20 Jul 2020 02:12:38 +0000 (19:12 -0700)]
Rollup merge of #74520 - RalfJung:backtrace-src, r=Mark-Simulacrum

include backtrace folder in rust-src component

libstd has a [mandatory dependency on this code](https://github.com/rust-lang/rust/pull/73441/files#diff-242481015141f373dcb178e93cffa850), ergo we need to include it in rust-src.

r? @oli-obk
Fixes https://github.com/rust-lang/rust/issues/74506

3 years agoRollup merge of #74516 - lcnr:min-specialization-ice, r=matthewjasper
Manish Goregaokar [Mon, 20 Jul 2020 02:12:37 +0000 (19:12 -0700)]
Rollup merge of #74516 - lcnr:min-specialization-ice, r=matthewjasper

do not try fetching the ancestors of errored trait impls

fixes #74483

While building the specialization graph, we use `tcx.all_impls` which discards impls with incorrect self types,
we do however call `trait_def.ancestors` with these impls which caused an ICE as they aren't part of the
specialization graph.

3 years agoRollup merge of #74514 - Mark-Simulacrum:nightly-rustc-docs, r=ollie27
Manish Goregaokar [Mon, 20 Jul 2020 02:12:35 +0000 (19:12 -0700)]
Rollup merge of #74514 - Mark-Simulacrum:nightly-rustc-docs, r=ollie27

Do not clobber RUSTDOCFLAGS

We were setting these in both Builder::cargo and here, which ended up only setting the first of the two.

Fixes #74511

3 years agoRollup merge of #74486 - poliorcetics:read-exact-doc-point-to-read, r=Mark-Simulacrum
Manish Goregaokar [Mon, 20 Jul 2020 02:12:33 +0000 (19:12 -0700)]
Rollup merge of #74486 - poliorcetics:read-exact-doc-point-to-read, r=Mark-Simulacrum

Improve Read::read_exact documentation

Fixes #72186.

For now I simply added a link to `Read::read` and held off changing the text in `Read::read_exact`. I can do it if it is deemed necessary.

@rustbot modify labels: C-enhancement, T-libs

3 years agoRollup merge of #73618 - poliorcetics:false-keyword, r=jyn514
Manish Goregaokar [Mon, 20 Jul 2020 02:12:32 +0000 (19:12 -0700)]
Rollup merge of #73618 - poliorcetics:false-keyword, r=jyn514

Documentation for the false keyword

Partial fix of #34601.

Short documentation for the false keyword mainly pointing to the `true` keyword.

3 years agostd: Fix compilation without backtrace feature
Alex Crichton [Mon, 20 Jul 2020 00:30:29 +0000 (17:30 -0700)]
std: Fix compilation without backtrace feature

This should hopefully handle #74484 but in any case fixes compilation of
the standard library without the `backtrace` feature. The need for this
feature is somewhat unclear now because the `backtrace` crate should
always compile (no more C code!) but we can handle that later if
necessary.

3 years agoUpdate src/libstd/keyword_docs.rs
Nicholas Baron [Mon, 20 Jul 2020 00:01:36 +0000 (17:01 -0700)]
Update src/libstd/keyword_docs.rs

Clear up wording regarding the iterator and usage of `break`.

Co-authored-by: Josh Triplett <josh@joshtriplett.org>
3 years agoAuto merge of #74495 - shepmaster:bootstrap-dist-target-files, r=Mark-Simulacrum
bors [Sun, 19 Jul 2020 22:50:46 +0000 (22:50 +0000)]
Auto merge of #74495 - shepmaster:bootstrap-dist-target-files, r=Mark-Simulacrum

Teach bootstrap install and dist commands about TargetSelection

With this, we can now use a target JSON file to build a
cross-compiler:

```
x.py install --host ../aarch64-apple-darwin.json --target aarch64-apple-darwin
```

r? @Mark-Simulacrum

3 years agoLinked the earlier mention of IntoIterator in the keyword 'for' docs
Nicholas-Baron [Sun, 19 Jul 2020 21:06:55 +0000 (14:06 -0700)]
Linked the earlier mention of IntoIterator in the keyword 'for' docs

3 years agoMentioned IntoIterator in keyword 'in' docs
Nicholas-Baron [Sun, 19 Jul 2020 21:05:45 +0000 (14:05 -0700)]
Mentioned IntoIterator in keyword 'in' docs

3 years agoMentioned IntoIterator earlier in keyword 'for' docs
Nicholas-Baron [Sun, 19 Jul 2020 21:03:52 +0000 (14:03 -0700)]
Mentioned IntoIterator earlier in keyword 'for' docs

3 years agoOnly skip impls of foreign unstable traits
Mark Rousskov [Sun, 19 Jul 2020 20:39:20 +0000 (16:39 -0400)]
Only skip impls of foreign unstable traits

Previously unstable impls were skipped, which meant that any impl with an
unstable method would get skipped.

3 years agoFix merge conflict with recent PR
Alexis Bourget [Sun, 19 Jul 2020 20:15:44 +0000 (22:15 +0200)]
Fix merge conflict with recent PR

3 years agotools: update rustfmt toolstate maintainers
Caleb Cartwright [Sun, 19 Jul 2020 18:10:38 +0000 (13:10 -0500)]
tools: update rustfmt toolstate maintainers

3 years agoTeach bootstrap install and dist commands about TargetSelection
Jake Goulding [Sat, 18 Jul 2020 18:06:20 +0000 (14:06 -0400)]
Teach bootstrap install and dist commands about TargetSelection

With this, we can now use a target JSON file to build a
cross-compiler:

```
x.py install --host ../aarch64-apple-darwin.json --target aarch64-apple-darwin
```

3 years agoAdd test for an explicit non-'static lifetime in a const argument
Gabriel Smith [Sun, 19 Jul 2020 16:53:51 +0000 (12:53 -0400)]
Add test for an explicit non-'static lifetime in a const argument

3 years agodisallow non-static lifetimes in const generics
Gabriel Smith [Sun, 5 Jul 2020 03:43:48 +0000 (23:43 -0400)]
disallow non-static lifetimes in const generics

This has been put in place to patch over an ICE caused when we encounter
a non-static lifetime in a const generic during borrow checking. This
restriction may be relaxed in the future, but we need more discussion
before then, and in the meantime we should still deal with this ICE.

Fixes issue #60814

3 years agoDocument `core::fmt::rt::v1::Count`
Solomon Ucko [Sun, 19 Jul 2020 15:10:03 +0000 (11:10 -0400)]
Document `core::fmt::rt::v1::Count`

3 years agoDocument AddressSanitizer memory leak detection defaults
Tomasz MiÄ…sko [Sat, 18 Jul 2020 00:00:00 +0000 (00:00 +0000)]
Document AddressSanitizer memory leak detection defaults