Commit Graph

87499 Commits

Author SHA1 Message Date
Guillaume Gomez
0cf97042d1 Fix invalid background color 2019-01-23 12:05:00 +01:00
bors
817dda7df0 Auto merge of #56649 - davidtwco:issue-46589, r=pnkfelix
MIR borrowck doesn't accept the example of iterating and updating a mutable reference

Fixes #46589.

r? @pnkfelix or @nikomatsakis
2018-12-20 07:22:15 +00:00
bors
e42247f949 Auto merge of #56219 - arielb1:never-coerce-box, r=nikomatsakis
trigger unsized coercions keyed on Sized bounds

This PR causes unsized coercions to not be disabled by `$0: Unsize<dyn
Object>` coercion obligations when we have an `$0: Sized` obligation somewhere.

This should be mostly backwards-compatible, because in these cases not doing the unsize coercion should have caused the `$0: Sized` obligation to fail.

Note that `X: Unsize<dyn Object>` obligations can't fail *as obligations* if `X: Sized` holds, so this still maintains some version of monotonicity (I think that an unsized coercion can't be converted to no coercion by unifying type variables).

Fixes #49593 (unblocking never_type).

r? @eddyb
cc @nikomatsakis
2018-12-20 03:41:00 +00:00
bors
daa8792f17 Auto merge of #54252 - arielb1:deref-query, r=nikomatsakis
process nested obligations in autoderef

Fixes #53843.

r? @nikomatsakis
2018-12-19 22:51:39 +00:00
bors
790f4c566d Auto merge of #56613 - Zoxc:query-perf1, r=michaelwoerister
Tweak query code for performance

Split from https://github.com/rust-lang/rust/pull/56509

r? @michaelwoerister
2018-12-19 20:13:40 +00:00
bors
0a4a4ffc69 Auto merge of #56601 - Zoxc:lifetime-killer, r=nikomatsakis
Make the 'a lifetime on TyCtxt useless

cc @rust-lang/compiler

r? @nikomatsakis
2018-12-19 15:22:55 +00:00
bors
6f839fbb0d Auto merge of #56977 - pietroalbini:rollup, r=pietroalbini
Rollup of 15 pull requests

Successful merges:

 - #56363 (Defactored Bytes::read)
 - #56663 (Remove lifetime from Resolver)
 - #56689 (add a lint group for lints emitted by rustdoc)
 - #56772 (fix issue 54153 by not testing issue-18804 on Windows nor OS X.)
 - #56820 (format-related tweaks)
 - #56881 (Implement Eq, PartialEq and Hash for atomic::Ordering)
 - #56907 (Fix grammar in compiler error for array iterators)
 - #56908 (rustc: Don't ICE on usage of two new target features)
 - #56910 (Do not point at delim spans for complete correct blocks)
 - #56913 (Enable stack probes for UEFI images)
 - #56918 (Profiler: simplify total_duration, improve readability)
 - #56931 (Update release notes for Rust 1.31.1)
 - #56947 (Add targets thumbv7neon-linux-androideabi and thumbv7neon-unknown-linux-gnueabihf)
 - #56948 (Update LLVM submodule)
 - #56959 (Fix mobile menu rendering collision with tooltip.)

Failed merges:

 - #56914 (Ignore ui/target-feature-gate on sparc, sparc64, powerpc, powerpc64 and powerpc64le)

r? @ghost
2018-12-19 12:49:32 +00:00
Pietro Albini
1ba6ec4a32
Rollup merge of #56959 - JohnHeitmann:mobile-z-fix, r=GuillaumeGomez
Fix mobile menu rendering collision with tooltip.

Bring the mobile-mode menu in front of the ⓘ icon.

Here's what the bug looks like:

![screen shot 2018-12-18 at 1 53 46 pm](https://user-images.githubusercontent.com/4282480/50185501-cbf62180-02cc-11e9-927e-3c6469901323.png)
2018-12-19 11:47:23 +01:00
Pietro Albini
6dca15c0b7
Rollup merge of #56948 - jethrogb:jb/update-llvm, r=nikic
Update LLVM submodule

This includes https://github.com/rust-lang/llvm/pull/133

Fixes #56942
2018-12-19 11:47:21 +01:00
Pietro Albini
8ee2147182
Rollup merge of #56947 - hsivonen:neon, r=alexcrichton
Add targets thumbv7neon-linux-androideabi and thumbv7neon-unknown-linux-gnueabihf

These two targets enable both thumb-mode and NEON for ARMv7 CPUs.

This another attempt at #49902, which cannot be reopened. Between that PR and this one, some subrepos with C code whose build systems were failing went away.
2018-12-19 11:47:20 +01:00
Pietro Albini
e92a51b7d7
Rollup merge of #56931 - pietroalbini:relnotes-1.31.1, r=pietroalbini
Update release notes for Rust 1.31.1

Backport from the stable branch.

r? @ghost
2018-12-19 11:47:19 +01:00
Pietro Albini
758091c063
Rollup merge of #56918 - ljedrz:profiler_nits, r=wesleywiser
Profiler: simplify total_duration, improve readability

r? @wesleywiser
2018-12-19 11:47:17 +01:00
Pietro Albini
4bd8f2bb74
Rollup merge of #56913 - tirr-c:uefi-stack-probes, r=alexcrichton
Enable stack probes for UEFI images

When building UEFI images, we don't link to any CRT libraries so we need to provide a stack probe. Without `__rust_probestack`, the linker looks for `__chkstk` and fails to link if there is a function with large local variables.

r? @alexcrichton
2018-12-19 11:47:16 +01:00
Pietro Albini
5b41887e0e
Rollup merge of #56910 - estebank:unclosed-eof, r=oli-obk
Do not point at delim spans for complete correct blocks

Fix #56834.
2018-12-19 11:47:14 +01:00
Pietro Albini
2e5a025d44
Rollup merge of #56908 - alexcrichton:new-features, r=oli-obk
rustc: Don't ICE on usage of two new target features

I seem to always forget to update this portion of the compiler...
2018-12-19 11:47:13 +01:00
Pietro Albini
39dc2c4e34
Rollup merge of #56907 - rumajo:master, r=kennytm,Centril
Fix grammar in compiler error for array iterators

This fixes a small grammatical mistake in the message the compiler gives when attempting to iterate directly over an array `arr` without calling `arr.iter()` or borrowing `&arr`.
2018-12-19 11:47:12 +01:00
Pietro Albini
b08a52c8d4
Rollup merge of #56881 - Amanieu:ordering_eq, r=alexcrichton
Implement Eq, PartialEq and Hash for atomic::Ordering

r? @alexcrichton
2018-12-19 11:47:11 +01:00
Pietro Albini
29aa466508
Rollup merge of #56820 - ljedrz:format_tweaks, r=alexcrichton
format-related tweaks

- remove an unreachable condition
- inline one-liners related to `parse_expr` (called in succession)
- refactor `report_invalid_references`
- refactor `verify_arg_type`
- minor stylistic improvements
2018-12-19 11:47:09 +01:00
Pietro Albini
6e1cc22761
Rollup merge of #56772 - pnkfelix:issue-54153-linkage-sometimes-requires-optimizations, r=nikic
fix issue 54153 by not testing issue-18804 on Windows nor OS X.

Fix #54153
2018-12-19 11:47:08 +01:00
Pietro Albini
b747425f59
Rollup merge of #56689 - QuietMisdreavus:rustdoc-lint-group, r=pnkfelix
add a lint group for lints emitted by rustdoc

As rustdoc adds more lints that it specifically manages, it would be nice to be able to lump them all together. This gives us a new group just for that.

I deliberately didn't include `missing_docs` because this is kind of a stepping stone for moving our lints into tool lints (i.e. `#![warn(rustdoc::private_doc_tests)]`), since all of these are specifically emitted by rustdoc. If we want to move `missing_docs` out of the compiler, that's also an option, but it would create a surprising change of behavior.

I also took the chance to rewrite the lint descriptions of these lints to better match the style of the other lints. `>_>`
2018-12-19 11:47:07 +01:00
Pietro Albini
d3f6d61fe1
Rollup merge of #56663 - Zoxc:resolver-lifetime, r=pnkfelix
Remove lifetime from Resolver
2018-12-19 11:47:05 +01:00
Pietro Albini
cf9fd6074d
Rollup merge of #56363 - Lucretiel:patch-3, r=shepmaster
Defactored Bytes::read

Removed unneeded refactoring of read_one_byte, which removed the unneeded dynamic dispatch (`dyn Read`) used by that function.

This function is only used in one place in the entire Rust codebase; there doesn't seem to be a reason for it to exist (and there especially doesn't seem to be a reason for it to use dynamic dispatch)
2018-12-19 11:47:04 +01:00
bors
74ebf026fe Auto merge of #56550 - chpio:rc-eq, r=alexcrichton
Short-circuit Rc/Arc equality checking on equal pointers where T: Eq

based on #42965

Is the use of the private trait ok this way? Is there anything else needed for this to get pulled?
2018-12-19 10:16:05 +00:00
bors
e7b4bc35e9 Auto merge of #56397 - petrhosek:file-search, r=cramertj
Search other library paths when loking for link objects

Support the case when link objects are not located in Rust sysroot
but in other locations which could be specify through library paths.
2018-12-19 06:46:15 +00:00
Petr Hosek
6d9640b6f6 Search other library paths when loking for link objects
Support the case when link objects are not located in Rust sysroot
but in other locations which could be specify through library paths.
2018-12-18 16:17:58 -08:00
Ariel Ben-Yehuda
5b74438107 add comment about subtyping 2018-12-19 02:05:34 +02:00
John Heitmann
1182f09b1c Fix mobile menu rendering collision with tooltip.
Bring the mobile-mode menu in front of the ⓘ icon.
2018-12-18 13:55:30 -08:00
bors
d99a320cba Auto merge of #56863 - arielb1:supertrait-self-4, r=nikomatsakis
fix trait objects with a Self-containing projection values

Fixes #56288.

This follows ALT2 in the issue.

beta-nominating since this is a regression.

r? @nikomatsakis
2018-12-18 19:58:14 +00:00
bors
cb84844e83 Auto merge of #56160 - oli-obk:const_fn_let, r=nikomatsakis
Fix various aspects around `let` bindings inside const functions

* forbid `let` bindings in const contexts that use short circuiting operators
* harden analysis code against derefs of mutable references

Initially this PR was about stabilizing `let` bindings, but too many flaws were exposed that need some more testing on nightly
2018-12-18 14:21:07 +00:00
Jethro Beekman
15ea63bed5 Update LLVM submodule 2018-12-18 15:26:10 +05:30
Oliver Scherer
d815e2b870 Explain that lack of short circuiting support in constants is temporary 2018-12-18 09:42:46 +01:00
Oliver Scherer
b678238070 Properly worded diagnostic message 2018-12-18 09:16:56 +01:00
bors
041254b814 Auto merge of #56481 - arielb1:dynamic-order, r=nikomatsakis
add coherence future-compat warnings for marker-only trait objects

The future-compat warnings break code that assumes that `dyn Send + Sync !=
dyn Sync + Send`, and are the first step in making them equal. cc #33140.

Note: this lint should be made to default-warn before we merge. It is deny only for the crater run.

r? @nikomatsakis / @scalexm . cc @Centril & @alexreg.
2018-12-18 06:50:11 +00:00
Nathan West
a1790e8c20
Reordered match arms 2018-12-17 17:43:52 -08:00
Ariel Ben-Yehuda
1fd23f56f3 improve tests as suggested by review comments 2018-12-18 00:33:21 +02:00
bors
c9bb68f5ae Auto merge of #56303 - petrochenkov:stabuseas, r=cramertj
Stabilize `underscore_imports`

Closes https://github.com/rust-lang/rust/issues/48216
2018-12-17 22:18:26 +00:00
Pietro Albini
173a3b292d
update release notes for rust 1.31.1 2018-12-17 22:59:32 +01:00
Vadim Petrochenkov
7c901ba537 Stabilize underscore_imports 2018-12-17 22:43:00 +03:00
Esteban Küber
25b3c82508 Do not point at delim spans for complete correct blocks 2018-12-17 10:22:49 -08:00
Alex Crichton
a0b766d584 rustc: Don't ICE on usage of two new target features
I seem to always forget to update this portion of the compiler...
2018-12-17 08:47:03 -08:00
David Wood
7b628e18a3
Add required lifetime parameter to BitDenotation.
This avoids all sorts of confusing issues with using both `dest_place`
and `self` in the `propagate_call_return` function in the
`BitDenotation` implementation for `Borrows`.
2018-12-17 17:26:24 +01:00
bors
adbfec229c Auto merge of #56904 - sinkuu:cycle_fold, r=bluss
Remove Cycle::try_fold override

Fixes #56883
2018-12-17 16:01:46 +00:00
ljedrz
826cda6640 profiler: improve readability 2018-12-17 16:41:59 +01:00
ljedrz
1b549ebbdf profiler: simplify total_duration 2018-12-17 16:41:44 +01:00
David Wood
db635fc566
Kill borrows from a projection after assignment.
This commit extends previous work to kill borrows from a local after
assignment into that local to kill borrows from a projection after
assignment into a prefix of that place.
2018-12-17 14:49:52 +01:00
bors
54f3cd6873 Auto merge of #56810 - sinkuu:build_match, r=oli-obk
Improve MIR match generation for ranges

Improves MIR match generation to rule out ranges/values distinct from the range that has been tested. e.g., for this code:

```rust
match x {
    0..=5 if b => 0,
    6..=10 => 1,
    _ => 2,
}
```

MIR (before):

```rust
bb0: { ...; _4 = Le(const 0i32, _1); switchInt(move _4) -> [false: bb6, otherwise: bb5]; }
bb1: { _3 = const 0i32; goto -> bb8; }
bb2: { _6 = _2; switchInt(move _6) -> [false: bb6, otherwise: bb1]; } // If `!b`, jumps to test if `6 <= x <= 10`.
bb3: { _3 = const 1i32; goto -> bb8; }
bb4: { _3 = const 2i32; goto -> bb8; }
bb5: { _5 = Le(_1, const 5i32); switchInt(move _5) -> [false: bb6, otherwise: bb2]; }
bb6: { _7 = Le(const 6i32, _1); switchInt(move _7) -> [false: bb4, otherwise: bb7]; }
bb7: { _8 = Le(_1, const 10i32); switchInt(move _8) -> [false: bb4, otherwise: bb3]; }
```

MIR (after):
```rust
bb0: { ...; _4 = Le(const 0i32, _1); switchInt(move _4) -> [false: bb5, otherwise: bb6]; }
bb1: { _3 = const 0i32; goto -> bb8; }
bb2: { _6 = _2; switchInt(move _6) -> [false: bb4, otherwise: bb1]; } // If `!b`, jumps to `_ =>` arm.
bb3: { _3 = const 1i32; goto -> bb8; }
bb4: { _3 = const 2i32; goto -> bb8; }
bb5: { _7 = Le(const 6i32, _1); switchInt(move _7) -> [false: bb4, otherwise: bb7]; }
bb6: { _5 = Le(_1, const 5i32); switchInt(move _5) -> [false: bb5, otherwise: bb2]; }
bb7: { _8 = Le(_1, const 10i32); switchInt(move _8) -> [false: bb4, otherwise: bb3]; }
```

cc #29623
2018-12-17 13:26:40 +00:00
Wonwoo Choi
0b00dbedce Enable stack probes for UEFI images 2018-12-17 21:47:31 +09:00
Felix S. Klock II
933efd755b Address LLVM assertion failure by prepopulating with *just* name-anon-globals. 2018-12-17 13:45:27 +01:00
bors
640c7ff432 Auto merge of #56853 - matthiaskrgr:clippy, r=oli-obk
submodules: update clippy from b7a431ea to a416c5e0

Changes:

````
rustup rust-lang/rust#52994
Fix test
Line length fix
Remove references to sized for end users
Remove DUMMY_SP
Add suggestion for replacement
Update lint definitions
Lint for Vec<Box<T: Sized>> - Closes #3530
Fix doc_markdown mixed case false positive
question_mark: Suggest Some(opt?) for if-else
redundant_field_names: Do not trigger on path with type params
question_mark: Lint only early returns
question_mark: Fix applicability
Remove obsolete comment
new_without_default, partialeq_ne_impl: Use span_lint_node
Update .stderr after rebase
cargo fmt and remove stabilized feature
Make suggestion Applicability::MachineApplicable
Address review feedback
Extract method
Check array lengths to prevent OOB access
Add suggestion for explicit_write lint
Fix write_with_newline escaping false positive
````

make toolstate green again
2018-12-17 11:11:55 +00:00
bors
a23d5ed751 Auto merge of #56833 - nagisa:ios-fix, r=alexcrichton
Provide -isysroot with sdkroot for ios builds

Necessary for the new XCode?

Absolutely positively definitely untested… although I did

```
cargo rustc -- -Clink-arg=-isysroot -Clink-arg=$sdk_root
```

and stuff did compile for once.
2018-12-17 08:54:15 +00:00