Commit graph

89753 commits

Author SHA1 Message Date
Niko Matsakis
a49c9fb8c3 include more universe information in debug! printouts 2019-02-15 14:27:10 +01:00
Niko Matsakis
378741b703 print more information for closures when -Zverbose is given
Ideally, we'd probably print the closure substs themselves actually.
2019-02-15 14:27:10 +01:00
bors
f47ec2ad5b Auto merge of #58455 - Centril:rollup, r=Centril
Rollup of 7 pull requests

Successful merges:

 - #58309 (Add more profiler events)
 - #58347 (Closure bounds fixes)
 - #58365 (Add an option to print the status of incremental tasks / dep nodes after running them)
 - #58371 (Check user type annotations for range patterns.)
 - #58378 (rustc: Implement incremental "fat" LTO)
 - #58407 (specify "upper camel case" in style lint)
 - #58449 (Notify @topecongiro when the state of rustfmt has changed)

Failed merges:

r? @ghost
2019-02-14 10:32:25 +00:00
Mazdak Farrokhzad
410b4456ca
Rollup merge of #58449 - topecongiro:rustfmt-toolstate, r=Centril
Notify @topecongiro when the state of rustfmt has changed

I would like to get notified when the state of rustfmt has changed.
Context: I am currently a leader of the rustfmt working group.

cc @nrc do you still want to get notified?
2019-02-14 08:24:18 +01:00
Mazdak Farrokhzad
a115fea884
Rollup merge of #58407 - euclio:upper-camel-case, r=estebank
specify "upper camel case" in style lint

Also, fix an issue where internal upper case letters were converted to
lower case.

Fixes #57319.
2019-02-14 08:24:17 +01:00
Mazdak Farrokhzad
2a539a1b91
Rollup merge of #58378 - alexcrichton:incremental-lto, r=michaelwoerister
rustc: Implement incremental "fat" LTO

Currently the compiler will produce an error if both incremental
compilation and full fat LTO is requested. With recent changes and the
advent of incremental ThinLTO, however, all the hard work is already
done for us and it's actually not too bad to remove this error!

This commit updates the codegen backend to allow incremental full fat
LTO. The semantics are that the input modules to LTO are all produce
incrementally, but the final LTO step is always done unconditionally
regardless of whether the inputs changed or not. The only real
incremental win we could have here is if zero of the input modules
changed, but that's so rare it's unlikely to be worthwhile to implement
such a code path.

cc #57968
cc rust-lang/cargo#6643
2019-02-14 08:24:15 +01:00
Mazdak Farrokhzad
0dbb867beb
Rollup merge of #58371 - davidtwco:issue-58299, r=arielb1
Check user type annotations for range patterns.

Fixes #58299.

This PR builds on the fix from #58161 (which fixed miscompilation
caused by the introduction of `AscribeUserType` patterns for associated
constants) to start checking these patterns are well-formed for ranges
(previous fix just ignored them so that miscompilation wouldn't occur).

r? @arielb1
2019-02-14 08:24:14 +01:00
Mazdak Farrokhzad
0431857770
Rollup merge of #58365 - Zoxc:task-status, r=michaelwoerister
Add an option to print the status of incremental tasks / dep nodes after running them

r? @michaelwoerister
2019-02-14 08:24:13 +01:00
Mazdak Farrokhzad
975cdb57d0
Rollup merge of #58347 - matthewjasper:closure-bounds-fixes, r=pnkfelix
Closure bounds fixes

* Ensures that "nice region errors" are buffered so that they are sorted and migrated correctly.
* Propagates fewer constraints for closures (cc #58178)
* Propagate constraints from closures more precisely (#58127)

Closes #58127

r? @nikomatsakis
2019-02-14 08:24:12 +01:00
Mazdak Farrokhzad
f9c9512628
Rollup merge of #58309 - wesleywiser:add_more_profiler_events, r=michaelwoerister
Add more profiler events

- Adds Start\Stop events for time spent loading incremental query results from disk.

- Adds Start\Stop events for time spent blocked waiting for queries to complete (when parallel queries are enabled).

r? @michaelwoerister
2019-02-14 08:24:10 +01:00
bors
c67d4749a5 Auto merge of #58446 - Centril:rollup, r=Centril
Rollup of 8 pull requests

Successful merges:

 - #57451 (suggestion-diagnostics: as_ref improve snippet)
 - #57856 (Convert old first edition links to current edition one)
 - #57992 (Update the future/task API)
 - #58258 (Reduce the size of `hir::Expr`.)
 - #58267 (Tweak "incompatible match arms" error)
 - #58296 (Hidden suggestion support)
 - #58301 (Enable comparing fat pointers)
 - #58308 (Extract block to insert an intrinsic into its own function)

Failed merges:

r? @ghost
2019-02-14 04:22:35 +00:00
topecongiro
be121a0cd1 Notify @topecongiro when the state of rustfmt has changed 2019-02-14 11:11:05 +09:00
Mazdak Farrokhzad
a0767d6096
Rollup merge of #58308 - gnzlbg:context_insert_intr, r=eddyb
Extract block to insert an intrinsic into its own function

r? @eddyb
2019-02-14 02:41:24 +01:00
Mazdak Farrokhzad
fab0f9be32
Rollup merge of #58301 - RalfJung:fat-ptr-eq, r=oli-obk
Enable comparing fat pointers

Also refactor our binops a bit to make that happen more easily.

r? @oli-obk
2019-02-14 02:41:23 +01:00
Mazdak Farrokhzad
56e19160af
Rollup merge of #58296 - estebank:hidden-suggestion, r=oli-obk
Hidden suggestion support

Add way to hide suggestion snippet window from cli output to avoid cluttered spans that don't enhance understanding.

r? @pietroalbini CC @zackmdavis
2019-02-14 02:41:21 +01:00
Mazdak Farrokhzad
4ad3cf2533
Rollup merge of #58267 - estebank:match-arms, r=matthewjasper
Tweak "incompatible match arms" error

- Point at the body expression of the match arm with the type error.
- Point at the prior match arms explicitly stating the evaluated type.
- Point at the entire match expr in a secondary span, instead of primary.
- For type errors in the first match arm, the cause is outside of the
  match, treat as implicit block error to give a more appropriate error.

Fix #46776, fix #57206.
CC #24157, #38234.
2019-02-14 02:41:20 +01:00
Mazdak Farrokhzad
b6ed206484
Rollup merge of #58258 - nnethercote:shrink-hir-Expr, r=michaelwoerister
Reduce the size of `hir::Expr`.

From 104 bytes to 72 bytes on x86-64. This slightly reduces instruction
counts.

Also add an assertion about the size.
2019-02-14 02:41:19 +01:00
Mazdak Farrokhzad
919cf42feb
Rollup merge of #57992 - Matthias247:waker4, r=cramertj
Update the future/task API

This change updates the future and task API as discussed in the stabilization RFC at https://github.com/rust-lang/rfcs/pull/2592.

Changes:
- Replacing UnsafeWake with RawWaker and RawWakerVtable
- Removal of LocalWaker
- Removal of Arc-based Wake trait
2019-02-14 02:41:17 +01:00
Mazdak Farrokhzad
aa896f30bb
Rollup merge of #57856 - lzutao:fix-old-first-edition, r=steveklabnik
Convert old first edition links to current edition one

r? @steveklabnik
2019-02-14 02:41:16 +01:00
Mazdak Farrokhzad
93ecae63d8
Rollup merge of #57451 - dlrobertson:can_use_as_ref_nit, r=estebank
suggestion-diagnostics: as_ref improve snippet

Improve the code snippet suggested in suggestion-diagnostics when
suggesting the use of as_ref.

Given:

```rust
fn test(x: &usize) {}
fn main() {
    Some(42).map(|x| test(x));
}
```

Suggest

```
  help: consider using `as_ref` instead: `as_ref().map`
```

Instead of

```
  help: consider using `as_ref` instead: `as_ref().`
```
2019-02-14 02:41:15 +01:00
Nicholas Nethercote
5d65e8cc7a Reduce the size of hir::Expr.
From 104 bytes to 72 bytes on x86-64. This slightly reduces instruction
counts.

Also add an assertion about the size.
2019-02-14 11:52:03 +11:00
bors
4772dc8087 Auto merge of #58432 - Centril:rollup, r=Centril
Rollup of 10 pull requests

Successful merges:

 - #58110 (libpanic_unwind => 2018)
 - #58167 (HirId-ify hir::BodyId)
 - #58202 (Ignore future deprecations in #[deprecated])
 - #58272 (Cut down on number formating code size)
 - #58276 (Improve the error messages for missing stability attributes)
 - #58354 (Fix ICE and invalid filenames in MIR printing code)
 - #58381 (Only suggest imports if not imported.)
 - #58386 (Fix #54242)
 - #58400 (Fix rustc_driver swallowing errors when compilation is stopped)
 - #58420 (target/uefi: clarify documentation)

Failed merges:

r? @ghost
2019-02-13 22:23:09 +00:00
Matthew Jasper
79e8c31176 Propagate region constraints more precisely from closures 2019-02-13 19:41:31 +00:00
Matthew Jasper
ea613f30d9 Buffer and migrate nice region errors 2019-02-13 19:41:31 +00:00
Matthew Jasper
168c14a1a5 Avoid propagating redundant outlives constraints from closures 2019-02-13 18:50:46 +00:00
Andy Russell
2f95299f6b
specify "upper camel case" in style lint
Also, fix an issue where internal upper case letters were converted to
lower case.
2019-02-13 13:41:32 -05:00
Dan Robertson
285d4a7eb6
suggestion-diagnostics: as_ref improve snippet
Improve the code snippet suggested in suggestion-diagnostics when
suggesting the use of as_ref.
2019-02-13 17:52:22 +00:00
Mazdak Farrokhzad
05cfcb5eb2
Rollup merge of #58420 - dvdhrm:target-uefi-comments, r=nagisa
target/uefi: clarify documentation

This clarifies why FP-units are disabled on UEFI targets, as well as
why we must opt into the NXCOMPAT feature.

I did find some time to investigate why GRUB and friends disable FP on
UEFI. The specification explicitly allows using MMX/SSE/AVX, but as it
turns out it does not mandate enabling the instruction sets explicitly.
Hence, any use of these instructions will trigger CPU exceptions,
unless an application explicitly enables them (which is not an option,
as these are global flags that better be controlled by the
kernel/firmware).

Furthermore, UEFI systems are allowed to mark any non-code page as
non-executable. Hence, we must make sure to never place code on the
stack or heap. So we better pass /NXCOMPAT to the linker for it to
complain if it ever places code in non-code pages.

Lastly, this fixes some typos in related comments.

r? @alexcrichton
2019-02-13 18:12:39 +01:00
Mazdak Farrokhzad
0178f31869
Rollup merge of #58400 - gnzlbg:fix_driver, r=oli-obk
Fix rustc_driver swallowing errors when compilation is stopped

r? @oli-obk
2019-02-13 18:12:37 +01:00
Mazdak Farrokhzad
fceb16911e
Rollup merge of #58386 - Zoxc:fix-54242, r=michaelwoerister
Fix #54242

r? @michaelwoerister
2019-02-13 18:12:36 +01:00
Mazdak Farrokhzad
8a4f8e6adc
Rollup merge of #58381 - davidtwco:issue-42944, r=estebank
Only suggest imports if not imported.

Fixes #42944 and fixes #53430.

This commit modifies name resolution error reporting so that if a name
is in scope and has been imported then we do not suggest importing it.

This can occur when we add a label about constructors not being visible
due to private fields. In these cases, we know that the struct/variant
has been imported and we should silence any suggestions to import the
struct/variant.

r? @estebank
2019-02-13 18:12:35 +01:00
Mazdak Farrokhzad
b39b62534d
Rollup merge of #58354 - matthewjasper:mir-dump-fixes, r=wesleywiser
Fix ICE and invalid filenames in MIR printing code

* Don't panic when printing MIR for associated constants
* Don't use `<` and `>` in filenames, since they aren't allowed on Windows.

r? @eddyb

cc @RalfJung
2019-02-13 18:12:34 +01:00
Mazdak Farrokhzad
c6590e7dc7
Rollup merge of #58276 - varkor:missing-stability-attr-top-level, r=davidtwco
Improve the error messages for missing stability attributes

This makes the capitalisation consistent and provides more context (especially for missing top-level attributes).
2019-02-13 18:12:32 +01:00
Mazdak Farrokhzad
c0d507d73b
Rollup merge of #58272 - fitzgen:num-format-code-size, r=Mark-Simulacrum
Cut down on number formating code size

r? @alexcrichton
2019-02-13 18:12:31 +01:00
Mazdak Farrokhzad
193c3773c2
Rollup merge of #58202 - varkor:deprecated-future-external, r=GuillaumeGomez
Ignore future deprecations in #[deprecated]

The future deprecation warnings should only apply to `#[rustc_deprecated]` as they take into account rustc's version. Fixes #57952.

I've also slightly modified rustdoc's display of future deprecation notices to make it more consistent, so I'm assigning a rustdoc team member for review to make sure this is okay.

r? @GuillaumeGomez
2019-02-13 18:12:30 +01:00
Mazdak Farrokhzad
adb2bb6e61
Rollup merge of #58167 - ljedrz:HirIdify_body_id, r=Zoxc
HirId-ify hir::BodyId

Another step towards https://github.com/rust-lang/rust/pull/57578.
2019-02-13 18:12:28 +01:00
Mazdak Farrokhzad
78c60bb865
Rollup merge of #58110 - Centril:libpanic_unwind-2018, r=oli-obk
libpanic_unwind => 2018

Transitions `libpanic_unwind` to Rust 2018; cc #58099

r? @oli-obk
2019-02-13 18:12:27 +01:00
Mazdak Farrokhzad
bb08499626 libpanic_unwind => 2018: remove unused extern crate. 2019-02-13 18:09:09 +01:00
Mazdak Farrokhzad
f9e9c9196a libpanic_unwind => 2018: fix ICEs. 2019-02-13 18:09:09 +01:00
Mazdak Farrokhzad
f2fe12a8ab libpanic_unwind => 2018 2019-02-13 18:09:09 +01:00
Lzu Tao
e7f8e63ed4 Convert old doc links to current edition
Use footnote style to bypass the tidy check
2019-02-13 14:39:25 +00:00
bors
e544947278 Auto merge of #56951 - oli-obk:auto_toolstate_issue, r=kennytm
Automatically open an issue when a tool breaks

cc @nikomatsakis

fixes https://github.com/rust-lang-nursery/rust-toolstate/issues/6

documentation about issue opening via the github api: https://developer.github.com/v3/issues/#create-an-issue
2019-02-13 13:08:30 +00:00
David Rheinsberg
15e4bd3bf4 target/uefi: clarify documentation
This clarifies why FP-units are disabled on UEFI targets, as well as
why we must opt into the NXCOMPAT feature.

I did find some time to investigate why GRUB and friends disable FP on
UEFI. The specification explicitly allows using MMX/SSE/AVX, but as it
turns out it does not mandate enabling the instruction sets explicitly.
Hence, any use of these instructions will trigger CPU exceptions,
unless an application explicitly enables them (which is not an option,
as these are global flags that better be controlled by the
kernel/firmware).

Furthermore, UEFI systems are allowed to mark any non-code page as
non-executable. Hence, we must make sure to never place code on the
stack or heap. So we better pass /NXCOMPAT to the linker for it to
complain if it ever places code in non-code pages.

Lastly, this fixes some typos in related comments.
2019-02-13 11:55:17 +01:00
bors
c005afcb1e Auto merge of #58238 - Mark-Simulacrum:doctest-fix, r=alexcrichton
Fixes rustdoc in stage 0, stage 1

When a request for rustdoc is passed for stage 0, x.py build --stage 0
src/tools/rustdoc or ensure(tool::Rustdoc { .. }) with top_stage = 0, we
return the rustdoc for that compiler (i.e., the beta rustdoc).

This fixes stage 0 of https://github.com/rust-lang/rust/issues/52186 as well as being part of general workflow improvements (making stage 0 testing for std work) for rustbuild.

The stage 1 fix (second commit) completely resolves the problem, so this fixes https://github.com/rust-lang/rust/issues/52186.
2019-02-13 10:27:50 +00:00
Ralf Jung
22d5e6a37a fix rebase fallout 2019-02-13 11:14:40 +01:00
Ralf Jung
1a5304ae93 fix whitespace 2019-02-13 10:14:56 +01:00
Ralf Jung
b376ae6671 make bin_op and unary_op APIs consistently work on ImmTy 2019-02-13 10:14:56 +01:00
Ralf Jung
e73f96abe7 make OpTy.op private, and ImmTy.imm public instead 2019-02-13 10:14:56 +01:00
ljedrz
eac43ccda4 HirId-ify hir::BodyId 2019-02-13 09:54:58 +01:00
bors
ccd23b95e5 Auto merge of #58235 - jethrogb:jb/sgx-usercall-internals, r=alexcrichton
SGX target: simplify usercall internals

This moves logic from assembly to Rust and removes the special case for exit/panic handling, merging it with regular usercall handling.

Also, this fixes a bug in the exit usercall introduced in a75ae00. The bug would make regular exits look like panics with high probability. It would also with some probability leak information through uncleared registers.

cc @VardhanThigle

r? @alexcrichton
2019-02-13 07:46:21 +00:00