Commit Graph

68637 Commits

Author SHA1 Message Date
gnzlbg
d16c140b7c [jemalloc] set correct excess in realloc_excess 2017-10-25 14:18:20 +02:00
bors
6c0d50f9fa Auto merge of #45224 - malbarbo:x32, r=alexcrichton
Add x86_64-unknown-linux-gnux32 target

This adds X32 ABI support for Linux on X86_64. Let's package and dist it so we can star testing libc, libstd, etc.

Fixes https://github.com/rust-lang/rfcs/issues/1339
2017-10-15 06:12:13 +00:00
bors
f5eb33f4e5 Auto merge of #45200 - mikhail-m1:match-with-false-edges, r=nikomatsakis
MIR-borrowck: add false edges to match arms

basic fix for https://github.com/rust-lang/rust/issues/45043, should be modified with #45184
2017-10-15 02:20:13 +00:00
bors
a457e29811 Auto merge of #44867 - kennytm:rustdoc-md-test-title, r=alexcrichton
doc-test: In Markdown tests, Use all of `<h1>` to `<h6>` as the test name

This mainly simplifies debugging error index tests, as the error codes are `<h2>`s in the huge document containing all codes.
2017-10-14 23:07:35 +00:00
bors
7778906bee Auto merge of #45177 - oli-obk:clippy, r=alexcrichton
Enable building clippy in CI

r? @alexcrichton

As discussed at Rustfest. Measured additional time is 4 minutes on my machine if no dependencies are shared with other tools. In reality most dependencies are shared (especially the slow to compile ones like serde).

cc @Manishearth

Does not run clippy's test suite, since

a) it is nontrivial in the rustc build system
b) it breaks more frequently but the breakage is negligible

If clippy breaks, the procedure to follow is documented under https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#external-dependencies
2017-10-14 18:48:08 +00:00
bors
7920a7cc74 Auto merge of #45175 - petrochenkov:dyn, r=nikomatsakis
Implement `dyn Trait` syntax (RFC 2113)

cc https://github.com/rust-lang/rust/issues/44662
r? @nikomatsakis
2017-10-14 16:11:05 +00:00
bors
9c5e9a500d Auto merge of #45167 - pnkfelix:migrate-remaining-ast-diagnostics, r=arielb1
MIR-borrowck: Migrate remaining ast diagnostics

This PR migrates all of the remaining diagnostics in `rustc_borrowck` over to `rustc_mir`, exposing them for use by both AST-borrowck and MIR-borrowck.

This should hopefully resolve all remaining cases of diagnostic messages emitted from borrowck under `-Z borrowck-mir` without an origin annotation.
2017-10-14 13:47:44 +00:00
bors
af7de7b677 Auto merge of #45162 - chrisvittal:mir-testing, r=nikomatsakis
Modify MIR testing to require consecutive lines

MIR testing now requires that lines be consecutive. To achive this,
instead of collecting the expected mir as a string, it is now wrapped in
an `ExpectedLine` enum, that is either `Elision` or `Text(T)` where `T:
AsRef<str>`. `Text` lines must be matched in order, unless separated by
`Elision` lines. Elision occurs lazily, that is, an Elision will skip
as few lines as possible.

To add a new elision marker. Put a comment containing only "..." and
whitespace in any MIR testing block. Like so:

```
// fn write_42(_1: *mut i32) -> bool {
//     ...
//     bb0: {
//         Validate(Acquire, [_1: *mut i32]);
//         Validate(Release, [_1: *mut i32]);
//         ...
//         return;
//     }
// }
```

Right now, all input before the line right after `// START` is elided,
and all input after the line right before `// END` is also not tested.

Many tests need to be updated. That will follow in the next commit.

cc #45153
r? @nikomatsakis
2017-10-14 11:22:46 +00:00
Vadim Petrochenkov
9d373204a5 Update rustfmt submodule 2017-10-14 12:53:44 +03:00
Vadim Petrochenkov
e6115af4bd Implement dyn Trait syntax 2017-10-14 12:51:13 +03:00
bors
2d75213709 Auto merge of #45155 - Nashenas88:nll-infer, r=nikomatsakis
NLL infer

r? @nikomatsakis
2017-10-14 08:53:07 +00:00
bors
3037965b5b Auto merge of #45137 - theotherjimmy:vtable-methods-query, r=nikomatsakis
Queryify Vtable methods

This query might come with a downside: It converts an iterator to a Vec, which may increase the working set of rustc on programs that use many many traits (I think that's where this is used).
2017-10-14 06:34:20 +00:00
bors
2aeff0f1b3 Auto merge of #45104 - vitiral:incr_auto_assert2, r=michaelwoerister
Incremental compilation auto assert (with except)

cc @michaelwoerister

bors merged part 1, so this is a WIP of part 2 of #45009  -- auto asserting DepNodes depending on the type of node rustc_clean/dirty is attached to

Framework:
- [x] finish auto-detection for specified DepNodes
- [x] finish auto-detection for remaining DepNodes

Test Refactors:
- [x] consts.rs
- [x] enum_constructors.rs
- [x] extern_mods.rs
- [x] inherent_impls.rs
- [x] statics.rs
- [x] struct_constructors.rs
- ~~**BLOCKED** trait_defs.rs, see FIXME~~
- ~~**BLOCKED** trait_impls.rs~~
- [x] type_defs.rs
- [x] enum_defs.rs
2017-10-14 04:11:49 +00:00
bors
83922feec3 Auto merge of #45102 - petrochenkov:noar, r=alexcrichton
cleanup: rustc doesn't use an external archiver

cc https://github.com/rust-lang/rust/pull/45090
r? @alexcrichton
2017-10-14 01:43:42 +00:00
bors
02a24dbdd8 Auto merge of #45069 - sinkuu:tuple_arg, r=nikomatsakis
Better error for missing tuple pattern in args

#44150

Before:
```
error[E0593]: closure takes 2 arguments but 1 argument is required
 --> test.rs:5:40
  |
5 |     let it = v.into_iter().enumerate().map(|i, x| i);
  |                                        ^^^ -------- takes 2 arguments
  |                                        |
  |                                        expected closure that takes 1 argument
```

After:
```
error[E0593]: closure takes 2 arguments but a 2-tuple is required
 --> test.rs:5:40
  |
5 |     let it = v.into_iter().enumerate().map(|i, x| i);
  |                                        ^^^ ------ takes 2 arguments
  |                                        |
  |                                        expected closure that takes a 2-tuple
```
2017-10-13 20:14:38 +00:00
bors
6cb49d2a3e Auto merge of #45261 - kennytm:rollup, r=kennytm
Rollup of 14 pull requests

- Successful merges: #44855, #45110, #45122, #45133, #45173, #45178, #45189, #45203, #45209, #45221, #45236, #45240, #45245, #45253
- Failed merges:
2017-10-13 17:42:25 +00:00
Garrett Berg
80c13ce134 fix review comments 2017-10-13 10:15:03 -06:00
kennytm
8ea6790293 Rollup merge of #45253 - Gankro:drop_docs, r=kennytm
Clarify how needs_drop is conservative
2017-10-13 23:38:05 +08:00
kennytm
fb98e3e434 Rollup merge of #45245 - stjepang:more-padding-between-impls, r=QuietMisdreavus
Rustdoc: Increase padding between consecutive impls

Currently, [implementors](https://doc.rust-lang.org/nightly/std/iter/trait.IntoIterator.html#implementors) list is a bit too condensed. More spacing makes the list easier to read.
Check out [this comment](https://github.com/rust-lang/rust/issues/41879#issuecomment-333121118) to see what's the effect of this change.

Closes #41879.

cc @QuietMisdreavus
2017-10-13 23:38:04 +08:00
kennytm
f43c54e1e3 Rollup merge of #45240 - GuillaumeGomez:mobile-sidebar-improvements, r=QuietMisdreavus
Mobile sidebar improvements

Very small changes, I just made the width of the sidebar of 100% and centered vertically both items a bit more:

<img width="1440" alt="screen shot 2017-10-12 at 20 00 47" src="https://user-images.githubusercontent.com/3050060/31511496-302bb474-af88-11e7-8dab-2c88799eafcc.png">

r? @rust-lang/docs
2017-10-13 23:38:03 +08:00
kennytm
4ed348efe1 Rollup merge of #45236 - alexcrichton:build-less, r=Mark-Simulacrum
rustbuild: Prevent spurious rebuilds of the RLS

The RLS currently is rebuilt every time you test it because the `OPENSSL_DIR`
env var is changing, which is in turn caused by an accidental omission of
`prepare_tool_cargo` when testing the RLS.
2017-10-13 23:38:02 +08:00
kennytm
2a6a4e7045 Rollup merge of #45221 - estebank:issue-41790, r=nikomatsakis
Point at immutable outer variable

When attempting to mutate an immutable outer variable from a closure,
point at the outer variable and suggest making it mutable.

Fix #41790.
2017-10-13 23:38:01 +08:00
kennytm
9b128e4065 Rollup merge of #45209 - kennytm:treat-checksum-error-as-download-error, r=Mark-Simulacrum
rustbuild: Make openssl download more reliable.

1. Add `-f` flag to curl, so when the server returns 403 or 500 it will fail immediately.
2. Moved the checksum part into the retry loop, assuming checksum failure is due to broken download that can be fixed by downloading again.

This PR is created responding to two recent spurious failures in https://github.com/rust-lang/rust/pull/45075#issuecomment-335202319 and https://github.com/rust-lang/rust/pull/45030#issuecomment-335029356.

r? @Mark-Simulacrum , cc @aidanhs
2017-10-13 23:38:00 +08:00
kennytm
64cc5ecc1a Rollup merge of #45203 - alexcrichton:update-llvm, r=michaelwoerister
rustc: Update LLVM with a ThinLTO fix

This commit updates LLVM with a patch that's landed upstream to fix an assertion
that was tripping when ThinLTO was activated. Unfortunately I wasn't able to get
a reduced test case, but I've tested manually on the affected crates and the
assertion is indeed fixed.

Closes #45131
2017-10-13 23:37:59 +08:00
kennytm
a481d7ced3 Rollup merge of #45189 - alexcrichton:thinlto-allocators, r=michaelwoerister
rustc: Handle `#[no_mangle]` anywhere in a crate

This commit updates the reachability pass of the compiler to seed the local
worklist with `#[no_mangle]`-like items anywhere in a crate, not just those
reachable from public items.

Closes #45165
2017-10-13 23:37:58 +08:00
kennytm
e6a6d980e0 Rollup merge of #45178 - Badel2:comma-after-struct, r=petrochenkov
Better error message for comma after base struct

#41834

This adds a better error for commas after the base struct:
```
let foo = Foo {
    one: 111,
    ..Foo::default(), // This comma is a syntax error
};
```

The current error is a generic `expected one of ...` which isn't beginner-friendly. My error looks like this:

```
error: cannot use a comma after the base struct
  --> tmp/example.rs:26:9
   |
26 |         ..Foo::default(),
   |         ^^^^^^^^^^^^^^^^- help: remove this comma
   |
   = note: the base struct expansion must always be the last field
```

I even added a note for people who don't know why this isn't allowed.
2017-10-13 23:37:57 +08:00
kennytm
46d86d3847 Rollup merge of #45173 - laumann:suggest-misspelled-labels, r=petrochenkov
Add suggestions for misspelled labels

Another part of #30197
2017-10-13 23:37:56 +08:00
kennytm
b290568dcd Rollup merge of #45133 - GuillaumeGomez:usize-index-msg, r=dtolnay
usize index message for vec
2017-10-13 23:37:55 +08:00
kennytm
9eab4ec823 Rollup merge of #45122 - jean-lourenco:master, r=nikomatsakis
Better compile error output when using arguments instead of types

Following @estebank sugestion on issue https://github.com/rust-lang/rust/issues/18945#issuecomment-331251436
2017-10-13 23:37:54 +08:00
kennytm
82f2c28bc8 Rollup merge of #45110 - Nashenas88:master, r=arielb1
Improve newtype_index macro to handle description and constants consistently
2017-10-13 23:37:53 +08:00
kennytm
6c43bd3c83 Rollup merge of #44855 - federicomenaquintero:master, r=steveklabnik
Improved docs for CStr, CString, OsStr, OsString

This expands the documentation for those structs and their corresponding traits, per https://github.com/rust-lang/rust/issues/29354
2017-10-13 23:37:51 +08:00
bors
305e02281b Auto merge of #45063 - michaelwoerister:bring-back-incremental-info, r=nikomatsakis
incr.comp.: Bring back output of -Zincremental-info.

This got kind lost during the transition to red/green.

I also switched back from `eprintln!()` to `println!()` since the former never actually produced any output. I suspect this has to do with `libterm` somehow monopolizing `stderr`.

r? @nikomatsakis
2017-10-13 15:04:12 +00:00
Jimmy Brisson
fcb8bc9d4e Remove recursion from define_{provider|map}_struct 2017-10-13 09:34:13 -05:00
Jimmy Brisson
2160bab0da Remove export of vtable_methods 2017-10-13 09:34:13 -05:00
Jimmy Brisson
81f9d4e78f Wrap vtable_methods return type in RC 2017-10-13 09:34:13 -05:00
Jimmy Brisson
b640c2b95a get_vtable_methods => vtable_methods query 2017-10-13 09:34:13 -05:00
Jimmy Brisson
4e116e1426 Convert return type of get_vtable_methods to Vec 2017-10-13 09:32:29 -05:00
Santiago Pastorino
9603e240d4 Add License to infer.rs 2017-10-13 08:43:27 -04:00
Santiago Pastorino
e99702f570 TODO -> FIXME 2017-10-13 08:43:27 -04:00
Santiago Pastorino
88b02ef857 Add allow_dead code directive to unused methods 2017-10-13 08:43:27 -04:00
Santiago Pastorino
50ac63b9b1 Do not move infcx, just borrow it 2017-10-13 08:43:27 -04:00
Santiago Pastorino
6c52275c2d borrow block_data instead of moving it 2017-10-13 08:43:27 -04:00
Santiago Pastorino
c0e6a15130 sup_def is a mutable reference 2017-10-13 08:43:27 -04:00
Santiago Pastorino
2720f635a3 inteference_context should be mut 2017-10-13 08:43:27 -04:00
Santiago Pastorino
25aa6eaf30 Mark Region as public 2017-10-13 08:43:27 -04:00
Santiago Pastorino
3372b899d8 Mark free regions handling as TODO 2017-10-13 08:42:54 -04:00
Paul Faria
cc2a1c7bd8 Initial attempt at implementation of inference layout for nll 2017-10-13 08:42:54 -04:00
bors
d21c023964 Auto merge of #45055 - GuillaumeGomez:search-tabs, r=QuietMisdreavus
Add tabs for search for better information access

A few screenshots:

<img width="1440" alt="screen shot 2017-10-06 at 00 54 51" src="https://user-images.githubusercontent.com/3050060/31256148-032c1a06-aa31-11e7-8e4c-fec59786b8e6.png">
<img width="1440" alt="screen shot 2017-10-06 at 00 54 58" src="https://user-images.githubusercontent.com/3050060/31256150-03312cb2-aa31-11e7-86f7-8c9f0d8d6d4f.png">
<img width="1440" alt="screen shot 2017-10-06 at 00 55 00" src="https://user-images.githubusercontent.com/3050060/31256149-0330d456-aa31-11e7-8f89-3b3c824e30b4.png">

r? @rust-lang/docs

cc @killercup @QuietMisdreavus
2017-10-13 11:34:11 +00:00
bors
43d95e2ce9 Auto merge of #45032 - alexcrichton:target-cfu, r=michaelwoerister
rustc: Allow target-specific default cgus

Some targets, like msp430 and nvptx, don't work with multiple codegen units
right now for bugs or fundamental reasons. To expose this allow targets to
express a default.

Closes #45000
2017-10-13 08:57:08 +00:00
bors
2d7397230a Auto merge of #45031 - alexcrichton:nounwind, r=arielb1
rustc: Add LLVM `nounwind` with `-C panic=abort`

This informs LLVM that functions can't unwind, which while it should typically
have already been inferred when necessary or otherwise not impact codegen is
apparently needed on targets like ARM to avoid references to unnecessary
symbols.

Closes #44992
2017-10-13 06:32:10 +00:00