Commit Graph

110712 Commits

Author SHA1 Message Date
Dylan DPC
707004c552
Rollup merge of #70970 - eddyb:trait-vs-impl-mismatch, r=oli-obk
Detect mistyped associated consts in `Instance::resolve`.

*Based on #71049 to prevent redundant/misleading downstream errors.*

Fixes #70942 by refusing to resolve an associated `const` if it doesn't have the same type in the `impl` that it does in the `trait` (which we assume had errored, and `delay_span_bug` guards against bugs).
2020-04-22 12:18:31 +02:00
Guillaume Gomez
038f5b7433 Update UI tests 2020-04-22 11:09:57 +02:00
Guillaume Gomez
3390ff97b2 Add error code to inner doc comment attribute error 2020-04-22 11:08:50 +02:00
bors
4bfd62acb1 Auto merge of #71323 - nnethercote:bitcode-in-rlib, r=alexcrichton
Add `-Cbitcode-in-rlib`.

This is a cut-down version of #70458 that gets the compile-time wins.

r? @alexcrichton
2020-04-22 07:52:42 +00:00
Philipp Hansch
23b9f46fff
More diagnostic items for Clippy usage
This adds a couple of more diagnostic items to be used in Clippy.
I chose these particular ones because they were the types which we seem
to check for the most in Clippy. I'm not sure if the
`cfg_attr(not(test))` is needed, but it was also used for `Vec` and a
few other types.
2020-04-22 07:57:56 +02:00
Nicholas Nethercote
a105c5c2c0 Build libstd with -Cbitcode-in-rlib=yes.
So that the rlibs will work with both LTO and non-LTO builds.
2020-04-22 15:22:18 +10:00
Nicholas Nethercote
2984799881 Add a simple test. 2020-04-22 15:22:18 +10:00
Nicholas Nethercote
ae322ff651 Add a new option -Cbitcode-in-rlib.
It defaults to true, but Cargo will set this to false whenever it can to
reduce compile times.
2020-04-22 15:22:18 +10:00
Nicholas Nethercote
b9f6dfef0b Remove an old in-progress comment from a previous PR.
This comment wasn't supposed to have landed.
2020-04-22 15:22:18 +10:00
David Tolnay
3a8097f2b4
Clarify unused_doc_comments note on macro invocations 2020-04-21 21:16:50 -07:00
bors
2dc5b602ee Auto merge of #71410 - JohnTitor:rollup-vh6dut5, r=JohnTitor
Rollup of 7 pull requests

Successful merges:

 - #70998 (Suggest `-> impl Trait` and `-> Box<dyn Trait>` on fn that doesn't return)
 - #71236 (Remove unused rustc_serialize::hex module)
 - #71366 (Use assoc int consts3)
 - #71372 (Fix #! (shebang) stripping account space issue)
 - #71384 (Fix stage0.txt version number comment)
 - #71390 (Fix incorrect description of E0690)
 - #71399 (Clean up E0554 explanation)

Failed merges:

r? @ghost
2020-04-22 03:50:02 +00:00
csmoe
00d12ef901 add test for correct await span 2020-04-22 09:51:56 +08:00
Yuki Okushi
66eaead0e2
Rollup merge of #71399 - rust-lang:cleanup-e0554, r=Dylan-DPC
Clean up E0554 explanation

r? @Dylan-DPC
2020-04-22 10:34:12 +09:00
Yuki Okushi
3efa70fafd
Rollup merge of #71390 - aticu:master, r=Dylan-DPC
Fix incorrect description of E0690

r? @steveklabnik
2020-04-22 10:34:10 +09:00
Yuki Okushi
836a64a31e
Rollup merge of #71384 - RalfJung:RalfJung-patch-1, r=Mark-Simulacrum
Fix stage0.txt version number comment

r? @Mark-Simulacrum
2020-04-22 10:34:09 +09:00
Yuki Okushi
46a8dcef5c
Rollup merge of #71372 - ayushmishra2005:shebang_stripping, r=estebank
Fix #! (shebang) stripping account space issue

 #70528
2020-04-22 10:34:07 +09:00
Yuki Okushi
f28e3873c5
Rollup merge of #71366 - faern:use-assoc-int-consts3, r=dtolnay
Use assoc int consts3

Define module level int consts with associated constants instead of `min_value()` and `max_value()`. So the code become consistent with what the docs recommend etc. Seems natural.

Also remove the last usages of the int module constants from this repo (except src/test/ directory which I have still not really done anything in). Some places were missed in the previous PRs because the code uses `crate::<IntTy>` to reach the constants.

This is a continuation of #70857

r? @dtolnay
2020-04-22 10:34:06 +09:00
Yuki Okushi
567e54fca5
Rollup merge of #71236 - sinkuu:cleanup, r=nikomatsakis
Remove unused rustc_serialize::hex module

* Remove unused `rustc_serialize::hex` module
* Cleanup `Cargo.toml`
2020-04-22 10:34:04 +09:00
Yuki Okushi
24fb393207
Rollup merge of #70998 - estebank:suggest-impl-trait-empty-fn, r=varkor
Suggest `-> impl Trait` and `-> Box<dyn Trait>` on fn that doesn't return

During development, a function could have a return type set that is a
bare trait object by accident. We already suggest using either a boxed
trait object or `impl Trait` if the return paths will allow it. We now
do so too when there are *no* return paths or they all resolve to `!`.
We still don't handle cases where the trait object is *not* the entirety
of the return type gracefully.

Closes #38376.
2020-04-22 10:34:03 +09:00
bors
70f4f320b0 Auto merge of #71402 - ehuss:update-cargo, r=ehuss
Update cargo, rls

## cargo

17 commits in ebda5065ee8a1e46801380abcbac21a25bc7e755..8751eb3010d4cdb5329b5a6bd2b6d765c95b0dca
2020-04-16 14:28:43 +0000 to 2020-04-21 18:04:35 +0000
- Uplift windows gnu DLL import libraries. (rust-lang/cargo#8141)
- Add windows-gnu CI and fix tests (rust-lang/cargo#8139)
- Several updates to token/index handling. (rust-lang/cargo#7973)
- Add `resolver` opt-in for new feature resolver. (rust-lang/cargo#8129)
- Improve error message when running `cargo install .` (rust-lang/cargo#8137)
- fix mem replace unused (rust-lang/cargo#8138)
- Change `-Cembed-bitcode=no` use to `-Cbitcode-in-rlib=no`. (rust-lang/cargo#8134)
- Refactor BuildContext (rust-lang/cargo#8068)
- Rename allows_underscores to allows_dashes. (rust-lang/cargo#8135)
- Fixed a needless borrow. (rust-lang/cargo#8130)
- Add link to changelog in the Cargo book. (rust-lang/cargo#8126)
- Fix target for doc test cross compilation (rust-lang/cargo#8094)
- Add note about .cargo/config support. (rust-lang/cargo#8125)
- Fix pdb uplift when executable has dashes. (rust-lang/cargo#8123)
- Hint upgrading for future edition keys (rust-lang/cargo#8122)
- Use some fs shorthand functions. (rust-lang/cargo#8124)
- Update documentation to mention "config.toml" instead of "config" (rust-lang/cargo#8121)

## rls

1 commits in 2659cbf14bfb0929a16d7ce9b6858d0bb286ede7..7de2a1f299f8744ffe109139f9f1fdf28bfec909
2020-04-14 22:07:24 +0200 to 2020-04-19 22:41:55 +0000
- Update cargo (rust-lang-nursery/rls#1663)
2020-04-22 00:50:49 +00:00
Cameron Taggart
d5963ed0c4
accept cfg_if suggestion
Co-Authored-By: bjorn3 <bjorn3@users.noreply.github.com>
2020-04-21 16:36:08 -06:00
Josh Stone
eeb687f20e Don't fuse Chain in its second iterator
Only the "first" iterator is actually set `None` when exhausted,
depending on whether you iterate forward or backward. This restores
behavior similar to the former `ChainState`, where it would transition
from `Both` to `Front`/`Back` and only continue from that side.

However, if you mix directions, then this may still set both sides to
`None`, totally fusing the iterator.
2020-04-21 14:56:59 -07:00
Eric Huss
da2eb65d01 Update cargo, rls 2020-04-21 14:11:30 -07:00
Santiago Pastorino
15ecfe65a8
visit_place_base is just visit_local 2020-04-21 17:46:27 -03:00
David Tolnay
7435547b25
proc_macro::is_available() 2020-04-21 12:50:16 -07:00
Guillaume Gomez
410fc9da3b
Clean up E0554 explanation 2020-04-21 21:40:29 +02:00
Cameron Taggart
f72de476b7 use cfg_if! and use FileSerializationSink for wasi 2020-04-21 13:07:05 -06:00
DeeDeeG
57c2712895 Improve E0308 error message wording again 2020-04-21 15:06:24 -04:00
Ayush Kumar Mishra
1b362cd1d5 Minor refactoring 2020-04-21 22:29:20 +05:30
Dylan MacKenzie
152c06569b Assign correct span to new illegal ops 2020-04-21 09:24:41 -07:00
aticu
e2901c48cf Fix incorrect description of E0690 2020-04-21 18:13:58 +02:00
pankajchaudhary5
e5b68bc719 Added proper explanation error code E0696 2020-04-21 20:09:07 +05:30
Ralf Jung
20de9227a5
Fix stage0.txt version number comment 2020-04-21 15:56:49 +02:00
Ayush Kumar Mishra
365b3cc781 Fix formatting issue 2020-04-21 17:06:22 +05:30
Ayush Kumar Mishra
ee5a2120f9 Refactoring and added test-cases #70528 2020-04-21 16:48:58 +05:30
bors
45d050cde2 Auto merge of #71170 - spastorino:dyn-fnonce-alignment, r=nikomatsakis
Make Box<dyn FnOnce> respect self alignment

Closes #68304

r? @eddyb @nikomatsakis
2020-04-21 08:58:44 +00:00
Ayush Kumar Mishra
0315864260 Fix #! (shebang) stripping account space issue #70528 2020-04-21 11:44:00 +05:30
bors
25f070d1ed Auto merge of #71267 - pnkfelix:issue-71248-dont-need-exports-all-green, r=nagisa
attempt to recover perf by removing `exports_all_green`

attempt to recover perf by removing `exports_all_green` flag.

cc #71248

(My hypothesis is that my use of this flag was an overly conservative generalization of PR #67020.)
2020-04-21 04:35:17 +00:00
Cameron Taggart
6fb524a455 ./x.py fmt 2020-04-20 20:47:27 -06:00
bors
073744f554 Auto merge of #71367 - Dylan-DPC:rollup-ysj4olr, r=Dylan-DPC
Rollup of 4 pull requests

Successful merges:

 - #69362 (Stabilize most common subset of alloc_layout_extras)
 - #71174 (Check that main/start is not async)
 - #71285 (MIR: use HirId instead of NodeId to avoid cycles while inlining)
 - #71346 (Do not build tools if user do not want them)

Failed merges:

r? @ghost
2020-04-21 01:26:56 +00:00
Cameron Taggart
df3776bc0f allow wasm32 compilation of librustc_data_structures/profiling.rs 2020-04-20 18:09:11 -06:00
Dylan DPC
9a0e702906
Rollup merge of #71346 - mati865:rustbuild-tools, r=Mark-Simulacrum
Do not build tools if user do not want them

Fixes https://github.com/rust-lang/rust/issues/71307
2020-04-21 00:30:58 +02:00
Dylan DPC
42b533d7ba
Rollup merge of #71285 - ljedrz:mir_inline_span_for_optimized_mir, r=ecstatic-morse
MIR: use HirId instead of NodeId to avoid cycles while inlining

I wanted to see if I could limit the number of uses of `NodeId` when `HirId` is available and I saw that some of the MIR `Inliner` code could use `Span` instead of `NodeId`, not unlike in https://github.com/rust-lang/rust/pull/71197.

~If I'm understanding the reason for not calling `optimized_mir` in incremental builds here correctly, this change could also allow us to do so.~

This change could affect performance, so if this approach makes sense, a perf run is probably a good idea.
2020-04-21 00:30:57 +02:00
Dylan DPC
e3a514c44a
Rollup merge of #71174 - Nokel81:fix-async-main-error, r=petrochenkov
Check that main/start is not async

* Add new error code E0752
* Add span to hir::IsAsync::Yes
* Emit an error if main or the start function is marked as async
* Add two regression tests

This PR fixes #68523.
2020-04-21 00:30:55 +02:00
Dylan DPC
69a528eda6
Rollup merge of #69362 - CAD97:alloc_layout_extras, r=Amanieu
Stabilize most common subset of alloc_layout_extras

Tracking issue: https://github.com/rust-lang/rust/issues/55724

Specifically, this stabilizes:

```rust
pub fn Layout::align_to(&self, align: usize) -> Result<Layout, LayoutErr>;
pub fn Layout::pad_to_align(&self) -> Layout;
pub fn Layout::extend(&self, next: Layout) -> Result<(Layout, usize), LayoutErr>;
pub fn Layout::array<T>(n: usize) -> Result<Layout, LayoutErr>;
```

Methods that are tracked by #55724 but are not stabilized here:

```rust
pub fn Layout::padding_needed_for(&self, align: usize) -> usize;
pub fn Layout::repeat(&self, n: usize) -> Result<(Layout, usize), LayoutErr>;
pub fn Layout::repeat_packed(&self, n: usize) -> Result<Layout, LayoutErr>;
pub fn Layout::extend_packed(&self, next: Layout) -> Result<Layout, LayoutErr>;
```

Combined, these stabilized functions allow code to construct and manipulate `repr(C)` layouts while letting the standard library handle correctness in the face of edge cases. For example use cases, consider the usage in [hashbrown](https://github.com/Amanieu/hashbrown/blob/2f2af1d/src/raw/mod.rs#L143), [crossbeam-skiplist](https://github.com/crossbeam-rs/crossbeam-skiplist/blob/master/src/base.rs#L99), [pointer-utils/slice-dst](92aeefeed9/crates/slice-dst/src/layout_polyfill.rs), and of course the standard library itself.

Providing a higher-level API such as `Layout::repr_c<const N: usize>(fields: [Layout; N]) -> Result<(Layout, [usize; N]), LayoutErr>` is blocked on const generics, which are a ways off. Providing an API that doesn't provide offsets would be quite suboptimal, as the reason for calculating the layout like this rather than `Layout::new` is to get the field offsets.

The primary issue with the current API is having to call `.pad_to_align()` to match the layout of a `repr(C)` struct. However, I think this is not just a (failing? limitation?) of the API, but rather intrinsic complexity. While all Rust-defined types have size==stride, and probably will for the foreseeable future, there is no inherent reason why this is a limitation of all allocations. As such, the `Layout` manipulation APIs shouldn't impose this limitation, and instead the higher level api of `repr_c` (or just plain old using `Layout::new`) can make keeping it simple.

cc @matklad r? @rust-lang/libs
2020-04-21 00:30:53 +02:00
Linus Färnstrand
9af047ff74 Fix show-const-contents rustdoc test 2020-04-20 23:38:07 +02:00
Linus Färnstrand
6850e4a1ae Use assoc float consts instead of module level 2020-04-20 23:38:06 +02:00
Linus Färnstrand
4ddf66187a Define module level int consts from assoc consts 2020-04-20 23:38:06 +02:00
Linus Färnstrand
9fc0833235 Stop accessing module level int consts via crate::<Ty> 2020-04-20 23:38:06 +02:00
Amanieu d'Antras
3eb1c43720 Ignore -Zprofile when building compiler_builtins 2020-04-20 20:31:32 +01:00