Commit graph

69082 commits

Author SHA1 Message Date
Niko Matsakis
68c4844a1b make nll separately invokable 2017-10-31 12:41:39 -04:00
Santiago Pastorino
dde61f3855 add basic region subtyping inference 2017-10-31 12:41:39 -04:00
Santiago Pastorino
b8615f3bea add reborrow constraints 2017-10-31 12:41:39 -04:00
Niko Matsakis
f700728a3b make end-point optional in the borrow check 2017-10-31 12:41:39 -04:00
Niko Matsakis
5b2adcce11 factor out NLL invocation interface 2017-10-31 12:41:39 -04:00
Niko Matsakis
7414060344 update the format of liveness debug dumps to be more readable 2017-10-31 12:41:39 -04:00
Niko Matsakis
24442ffa66 add subregion between borrow region and resulting reference 2017-10-31 12:41:39 -04:00
Niko Matsakis
af09f720d6 preliminary support for may-dangle attribute and drop constraints 2017-10-31 12:41:38 -04:00
Niko Matsakis
e02937848b extend liveness to distinguish "drop" and "non-drop" uses 2017-10-31 12:41:38 -04:00
Niko Matsakis
cb56ff5a77 reorder liveness to bring the more significant code up top 2017-10-31 12:41:38 -04:00
Niko Matsakis
899c7ad9b2 avoid unnecessary copies in liveness computation 2017-10-31 12:41:38 -04:00
Niko Matsakis
7523c7368c introduce liveness constraints into NLL code
And do a bunch of gratuitious refactoring that I did not bother to
separate into nice commits.
2017-10-31 12:41:38 -04:00
Niko Matsakis
8535a4a32c add helper for_each_free_region that iterates over free regions 2017-10-31 12:41:38 -04:00
Niko Matsakis
1f06ba486f extend liveness to compute intrablock liveness and add unit tests 2017-10-31 12:41:38 -04:00
Niko Matsakis
ea03a43fe6 introduce apply helper that applies a DefUse set to live bits 2017-10-31 12:41:38 -04:00
Niko Matsakis
bd2511652f extend dump_mir to work for any tcx, not just global tcx 2017-10-31 12:41:37 -04:00
Niko Matsakis
16b5f244fb rename BlockInfo and BlockInfoVisitor to DefsUses 2017-10-31 12:41:37 -04:00
Niko Matsakis
9a47fd2dac factor out pre_defs field by going backwards 2017-10-31 12:41:37 -04:00
Niko Matsakis
acc5c4345c add a test for the subtle case around calls 2017-10-31 12:41:37 -04:00
Niko Matsakis
c42a64518a execute liveness, write a simple test 2017-10-31 12:41:37 -04:00
bors
6713736275 Auto merge of #45551 - michaelwoerister:fix-hir-depnodes-and-ich, r=nikomatsakis
incr.comp.: Fix two problems with HIR hashing.

Fixes https://github.com/rust-lang/rust/issues/45469.

This PR fixes two small problems:
* Overflow checks are always enabled in a constant context, so we need to hash spans of potentially overflowing operations. (Eventually I'd like to handle spans differently so we don't have to make HIR hashing know so much about things like this.)
* The HIR map collector had a bug where it would assign the `DepNode::Hir` instead of the corresponding `DepNode::HirBody` in some nested contexts.

r? @nikomatsakis
2017-10-31 05:03:25 +00:00
bors
f57c55d54d Auto merge of #45550 - kennytm:update-xsv, r=BurntSushi
cargotest: Update xsv.

This fixes a flaky test which caused spurious failures in #45348 and #45380.
2017-10-31 00:53:12 +00:00
bors
2d3b96691e Auto merge of #45497 - mikhail-m1:dump-mir-graphviz, r=nikomatsakis
add graphvis DOT files to dump mir directory

r? @nikomatsakis
2017-10-30 21:22:40 +00:00
Niko Matsakis
b2c2ba4eb5
tweak the description
"in addition to" sounds better than "additionally to"
2017-10-30 10:22:35 -04:00
bors
f0fe716dbc Auto merge of #45626 - wesleywiser:doc_update_1, r=Mark-Simulacrum
Add link to stablized version of an intrinsic
2017-10-30 08:52:40 +00:00
bors
86d1178320 Auto merge of #45603 - joshleeb:iss42106, r=estebank
Fix duplicate display of error E0502

Ref. Repeated "mutable/immutable borrow" error messages #42106.

This PR modifies the return type of [`report_error_if_loan_conflicts_with_restriction`](0f0f5db465/src/librustc_borrowck/borrowck/check_loans.rs (L398-L403)) so the result can be checked in [`report_error_if_loans_conflict`](0f0f5db465/src/librustc_borrowck/borrowck/check_loans.rs (L377-L396)). This is done to prevent displaying a duplicate of the error message E0502 which is referenced in #42106.

The output of compiling:

```rust
fn do_something<T>(collection: &mut Vec<T>) {
    let _a = &collection;
    collection.swap(1, 2);
}

fn main() {}
```

is now

```bash
$ rustc src/test/compile-fail/issue-42106.rs
error[E0502]: cannot borrow `*collection` as mutable because `collection` is also borrowed as immutable
  --> src/test/compile-fail/issue-42106.rs:13:5
   |
12 |     let _a = &collection;
   |               ---------- immutable borrow occurs here
13 |     collection.swap(1, 2);
   |     ^^^^^^^^^^ mutable borrow occurs here
14 | }
   | - immutable borrow ends here

error: aborting due to 2 previous errors
```

r? @estebank
2017-10-30 06:17:39 +00:00
Wesley Wiser
9ca825e292 Add link to stablized version of an intrinsic 2017-10-29 22:53:07 -04:00
bors
875ec8d597 Auto merge of #45618 - kennytm:update-cargo, r=alexcrichton
Update cargo.

Brings in rust-lang/cargo#4672, unbreaks nightly on macOS APFS.

Fixes #45607.

r? @alexcrichton
2017-10-30 02:33:52 +00:00
Josh Leeb-du Toit
cf10bcfe48 Move issue-42106 test from compile-fail to ui 2017-10-30 11:28:44 +11:00
bors
dae6868637 Auto merge of #45424 - petrochenkov:grlint, r=oli-obk
Add several lints into `unused` lint group

Also a couple of obsolete (not reported) lints are removed.

r? @oli-obk
2017-10-29 23:59:07 +00:00
Josh Leeb-du Toit
37f2382435 Refactor if block to use idiomatic matches 2017-10-30 09:58:09 +11:00
bors
90ef3372e8 Auto merge of #45597 - DSpeckhals:rustfmt-update, r=nrc
tools: Update rustfmt and re-enable testing

This allows rustfmt and the RLS to test and compile again.
2017-10-29 21:25:12 +00:00
Josh Leeb-du Toit
014e61094a Refactor matches to use Result::err 2017-10-30 08:21:56 +11:00
Dustin Speckhals
e3bf19d8d4 Update rustfmt again 2017-10-29 15:16:02 -04:00
Vadim Petrochenkov
bf0cdb52f2 Add several lints into unused lint group
Remove a couple of obsolete lints
2017-10-29 22:14:23 +03:00
bors
2d3afa6833 Auto merge of #45616 - fhartwig:ptr-docs, r=dtolnay
Fix references to zero_memory and copy_memory in ptr docs

Fixes #45606
2017-10-29 18:44:16 +00:00
kennytm
30828c58e7
Update cargo.
Brings in rust-lang/cargo#4672, unbreaks nightly on macOS APFS.
2017-10-30 01:32:08 +08:00
Dustin Speckhals
d284815f72 Merge branch 'master' into rustfmt-update 2017-10-29 13:27:06 -04:00
bors
690ff04594 Auto merge of #45611 - Manishearth:lint-generics, r=petrochenkov
Add generics to LateContext

Fixes clippy breakage from https://github.com/rust-lang/rust/pull/44766 as discussed in https://github.com/rust-lang-nursery/rust-clippy/pull/2140#issuecomment-336973875

r? @nikomatsakis
2017-10-29 15:22:38 +00:00
Florian Hartwig
9e966ad3dc Fix references to zero_memory and copy_memory in ptr docs 2017-10-29 15:40:09 +01:00
Manish Goregaokar
84f1fc951d
Update clippy 2017-10-29 05:27:36 -04:00
bors
7d475a28df Auto merge of #45295 - Technius:docs/process, r=steveklabnik
Improve std::process module docs

Addresses part of #29370

I've changed the first `cat` example to a "Hello World" example involving echo, and I've also added another example showing how to pipe output. I'm still working on the module-level description.

For now, I'd like feedback on the examples.

r? @steveklabnik
2017-10-29 06:24:20 +00:00
Bryan Tan
84ab6aec43 Add no_run to process examples involving unix commands 2017-10-28 20:27:05 -07:00
bors
1fdcf52df4 Auto merge of #45554 - integer32llc:update-book, r=steveklabnik
Update the book for a fix to the print button

Fixes #45552.

Brings in recent improvements in the text that we've made recently as well.

r? @steveklabnik
2017-10-29 02:16:24 +00:00
Josh Leeb-du Toit
975ff7b7a0 Add test for fix duplicate display of E0502 2017-10-29 12:14:14 +11:00
Josh Leeb-du Toit
5086657b42 Fix duplicate display of error E0502 2017-10-29 12:14:13 +11:00
Carol (Nichols || Goulding)
c285a4e8f7 Update the book for a fix to the print button
Fixes #45552.
2017-10-28 20:44:38 -04:00
bors
49edcbd32a Auto merge of #45580 - kennytm:sdkmanager, r=alexcrichton
ci: Upgrade Android SDK/NDK and refactor to use sdkmanager/avdmanager.

* SDK tools is upgraded to 27.0.0.

* Stopped using the deprecated `android` tool, instead use the recommended `sdkmanager` and `avdmanager`.

* NDK is upgrade to r15c.

    The r15 series [dropped support for android-9](https://github.com/android-ndk/ndk/wiki/Changelog-r15) (2.3 / Gingerbread), the minimal supported version is now android-14 (4.0 / Ice Cream Sandwich).

r? @alexcrichton

(WIP, haven't confirmed if the change really works yet)
2017-10-28 23:40:31 +00:00
kennytm
c46b04cbdd
ci: Upgrade Android SDK/NDK and refactor to use sdkmanager/avdmanager.
* SDK tools is upgraded to 27.0.0.
   - Refactored to use `sdkmanager`/`avdmanager` instead of the deprecated
     `android` tool.

* The Java version used by Android SDK is downgraded to OpenJDK-8, in order
  to download the SDK through HTTPS.

* NDK is upgrade to r15c.
   - Dropped support for android-9 (2.3 / Gingerbread), the minimal
     supported version is now android-14 (4.0 / Ice Cream Sandwich).
   - Changed the default Android compiler from GCC to clang.
   - For details of change introduced by NDK r15, see
     https://github.com/android-ndk/ndk/wiki/Changelog-r15.
2017-10-29 05:58:00 +08:00
Manish Goregaokar
b2df63b393 Add generics field to LateContext 2017-10-28 17:28:14 -04:00