]> git.lizzy.rs Git - rust.git/log
rust.git
6 years agoMerge branch 'master' of https://github.com/rust-lang/rust into gen
John Kåre Alsaker [Mon, 28 Aug 2017 00:41:16 +0000 (02:41 +0200)]
Merge branch 'master' of https://github.com/rust-lang/rust into gen

6 years agoUpdate rls
John Kåre Alsaker [Mon, 28 Aug 2017 00:39:17 +0000 (02:39 +0200)]
Update rls

6 years agoAuto merge of #44110 - alexcrichton:docker-init, r=Mark-Simulacrum
bors [Sun, 27 Aug 2017 15:31:11 +0000 (15:31 +0000)]
Auto merge of #44110 - alexcrichton:docker-init, r=Mark-Simulacrum

ci: Remove the need for `dumb-init`

Newer versions of Docker have a `--init` argument which spawns an init process
in the container, which we should be able to use everywhere now.

6 years agoAuto merge of #44060 - taleks:issue-43205, r=arielb1
bors [Sun, 27 Aug 2017 12:53:48 +0000 (12:53 +0000)]
Auto merge of #44060 - taleks:issue-43205, r=arielb1

Fixes issue #43205: ICE in Rvalue::Len evaluation.

- fixes evaluation of array length for zero-sized type referenced by rvalue operand.
- adds test to verify fix.

*Cause of the issue*.

Zero-sized aggregates are handled as operands, not lvalues. Therefore while visiting `Assign` statement by `LocalAnalyser`, `mark_as_lvalue()` is not called for related `Local`. This behaviour is controlled by `rvalue_creates_operand()` method.

As result it causes error later, when rvalue operand is evaluated in `trans_rvalue_operand()` while handling `Rvalue::Len` case. Array length evaluation invokes `trans_lvalue()` which expects referenced `Local` to be value, not operand.

*How it is fixed*.

In certain cases result of `Rvalue::Len` can be evaluated without calling
`trans_lvalue()`. Method `evaluate_array_len()` is introduced to handle length
evaluation for zero-sized types referenced by Locals.

*Some concerns*.

- `trans_lvalue()` has two other entry points in `rvalue.rs`: it is invoked while handling `Rvalue::Ref` and `Rvalue::Discriminant`. There is a chance those may produce the same issue, but I've failed to write a specific test that leads to this.
- `evaluate_array_len()` performs the same check (matches lvalue and `Local`), which is performed again in `trans_lvalue()`. Without changing `trans_lvalue()` signature to make it aware that caller deals with rvalue, it seems there is no cheap solution to avoid this check.

6 years agoAuto merge of #42588 - ishitatsuyuki:patch-1, r=petrochenkov
bors [Sun, 27 Aug 2017 10:02:51 +0000 (10:02 +0000)]
Auto merge of #42588 - ishitatsuyuki:patch-1, r=petrochenkov

Make unused-extern-crate warn-by-default

Apart from enabling the lint, this pull request also removes existing unused crates in the codebase, and fix some amount of false positives on crates with special purposes.

Now that all false positive issues are closed, it should be possible to make it available to wider users.

Quote:
> Now that macro modularization is implemented, this is true today! *https://github.com/rust-lang/rust/issues/30849#issuecomment-286573218*

Concerns: can break some `#[deny(warnings)]`.

Close #42591

6 years agoUpdate Cargo submodule
Tatsuyuki Ishi [Fri, 25 Aug 2017 06:54:15 +0000 (15:54 +0900)]
Update Cargo submodule

6 years agoWhitelist for dummy_jemalloc
Tatsuyuki Ishi [Thu, 24 Aug 2017 00:27:12 +0000 (09:27 +0900)]
Whitelist for dummy_jemalloc

6 years agoAdditional libc cleanup
Tatsuyuki Ishi [Wed, 23 Aug 2017 00:57:05 +0000 (09:57 +0900)]
Additional libc cleanup

6 years agoPlatform gate libc in libtest
Tatsuyuki Ishi [Tue, 22 Aug 2017 04:33:43 +0000 (13:33 +0900)]
Platform gate libc in libtest

6 years agoWhitelist unwind import in std
Tatsuyuki Ishi [Tue, 22 Aug 2017 01:30:51 +0000 (10:30 +0900)]
Whitelist unwind import in std

This is a part of libbacktrace linkage and thus the compiler cannot detect if it's used or not.

6 years agoAdd missing dependency for Windows
Tatsuyuki Ishi [Mon, 14 Aug 2017 00:26:14 +0000 (09:26 +0900)]
Add missing dependency for Windows

6 years agoAddress review comments, second turn
Tatsuyuki Ishi [Sun, 13 Aug 2017 02:58:17 +0000 (11:58 +0900)]
Address review comments, second turn

6 years agoMove unused-extern-crate to late pass
Tatsuyuki Ishi [Sat, 24 Jun 2017 08:48:27 +0000 (17:48 +0900)]
Move unused-extern-crate to late pass

6 years agoMake unused-extern-crate warn-by-default
Tatsuyuki Ishi [Sun, 11 Jun 2017 02:44:22 +0000 (11:44 +0900)]
Make unused-extern-crate warn-by-default

6 years agoAuto merge of #44112 - alexcrichton:thread-join, r=sfackler
bors [Sun, 27 Aug 2017 04:20:28 +0000 (04:20 +0000)]
Auto merge of #44112 - alexcrichton:thread-join, r=sfackler

std: Handle OS errors when joining threads

Also add to the documentation that the `join` method can panic.

cc #34971
cc #43539

6 years agostd: Handle OS errors when joining threads
Alex Crichton [Sun, 27 Aug 2017 02:36:46 +0000 (19:36 -0700)]
std: Handle OS errors when joining threads

Also add to the documentation that the `join` method can panic.

cc #34971
cc #43539

6 years agoAuto merge of #44102 - Mark-Simulacrum:update-cargo, r=alexcrichton
bors [Sun, 27 Aug 2017 01:41:45 +0000 (01:41 +0000)]
Auto merge of #44102 - Mark-Simulacrum:update-cargo, r=alexcrichton

Update cargo

Should permit https://github.com/rust-lang/rust/pull/41991 to move forward. I think it's best to land this as a separate patch and rebase that, though.

r? @alexcrichton

6 years agoci: Remove the need for `dumb-init`
Alex Crichton [Sun, 27 Aug 2017 01:34:13 +0000 (18:34 -0700)]
ci: Remove the need for `dumb-init`

Newer versions of Docker have a `--init` argument which spawns an init process
in the container, which we should be able to use everywhere now.

6 years agoAuto merge of #44096 - Dushistov:master, r=japaric
bors [Sat, 26 Aug 2017 23:11:44 +0000 (23:11 +0000)]
Auto merge of #44096 - Dushistov:master, r=japaric

Add test for wrong code generation for HashSet creation on arm cpu

This is test for #42918.
To reproduce bug you need machine with arm cpu and compile with optimization.
I tried with rustc 1.19.0-nightly (3d5b8c626 2017-06-09),
if compile test with -C opt-level=3 for target=arm-linux-androideabi
and run on "Qualcomm MSM 8974 arm cpu" then assert fails,
if compile and run with -C opt-level=2 it gives segmentation fault.
So I add `compile-flags: -O`.
With rustc 1.19.0 (0ade33941 2017-07-17) all works fine.
Closes #42918

6 years agoAuto merge of #44084 - alexcrichton:msvc-ninja, r=Mark-Simulacrum
bors [Sat, 26 Aug 2017 20:21:28 +0000 (20:21 +0000)]
Auto merge of #44084 - alexcrichton:msvc-ninja, r=Mark-Simulacrum

rustbuild: Automatically enable Ninja on MSVC

Discovered in #43767 it turns out the default MSBuild generator in CMake for
whatever reason isn't supporting many of the configuration options we give to
LLVM. To improve the contributor experience automatically enable Ninja if we
find it to ensure that "flavorful" configurations of LLVM work by default in
more situations.

Closes #43767

6 years agoUpdate cargo
Mark Simulacrum [Sat, 26 Aug 2017 18:26:19 +0000 (12:26 -0600)]
Update cargo

6 years agoAuto merge of #44082 - pnkfelix:issue-43457, r=eddyb
bors [Sat, 26 Aug 2017 17:48:29 +0000 (17:48 +0000)]
Auto merge of #44082 - pnkfelix:issue-43457, r=eddyb

Fix destruction extent lookup during HIR -> HAIR translation

My method for finding the destruction extent, if any, from cbed41a174aad44e069bec09bf1e502591c132ae (in #39409), was buggy in that it sometimes failed to find an extent that was nonetheless present.

This fixes that, and is cleaner code to boot.

Fix #43457

6 years agoAuto merge of #44098 - frewsxcv:rollup, r=frewsxcv
bors [Sat, 26 Aug 2017 15:17:32 +0000 (15:17 +0000)]
Auto merge of #44098 - frewsxcv:rollup, r=frewsxcv

Rollup of 7 pull requests

- Successful merges: #43776, #43966, #43979, #44072, #44086, #44090, #44091
- Failed merges:

6 years agoRollup merge of #44091 - kallisti5:haiku-fix, r=eddyb
Corey Farwell [Sat, 26 Aug 2017 13:46:37 +0000 (06:46 -0700)]
Rollup merge of #44091 - kallisti5:haiku-fix, r=eddyb

haiku/librustc_back: Remove incorrect no_integrated_as

* Makes rust bootstrap incorrectly search for xxx.s vs xxx.0.s
* Not needed or incorrect fix for another issue.

6 years agoRollup merge of #44090 - GuillaumeGomez:str-doc, r=steveklabnik
Corey Farwell [Sat, 26 Aug 2017 13:46:36 +0000 (06:46 -0700)]
Rollup merge of #44090 - GuillaumeGomez:str-doc, r=steveklabnik

Add missing link in string doc

r? @rust-lang/docs

6 years agoRollup merge of #44086 - kennytm:htmldocck-python3, r=Mark-Simulacrum
Corey Farwell [Sat, 26 Aug 2017 13:46:35 +0000 (06:46 -0700)]
Rollup merge of #44086 - kennytm:htmldocck-python3, r=Mark-Simulacrum

Allow `htmldocck.py` to run using Python 3

6 years agoRollup merge of #44072 - lukaramu:fix-doc-headings, r=steveklabnik
Corey Farwell [Sat, 26 Aug 2017 13:46:34 +0000 (06:46 -0700)]
Rollup merge of #44072 - lukaramu:fix-doc-headings, r=steveklabnik

Fix inconsistent doc headings

This fixes headings reading "Unsafety" and "Example", they should be "Safety" and "Examples" according to RFC 1574.

r? @steveklabnik

6 years agoRollup merge of #43979 - Jouan:Add-links-for-impls, r=GuillaumeGomez
Corey Farwell [Sat, 26 Aug 2017 13:46:33 +0000 (06:46 -0700)]
Rollup merge of #43979 - Jouan:Add-links-for-impls, r=GuillaumeGomez

Add links for impls

Implements a solution for issue #23552
r? @QuietMisdreavus

6 years agoRollup merge of #43966 - GuillaumeGomez:remove-dup, r=QuietMisdreavus
Corey Farwell [Sat, 26 Aug 2017 13:46:32 +0000 (06:46 -0700)]
Rollup merge of #43966 - GuillaumeGomez:remove-dup, r=QuietMisdreavus

Remove duplicates in rustdoc

Fixes #43934.

Two things however:

 1. I'm not happy with the current check. It seems completely overkill and unsatisfying.
 2. I have no idea how to test if there is only one element and not two.

r? @rust-lang/docs

6 years agoRollup merge of #43776 - zackmdavis:feature_gate_fn_must_use, r=alexcrichton
Corey Farwell [Sat, 26 Aug 2017 13:46:31 +0000 (06:46 -0700)]
Rollup merge of #43776 - zackmdavis:feature_gate_fn_must_use, r=alexcrichton

feature-gate #[must_use] for functions as `fn_must_use`

@eddyb I [was](https://github.com/rust-lang/rust/pull/43728#issuecomment-320854120) [dithering](https://github.com/rust-lang/rust/pull/43728#issuecomment-320856407) on this, but [your comment](https://github.com/rust-lang/rust/issues/43302#issuecomment-321174989) makes it sound like we do want a feature gate for this? Please advise.

r? @eddyb

6 years agoAuto merge of #44081 - est31:master, r=eddyb
bors [Sat, 26 Aug 2017 12:50:11 +0000 (12:50 +0000)]
Auto merge of #44081 - est31:master, r=eddyb

Fix a byte/char confusion issue in the error emitter

Fixes #44078. Fixes #44023.

The start_col member is given in chars, while the code previously assumed it was given in bytes.

The more basic issue #44080 doesn't get fixed.

6 years agoAuto merge of #44071 - alexcrichton:no-cycles, r=nikomatsakis
bors [Sat, 26 Aug 2017 08:25:44 +0000 (08:25 +0000)]
Auto merge of #44071 - alexcrichton:no-cycles, r=nikomatsakis

rustc: Start moving toward "try_get is a bug" for incremental

This PR is an effort to burn down some of the work items on #42633. The basic change here was to leave the `try_get` function exposed but have it return a `DiagnosticBuilder` instead of a `CycleError`. This means that it should be a compiler bug to *not* handle the error as dropping a diagnostic should result in a complier panic.

After that change it was then necessary to update the compiler's callsites of `try_get` to handle the error coming out. These were handled as:

* The `sized_constraint` and `needs_drop_raw` checks take the diagnostic and defer it as a compiler bug. This was a new piece of functionality added to the error handling infrastructure, and the idea is that for both these checks a "real" compiler error should be emitted elsewhere, so it's only a bug if we don't actually emit the complier error elsewhere.
* MIR inlining was updated to just ignore the diagnostic. This is being tracked by https://github.com/rust-lang/rust/issues/43542 which sounded like it either already had some work underway or was planning to change regardless.
* The final case, `item_path`, is still sort of up for debate. At the time of this writing this PR simply removes the invocations of `try_get` there, assuming that the query will always succeed. This turns out to be true for the test suite anyway! It sounds like, though, that this logic was intended to assist in "weird" situations like `RUST_LOG` where debug implementations can trigger at any time. This PR would therefore, however, break those implementations.

I'm unfortunately sort of out of ideas on how to handle `item_path`, but other thoughts would be welcome!

Closes #42633

6 years agoAdd test for wrong code generation for HashSet creation on arm cpu
Evgeniy A. Dushistov [Sat, 26 Aug 2017 05:24:26 +0000 (08:24 +0300)]
Add test for wrong code generation for HashSet creation on arm cpu

This is test for #42918.
To reproduce bug you need machine with arm cpu and compile with optimization.
I tried with rustc 1.19.0-nightly (3d5b8c626 2017-06-09),
if compile test with -C opt-level=3 for target=arm-linux-androideabi
and run on "Qualcomm MSM 8974 arm cpu" then assert fails,
if compile and run with -C opt-level=2 it gives segmentation fault.
So I add `compile-flags: -O`.
With rustc 1.19.0 (0ade33941 2017-07-17) all works fine.
Closes #42918

6 years agoAuto merge of #44028 - nrc:rls-update, r=alexcrichton
bors [Sat, 26 Aug 2017 01:28:57 +0000 (01:28 +0000)]
Auto merge of #44028 - nrc:rls-update, r=alexcrichton

Update RLS and Cargo

r? @alexcrichton

6 years agoUpdate RLS and Cargo
Nick Cameron [Thu, 24 Aug 2017 05:52:28 +0000 (17:52 +1200)]
Update RLS and Cargo

6 years agorustc: Make `report_cycle` and `CycleError` private
Alex Crichton [Thu, 24 Aug 2017 22:13:55 +0000 (15:13 -0700)]
rustc: Make `report_cycle` and `CycleError` private

6 years agorustc: Skip cyclic checks in `item_path`
Alex Crichton [Thu, 24 Aug 2017 14:37:09 +0000 (07:37 -0700)]
rustc: Skip cyclic checks in `item_path`

This seems like it may be likely to cause bugs with `RUST_LOG` and other
"interesting" scenarios, but it removes the usage of `try_get` for now!

6 years agorustc: Add a FIXME for `try_get` in MIR inlining
Alex Crichton [Thu, 24 Aug 2017 14:00:44 +0000 (07:00 -0700)]
rustc: Add a FIXME for `try_get` in MIR inlining

It sounds like this is being handled elsewhere, so for now just preserve the
existing behavior of ignoring th error.

6 years agorustc: Fix two instances of `try_get`
Alex Crichton [Wed, 23 Aug 2017 19:54:36 +0000 (12:54 -0700)]
rustc: Fix two instances of `try_get`

The `sized_constraint` and `needs_drop_raw` queries both use `try_get` to detect
cycles, but in both of these cases the cycle indicates an error has happened
elsewhere in compilation. In these cases we can just delay the diagnostic to get
emitted as a bug later if we ended up forgetting to emit the error diagnostic.

6 years agorustc: Change the return of a query's `try_get`
Alex Crichton [Wed, 23 Aug 2017 19:53:29 +0000 (12:53 -0700)]
rustc: Change the return of a query's `try_get`

This alters the return value of the `try_get` function so the error contains a
diagnostic rather than a `CycleError`. This way consumers are forced to take
*some* action (else they get a bug to an un-emitted diagnostic). This action
could be to emit the error itself, or in some cases delay the diagnostic as a
bug and continue.

6 years agorustc_errors: Add the ability to delay as bugs
Alex Crichton [Wed, 23 Aug 2017 19:52:22 +0000 (12:52 -0700)]
rustc_errors: Add the ability to delay as bugs

This adds a function to `DiagnosticBuilder` to delay the entire diagnostic as a
bug to be emitted at a later time. This'll end up getting used in the compiler
in the subsequent commits...

6 years agoAuto merge of #43994 - tamird:remove-attributes, r=alexcrichton
bors [Fri, 25 Aug 2017 22:54:00 +0000 (22:54 +0000)]
Auto merge of #43994 - tamird:remove-attributes, r=alexcrichton

*: remove crate_{name,type} attributes

Fixes #41701.

r? @arielb1

6 years agohaiku/librustc_back: Remove incorrect no_integrated_as
Alexander von Gluck IV [Fri, 25 Aug 2017 22:12:20 +0000 (17:12 -0500)]
haiku/librustc_back: Remove incorrect no_integrated_as

* Makes rust bootstrap incorrectly search for xxx.s vs xxx.0.s
* Not needed or incorrect fix for another issue.

6 years agoAdd missing link in string doc
Guillaume Gomez [Fri, 25 Aug 2017 21:09:00 +0000 (23:09 +0200)]
Add missing link in string doc

6 years ago*: remove crate_{name,type} attributes
Tamir Duberstein [Sat, 19 Aug 2017 23:54:17 +0000 (16:54 -0700)]
*: remove crate_{name,type} attributes

Fixes #41701.

6 years agosyntax: clarify field name
Tamir Duberstein [Sun, 20 Aug 2017 15:40:07 +0000 (08:40 -0700)]
syntax: clarify field name

The value of this field is meant to indicate whether or not the
crate is rustc's libtest itself - not whether or not it is a test
crate generally.

6 years agoAuto merge of #44046 - alexcrichton:capture-diagnostics, r=michaelwoerister
bors [Fri, 25 Aug 2017 20:11:25 +0000 (20:11 +0000)]
Auto merge of #44046 - alexcrichton:capture-diagnostics, r=michaelwoerister

rustc: Capture diagnostics from all queries

This commit alters the `rustc::ty::maps` implementation to ensure that all
output diagnostics from the compiler are tracked for the duration of each query.
These are then intended to be replayed back the first time a cached value is
loaded, and otherwise the cache should operate the same as it does today.

Closes #42513

6 years agosyntax: remove unused field
Tamir Duberstein [Sun, 20 Aug 2017 15:22:46 +0000 (08:22 -0700)]
syntax: remove unused field

6 years agoFix a byte/char confusion issue in the error emitter
est31 [Fri, 25 Aug 2017 10:25:22 +0000 (12:25 +0200)]
Fix a byte/char confusion issue in the error emitter

Fixes #44078. Fixes #44023.

The start_col member is given in chars,
while the code previously assumed it was given in bytes.

The more basic issue #44080 doesn't get fixed.

6 years agoClean up YieldFinder
John Kåre Alsaker [Fri, 25 Aug 2017 18:10:23 +0000 (20:10 +0200)]
Clean up YieldFinder

6 years agoAllow htmldocck to run using Python 3.
kennytm [Fri, 25 Aug 2017 15:27:42 +0000 (23:27 +0800)]
Allow htmldocck to run using Python 3.

6 years agoAuto merge of #44053 - alexcrichton:no-choco, r=Mark-Simulacrum
bors [Fri, 25 Aug 2017 17:26:15 +0000 (17:26 +0000)]
Auto merge of #44053 - alexcrichton:no-choco, r=Mark-Simulacrum

appveyor: Use InnoSetup from our mirror

Chocolatey has been pretty flaky, so let's not rely on it.

Closes #43985

6 years agoAdd some comments and fix a typo
John Kåre Alsaker [Thu, 24 Aug 2017 22:57:08 +0000 (00:57 +0200)]
Add some comments and fix a typo

6 years agorustbuild: Automatically enable Ninja on MSVC
Alex Crichton [Fri, 25 Aug 2017 17:10:27 +0000 (10:10 -0700)]
rustbuild: Automatically enable Ninja on MSVC

Discovered in #43767 it turns out the default MSBuild generator in CMake for
whatever reason isn't supporting many of the configuration options we give to
LLVM. To improve the contributor experience automatically enable Ninja if we
find it to ensure that "flavorful" configurations of LLVM work by default in
more situations.

Closes #43767

6 years agoComment about generators and drops
Alex Crichton [Fri, 25 Aug 2017 14:41:30 +0000 (07:41 -0700)]
Comment about generators and drops

6 years agoAdd some suggested comments around drops
Alex Crichton [Fri, 25 Aug 2017 14:38:57 +0000 (07:38 -0700)]
Add some suggested comments around drops

6 years agoRegression test.
Felix S. Klock II [Fri, 25 Aug 2017 14:35:42 +0000 (16:35 +0200)]
Regression test.

6 years agoRemove unneeded FIXME for now
Alex Crichton [Fri, 25 Aug 2017 14:31:05 +0000 (07:31 -0700)]
Remove unneeded FIXME for now

6 years agoAdd a `self_arg` convenience
Alex Crichton [Fri, 25 Aug 2017 14:19:40 +0000 (07:19 -0700)]
Add a `self_arg` convenience

6 years agoFix merge conflict
Alex Crichton [Fri, 25 Aug 2017 14:18:19 +0000 (07:18 -0700)]
Fix merge conflict

6 years agoReorder slightly in `visit_basic_block_data`
Alex Crichton [Fri, 25 Aug 2017 14:17:37 +0000 (07:17 -0700)]
Reorder slightly in `visit_basic_block_data`

6 years agoFix indentation
Alex Crichton [Fri, 25 Aug 2017 14:16:24 +0000 (07:16 -0700)]
Fix indentation

6 years agoMerge remote-tracking branch 'origin/master' into gen
Alex Crichton [Fri, 25 Aug 2017 14:15:12 +0000 (07:15 -0700)]
Merge remote-tracking branch 'origin/master' into gen

6 years agoFix #43457 (and avoid some unneeded lookups to boot, woo).
Felix S. Klock II [Fri, 25 Aug 2017 14:08:03 +0000 (16:08 +0200)]
Fix #43457 (and avoid some unneeded lookups to boot, woo).

6 years agoAuto merge of #43700 - gaurikholkar:struct_lifetimes, r=nikomatsakis
bors [Fri, 25 Aug 2017 12:59:04 +0000 (12:59 +0000)]
Auto merge of #43700 - gaurikholkar:struct_lifetimes, r=nikomatsakis

Adding E0623 for structs

This is a fix to #43275

The error message is
```
+error[E0623]: lifetime mismatch
+  --> $DIR/ex3-both-anon-regions-both-are-structs.rs:15:12
+   |
+14 | fn foo(mut x: Vec<Ref>, y: Ref) {
+   |                   ---      --- these structs are declared with different lifetimes...
+15 |     x.push(y);
+   |            ^ ...but data from `y` flows into `x` here
+
+error: aborting due to previous error
```

r? @nikomatsakis

6 years agoAuto merge of #44031 - scottmcm:swap_with_slice, r=alexcrichton
bors [Fri, 25 Aug 2017 10:20:15 +0000 (10:20 +0000)]
Auto merge of #44031 - scottmcm:swap_with_slice, r=alexcrichton

Add [T]::swap_with_slice

The safe version of a method from `ptr`, like `[T]::copy_from_slice` is.

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

6 years agoAuto merge of #44012 - michaelwoerister:cache-hir-dep-node-index, r=nikomatsakis
bors [Fri, 25 Aug 2017 06:40:10 +0000 (06:40 +0000)]
Auto merge of #44012 - michaelwoerister:cache-hir-dep-node-index, r=nikomatsakis

incr.comp.: Cache Hir-DepNodeIndices in the HIR map.

In preparation for red/green. This should also be faster than before without any additional memory cost.

r? @nikomatsakis

6 years agoAuto merge of #43786 - scalexm:issue-43784, r=nikomatsakis
bors [Fri, 25 Aug 2017 02:43:20 +0000 (02:43 +0000)]
Auto merge of #43786 - scalexm:issue-43784, r=nikomatsakis

Elaborate trait obligations when typechecking impls

When typechecking trait impl declarations, we only checked that bounds explictly written on the trait declaration hold.

We now also check that bounds which would have been implied by the trait reference do hold.

Fixes #43784.

6 years agoChange to `Elaborate::None` inside `compute_projection`
scalexm [Fri, 25 Aug 2017 01:57:44 +0000 (03:57 +0200)]
Change to `Elaborate::None` inside `compute_projection`

6 years agoAuto merge of #44070 - smaeul:musl-libunwind, r=alexcrichton
bors [Fri, 25 Aug 2017 00:04:06 +0000 (00:04 +0000)]
Auto merge of #44070 - smaeul:musl-libunwind, r=alexcrichton

Do not assume libunwind.a is available on musl

Fixes #40113, #44069, and clux/muslrust#16.

libunwind.a is not copied from musl_root, so it must be integrated into the unwind crate.

6 years agorustc: Capture diagnostics from all queries
Alex Crichton [Sat, 12 Aug 2017 22:37:28 +0000 (15:37 -0700)]
rustc: Capture diagnostics from all queries

This commit alters the `rustc::ty::maps` implementation to ensure that all
output diagnostics from the compiler are tracked for the duration of each query.
These are then intended to be replayed back the first time a cached value is
loaded, and otherwise the cache should operate the same as it does today.

Closes #42513

6 years agoAuto merge of #44051 - eddyb:apfloat-faster-div, r=nagisa
bors [Thu, 24 Aug 2017 21:18:16 +0000 (21:18 +0000)]
Auto merge of #44051 - eddyb:apfloat-faster-div, r=nagisa

Speed up APFloat division by using short division for small divisors.

Fixes #43828 (hopefully), by not doing long division bit-by-bit for small divisors.

When parsing the ~200,000 decimal float literals in the `tuple-stress` benchmark, this change brings roughly a 5x speed increase (from `0.6s` to `0.12s`), and the hottest instructions are native `div`s.

6 years agoTouch up a comment on `LocalDecl::internal`
Alex Crichton [Thu, 24 Aug 2017 18:42:32 +0000 (11:42 -0700)]
Touch up a comment on `LocalDecl::internal`

6 years agoAvoid looking at `closure_kinds` for generators
Alex Crichton [Thu, 24 Aug 2017 18:40:06 +0000 (11:40 -0700)]
Avoid looking at `closure_kinds` for generators

6 years agoFix inconsistent doc headings
lukaramu [Thu, 24 Aug 2017 15:33:36 +0000 (17:33 +0200)]
Fix inconsistent doc headings

This fixes headings reading "Unsafety" and "Example", they should be
"Safety" and "Examples" according to RFC 1574.

6 years agoDo not assume libunwind.a is available
Samuel Holland [Thu, 24 Aug 2017 13:37:06 +0000 (08:37 -0500)]
Do not assume libunwind.a is available

6 years agoAuto merge of #43345 - matthewhammer:master, r=nikomatsakis
bors [Thu, 24 Aug 2017 16:04:50 +0000 (16:04 +0000)]
Auto merge of #43345 - matthewhammer:master, r=nikomatsakis

Profile queries

This PR implements the "profile queries" debugging feature described here:
https://github.com/rust-lang-nursery/rust-forge/blob/master/profile-queries.md

In particular, it implements the debugging flag `-Z profile-queries`

FYI: This PR is my second attempt at pushing these changes.  My original PR required a rebase; I have now done that rebase manually, after messing up with git's "interactive" rebase support.  The original (now closed/cancelled) PR is this one: https://github.com/rust-lang/rust/issues/43156

r? @nikomatsakis

6 years agoAuto merge of #44011 - TobiasSchaffner:improved_target_spec_clean, r=alexcrichton
bors [Thu, 24 Aug 2017 12:43:13 +0000 (12:43 +0000)]
Auto merge of #44011 - TobiasSchaffner:improved_target_spec_clean, r=alexcrichton

L4Re Target: Add the needed Libraries and locate them

Add the libraries and objects that have to be linked to a get working L4Re Binary using pre- and post-link-args. Additionaly some ld commands had to be passed.

* L4Re libraries and objects will be located by an environment variable.
* gcc libraries and objects will be located using a gcc call.

GCC is mandatory for this target, that might need documentation somewhere. As soon as something mandatory cannot be found, the compiler will panic. This is intended, because the functions involved don't allow the usage of a Result type. libgcc_eh is now passed using `-l` and crtbeginT.o and crtend.o are now located using `gcc -print-filename`.

6 years agoAuto merge of #43907 - euclio:command, r=alexcrichton
bors [Thu, 24 Aug 2017 10:02:18 +0000 (10:02 +0000)]
Auto merge of #43907 - euclio:command, r=alexcrichton

Use std::process::Command throughout compile-test

Resubmission of #43798.

Fixes #43762.

r? @alexcrichton

6 years agoAdd duplicate test
Guillaume Gomez [Wed, 23 Aug 2017 20:47:17 +0000 (22:47 +0200)]
Add duplicate test

6 years agoRemove duplicates in rustdoc
Guillaume Gomez [Thu, 17 Aug 2017 22:08:12 +0000 (00:08 +0200)]
Remove duplicates in rustdoc

6 years agoAuto merge of #43532 - petrochenkov:pgargs, r=nikomatsakis
bors [Thu, 24 Aug 2017 03:48:25 +0000 (03:48 +0000)]
Auto merge of #43532 - petrochenkov:pgargs, r=nikomatsakis

Desugar parenthesized generic arguments in HIR

Fixes ICE in https://github.com/rust-lang/rust/issues/43431 and maybe some other similar issues.

r? @eddyb

6 years agoAuto merge of #42565 - murarth:rc-from-slice, r=aturon
bors [Wed, 23 Aug 2017 23:20:32 +0000 (23:20 +0000)]
Auto merge of #42565 - murarth:rc-from-slice, r=aturon

Implement From<&[T]> and others for Arc/Rc (RFC 1845)

* Implements `From<`{`&[T]`, `&str`, `String`, `Box<T> where T: ?Sized`, `Vec<T>`}`>` for `Arc`/`Rc`
* Removes `rustc_private`-marked methods `Rc::__from_array` and `Rc::__from_str`, replacing their use with `Rc::from`

Tracking issue: #40475

6 years agoadd a comment
Niko Matsakis [Wed, 23 Aug 2017 22:56:19 +0000 (18:56 -0400)]
add a comment

6 years agocapture `adb shell` stdout
Andy Russell [Tue, 22 Aug 2017 15:14:43 +0000 (10:14 -0500)]
capture `adb shell` stdout

6 years ago-Z profile-query-and-key, separate from -Z profile-query; query key is string option
Matthew Hammer [Wed, 2 Aug 2017 18:58:23 +0000 (12:58 -0600)]
-Z profile-query-and-key, separate from -Z profile-query; query key is string option

6 years agobuild fixes
gaurikholkar [Wed, 23 Aug 2017 21:04:05 +0000 (02:34 +0530)]
build fixes

6 years agoadding macro, cleaning up code
gaurikholkar [Wed, 23 Aug 2017 19:48:20 +0000 (01:18 +0530)]
adding macro, cleaning up code

6 years ago-Z profile-queries includes dep_graph.with_task uses in output
Matthew Hammer [Sun, 23 Jul 2017 16:02:07 +0000 (10:02 -0600)]
-Z profile-queries includes dep_graph.with_task uses in output

6 years ago-Z profile-queries: remove panic when channel is unset
Matthew Hammer [Fri, 21 Jul 2017 22:14:34 +0000 (16:14 -0600)]
-Z profile-queries: remove panic when channel is unset

6 years agoprofiling with -Z profile-queries recognizes -Z time-passes
Matthew Hammer [Fri, 21 Jul 2017 18:32:38 +0000 (12:32 -0600)]
profiling with -Z profile-queries recognizes -Z time-passes

6 years agoinc comp: -Z profile-queries support; see also https://github.com/rust-lang-nursery...
Matthew Hammer [Wed, 19 Jul 2017 21:04:30 +0000 (15:04 -0600)]
inc comp: -Z profile-queries support; see also https://github.com/rust-lang-nursery/rust-forge/blob/master/profile-queries.md

6 years agominor fix
gaurikholkar [Wed, 23 Aug 2017 14:13:05 +0000 (19:43 +0530)]
minor fix

6 years agoAuto merge of #44058 - frewsxcv:rollup, r=frewsxcv
bors [Wed, 23 Aug 2017 13:46:14 +0000 (13:46 +0000)]
Auto merge of #44058 - frewsxcv:rollup, r=frewsxcv

Rollup of 8 pull requests

- Successful merges: #43631, #43977, #43983, #44016, #44039, #44043, #44047, #44054
- Failed merges:

6 years agocode review fixes
gaurikholkar [Wed, 23 Aug 2017 13:10:28 +0000 (18:40 +0530)]
code review fixes

6 years agoFixes issue #43205: ICE in Rvalue::Len evaluation.
Alexey Tarasov [Sun, 20 Aug 2017 11:35:00 +0000 (21:35 +1000)]
Fixes issue #43205: ICE in Rvalue::Len evaluation.

- fixes evaluation of array length for zero-sized type referenced by
  rvalue operand.
- adds test to verify fix.

Cause of the issue.

Zero-sized aggregates are handled as operands, not lvalues. Therefore while
visiting Assign statement by LocalAnalyser, mark_as_lvalue() is not called for
related Local. This behaviour is controlled by rvalue_creates_operand() method.
As result it causes error later, when rvalue operand is evaluated in
trans_rvalue_operand() while handling Rvalue::Len case. Array length evaluation
invokes trans_lvalue() which expects referenced Local to be value, not operand.

How it is fixed.

In certain cases result of Rvalue::Len can be evaluated without calling
trans_lvalue(). Method evaluate_array_len() is introduced to handle length
evaluation for zero-sized types referenced by Locals.

6 years agoRollup merge of #44054 - frewsxcv:frewsxcv-libstd-thread-unwrap-or-else, r=sfackler
Corey Farwell [Wed, 23 Aug 2017 12:44:30 +0000 (08:44 -0400)]
Rollup merge of #44054 - frewsxcv:frewsxcv-libstd-thread-unwrap-or-else, r=sfackler

Thread spawning: don't run `min_stack` if the user has specified stack size.

None

6 years agoRollup merge of #44047 - cuviper:union-basic-endian, r=petrochenkov
Corey Farwell [Wed, 23 Aug 2017 12:44:29 +0000 (08:44 -0400)]
Rollup merge of #44047 - cuviper:union-basic-endian, r=petrochenkov

Fix little-endian assumptions in run-pass/union/union-basic

None

6 years agoRollup merge of #44043 - mattico:patch-1, r=alexcrichton
Corey Farwell [Wed, 23 Aug 2017 12:44:28 +0000 (08:44 -0400)]
Rollup merge of #44043 - mattico:patch-1, r=alexcrichton

Clarify windows build instructions in README

The old wording made me think you were supposed to do `python x.py --build=msvc`, which is not the case. Specify that you need to use the target triple.

6 years agoRollup merge of #44039 - remexre:master, r=steveklabnik
Corey Farwell [Wed, 23 Aug 2017 12:44:27 +0000 (08:44 -0400)]
Rollup merge of #44039 - remexre:master, r=steveklabnik

Mention null_mut on the pointer primitive docs.

Also adds a few mentions that both `*const` and `*mut` support functions, when only `*const` was mentioned before.