Commit Graph

69961 Commits

Author SHA1 Message Date
bors
3707db9405 Auto merge of #45944 - eddyb:provide, r=nikomatsakis
rustc_driver: expose a way to override query providers in CompileController.

This API has been a long-time coming and will probably become the main method for custom drivers (that is, binaries other than `rustc` itself that use `librustc_driver`) to adapt the compiler's behavior.
2017-11-15 08:02:19 +00:00
Jeffrey Seyfried
74cc1fdb52 Rename Span::default -> Span::def_site. 2017-11-14 21:53:37 -08:00
bors
f93a4928c2 Auto merge of #45922 - vramana:fix-45702, r=nikomatsakis
Fix MIR borrowck EndRegion not found

Fixes #45702

- [x] Add Tests
2017-11-15 04:48:16 +00:00
bors
8a98531973 Auto merge of #45913 - sinkuu:mir-inlining-closure, r=arielb1
Handle closures correctly in MIR inlining

Fixes #45894.
2017-11-15 01:32:30 +00:00
QuietMisdreavus
479b91901d examples in Cow::into_owned don't need to wrap result in Cows 2017-11-14 18:23:24 -06:00
Michael Lamparski
ead9ac3b51 add NOTE: to test notes 2017-11-14 17:45:18 -05:00
Ramana Venkata
5144d3222f Fix printing of upvar in closures 2017-11-15 02:24:25 +05:30
gnzlbg
5146663602 fix linking error on i586 2017-11-14 21:35:05 +01:00
Jeff Crocker
d1a83c6bd2
Remove checked arithmetic from if expression hash tests 2017-11-14 12:12:04 -08:00
Ramana Venkata
a6d691b43c Fix End-user description not implemented for field access on `TyClosure
Fixes #45698
2017-11-15 01:06:05 +05:30
Michael Woerister
2c1aeddf27 incr.comp.: Cache TypeckTables and add -Zincremental-queries flag. 2017-11-14 19:52:49 +01:00
bors
ff0f5de3b3 Auto merge of #45821 - djzin:unreachable-match-arms, r=nikomatsakis
always add an unreachable branch on matches to give more info to llvm

As part of https://github.com/djzin/rustc-optimization I discovered that some simple enum optimizations (src/unary/three_valued_enum.rs and src/unary/four_valued_enum.rs in the repo) are not applied - and the reason for this is that we erase the info that the discriminant of an enum is one of the options by putting the last one in an "otherwise" branch. This patch adds an extra branch so that LLVM can know what the possibilities are for the discriminant, which fixes the three- and four- valued cases.

Note that for whatever reason, this doesn't fix the case of 2 variants (most notably `Option` and `Result` have 2 variants) - a pass re-ordering might fix this or we may wish to add "assume" annotations on discriminants to force it to optimize.
2017-11-14 18:47:34 +00:00
bors
dbeb5bf890 Auto merge of #45981 - GuillaumeGomez:rollup, r=GuillaumeGomez
Rollup of 7 pull requests

- Successful merges: #45815, #45941, #45950, #45961, #45967, #45970, #45977
- Failed merges:
2017-11-14 16:18:19 +00:00
Michael Woerister
0b1438307e incr.comp.: Add 'tcx to QueryDescription. 2017-11-14 17:00:44 +01:00
Guillaume Gomez
66d0537ebe Rollup merge of #45977 - kennytm:fix-pulldown-warnings, r=steveklabnik
Fixed several pulldown warnings when documenting libstd.
2017-11-14 16:52:14 +01:00
Guillaume Gomez
0895347a49 Rollup merge of #45970 - GuillaumeGomez:from-str-docs, r=QuietMisdreavus
Add missing links in FromStr docs

r? @QuietMisdreavus
2017-11-14 16:52:13 +01:00
Guillaume Gomez
01e979f7b1 Rollup merge of #45967 - matthewjasper:array-move-types, r=arielb1
MIR-borrowck: don't ICE for cannot move from array error

Closes #45694
compile-fail test E0508 now gives
```text
error[E0508]: cannot move out of type `[NonCopy; 1]`, a non-copy array (Ast)
  --> .\src\test\compile-fail\E0508.rs:18:18
   |
18 |     let _value = array[0];  //[ast]~ ERROR E0508
   |                  ^^^^^^^^
   |                  |
   |                  cannot move out of here
   |                  help: consider using a reference instead: `&array[0]`

error[E0508]: cannot move out of type `[NonCopy; 1]`, a non-copy array (Mir)
  --> .\src\test\compile-fail\E0508.rs:18:18
   |
18 |     let _value = array[0];  //[ast]~ ERROR E0508
   |                  ^^^^^^^^ cannot move out of here

error: aborting due to 2 previous errors
```
2017-11-14 16:52:12 +01:00
Guillaume Gomez
529bb320f7 Rollup merge of #45961 - dereckson:unix-agnosticity-ci, r=Mark-Simulacrum
Use #!/usr/bin/env as shebang for Bash scripts

On some systems, the bash command could be available in another
directory than /bin. As such, to offer an env shebang is more
convenient.

This make sense even for docker scripts, as you can use Docker
on FreeBSD or SmartOS for example.
2017-11-14 16:52:11 +01:00
Guillaume Gomez
d0b11b9bd1 Rollup merge of #45950 - fitzgen:update-unary-and-binary-exprs-test-to-use-incr-except, r=michaelwoerister
incr: Make `unary_and_binary_exprs.rs` use `except`-style incremental checking

Part of #44924

r? @michaelwoerister
2017-11-14 16:52:10 +01:00
Guillaume Gomez
c95ef0d9d5 Rollup merge of #45941 - gaurikholkar:master, r=nikomatsakis
update match-expressions.rs with DepNode labels

As a part of #44924, I have updated the match-expressions.rs. The PR has tests verified for the following dependency nodes for let-expressions

- MirValidated
- MirOptimized
- TypeCheckTables
- TypeOfItem
- GenericsOfItem
- PredicatesOfItem
- FnSignature

cc @michaelwoerister
r? @nikomatsakis
2017-11-14 16:52:09 +01:00
Guillaume Gomez
013cd5af86 Rollup merge of #45815 - QuietMisdreavus:happy-little-notices, r=GuillaumeGomez
rustdoc: tweak notes on ignore/compile_fail examples

Part of https://github.com/rust-lang/rust/issues/44927

This is a softening of these notices to mention *why* a given example has a given callout, rather then telling viewers to be careful with an example. It also changes the character used for these samples from a warning logo to a circle-i/information logo.

![image](https://user-images.githubusercontent.com/5217170/32464361-5fbb5d9e-c305-11e7-8482-ce71b97a54df.png)
2017-11-14 16:52:07 +01:00
Michael Woerister
4bfab89aa2 incr.comp.: Store the query result index which records where query results can be found in the cached. 2017-11-14 16:15:45 +01:00
Ariel Ben-Yehuda
c0f7cce96e check_unsafety: fix unused unsafe block duplication
The duplicate error message is later removed by error message
deduplication, but it still appears on beta and is still a bug
2017-11-14 16:38:34 +02:00
Michael Lamparski
4d200f6954 un-add some notes from tests 2017-11-14 09:25:09 -05:00
Michael Woerister
2087d5ebfa incr.comp.: Do some verification on data decoded from incr. comp. cache. 2017-11-14 14:50:03 +01:00
bors
9cd994cdc1 Auto merge of #45896 - malbarbo:use-libc-const, r=alexcrichton
Use getrandom syscall for all Linux and Android targets.

I suppose we can use it in all Linux and Android targets. In function `is_getrandom_available` is checked if the syscall is available (getrandom syscall was add in version 3.17 of Linux kernel), if the syscall is not available `fill_bytes` fallback to reading from `/dev/urandom`.

Update libc to include getrandom related constants.
2017-11-14 13:46:19 +00:00
Michael Woerister
de0317e267 incr.comp.: Encode DefPathTables for reconstructing DefIds. 2017-11-14 14:40:56 +01:00
Shotaro Yamada
a1f7bad4a7 Fix test 2017-11-14 22:29:09 +09:00
Michael Lamparski
dcbedf78a0 Add context to E0084, E00517, E0518
Show both the attribute and the item
2017-11-14 08:24:28 -05:00
Michael Woerister
bedb44cca8 incr.comp.: Allow for mapping from prev-session-CrateNums to current-session-CrateNums in OnDiskCaches. 2017-11-14 14:07:12 +01:00
Marco A L Barbosa
8f2dfd16dc Update libc (new const definitions for Linux sparc64) 2017-11-14 10:47:04 -02:00
steveklabnik
3b32a3a104 link the cargo book into the bookshelf 2017-11-14 06:51:59 -05:00
steveklabnik
623886f44c Start shipping the Cargo book
Fixes #44910
Fixes #39588

See both of those bugs for more details.
2017-11-14 06:51:59 -05:00
Michael Woerister
15db1652f8 incr.comp.: Implement TyDecoder for on_disk_cache::CacheDecoder. 2017-11-14 12:03:57 +01:00
kennytm
838a38365d
Fixed several pulldown warnings when documenting libstd. 2017-11-14 17:22:57 +08:00
Shotaro Yamada
ec2ff8f734 Add TyCtxt::is_closure 2017-11-14 17:43:43 +09:00
Shotaro Yamada
c3ec175857 Make create_temp_necessary a method 2017-11-14 17:12:08 +09:00
Shotaro Yamada
cc36f88ed4 Handle closures correctly in MIR inlining 2017-11-14 17:12:08 +09:00
bors
24840dab0b Auto merge of #45916 - eddyb:even-mirer-0, r=nikomatsakis
rustc_mir: hardcode pass list internally and remove premature pluggability.

Fixes #41712 by moving the MIR pass lists from `rustc_driver` to `rustc_mir`.
The application of the passes is done with the `rustc_mir::transform::run_passes` macro, which is public, as are all the passes AFAIK, and can be used to apply MIR passes outside of `rustc_mir`.

With the ability to override query providers through the `rustc_driver` (orthogonal to, and not included in this PR), custom drivers will be able to substitute the entire pass list if they want to.
**EDIT**: the aforementioned ability is added by #45944.

r? @nikomatsakis
2017-11-14 07:54:51 +00:00
Djzin
5b1cc1d810 don't send block back to be marked unreachable twice 2017-11-14 06:59:56 +00:00
Eduard-Mihai Burtescu
d6aa56f44e rustc: split off BodyOwnerKind from MirSource. 2017-11-14 08:54:27 +02:00
Eduard-Mihai Burtescu
c79e8f4d1d rustc: remove unused MirSource::GeneratorDrop. 2017-11-14 08:52:26 +02:00
Eduard-Mihai Burtescu
c5022f2f16 rustc_mir: drive passes directly with a macro. 2017-11-14 08:52:25 +02:00
Eduard-Mihai Burtescu
86206f22a0 rustc: move the MIR pass infrastructure and list to rustc_mir. 2017-11-14 08:52:25 +02:00
Djzin
c503fe1134 add optimization codegen tests 2017-11-14 06:33:39 +00:00
Djzin
aed0c9c9c0 use lazy cached unreachable block - assign it to the function's closing brace 2017-11-14 06:33:39 +00:00
Djzin
829b70330e always add an unreachable branch on matches to give more info to llvm about which values are possible 2017-11-14 06:33:39 +00:00
bors
b5a3ab2e81 Auto merge of #45915 - michaelwoerister:removed-nodes-in-try-mark-green, r=alexcrichton
incr.comp.: Don't crash in DepGraph::try_mark_green() when encountering a removed input node.

Fixes a small regression that was introduced in #45867.

r? @nikomatsakis
2017-11-14 05:30:34 +00:00
bors
9b53f0a662 Auto merge of #45909 - sinkuu:issue-45885, r=arielb1
Normalize inlined function in MIR inliner

Fixes #45885

r? @arielb1
2017-11-14 02:05:37 +00:00
bors
212d74f1e7 Auto merge of #45436 - zilbuz:issue-44837, r=nikomatsakis
MIR-borrowck: add permisson checks to `fn access_lvalue`

WIP : Some FIXME left and some broken tests.

Fix #44837
2017-11-13 23:36:07 +00:00