Commit Graph

104831 Commits

Author SHA1 Message Date
Yuki Okushi
09c7a9beb2
Rollup merge of #67796 - Aaron1011:fix/mir-inline-proj, r=wesleywiser
Ensure that we process projections during MIR inlining

Fixes #67710

Previously, we were not calling `super_place`, which resulted in us
failing to update any local references that occur in
ProjectionElem::Index. This caused the post-inlining MIR to contain a
reference to a local ID from the inlined callee, leading to an ICE
due to a type mismatch.
2020-01-03 17:56:29 +09:00
Yuki Okushi
7affcd5394
Rollup merge of #67783 - LeSeulArtichaut:pattern-ref-warning, r=Centril
Warn for bindings named same as variants when matching against a borrow

Fixes #67776
2020-01-03 17:56:27 +09:00
Yuki Okushi
aefc3cd372
Rollup merge of #67762 - lzutao:systemtime-links, r=joshtriplett
Add missing links for insecure_time
2020-01-03 17:56:26 +09:00
Yuki Okushi
ed80f49be9
Rollup merge of #67736 - taralx:patch-1, r=sfackler
Less-than is asymmetric, not antisymmetric

This has bothered me for a while. It's such a small nit, but...
2020-01-03 17:56:24 +09:00
Yuki Okushi
9dd2c9eae3
Rollup merge of #67636 - semarie:bootstrap-rustfmt, r=Mark-Simulacrum
allow rustfmt key in [build] section

Permit using `rustfmt` in `config.toml`. It will allow to not download `rustfmt` binary, which is not possible for at least some tiers-3 platforms.

Fixes: #67624

r? @Mark-Simulacrum
2020-01-03 17:56:23 +09:00
Yuki Okushi
76c1454d27
Rollup merge of #67595 - ohadravid:impl-trait-does-not-live-long-enough, r=estebank
Suggest adding a lifetime constraint for opaque type

Fixes #67577, where code like this:

```
struct List {
  data: Vec<String>,
}
impl List {
  fn started_with<'a>(&'a self, prefix: &'a str) -> impl Iterator<Item=&'a str> {
    self.data.iter().filter(|s| s.starts_with(prefix)).map(|s| s.as_ref())
  }
}
```

will show this error:
```
   Compiling playground v0.0.1 (/playground)
error[E0597]: `prefix` does not live long enough
 --> src/lib.rs:6:47
  |
5 |   fn started_with<'a>(&'a self, prefix: &'a str) -> impl Iterator<Item=&'a str> {
  |                   -- lifetime `'a` defined here     --------------------------- opaque type requires that `prefix` is borrowed for `'a`
...
```

but without suggesting the lovely `help: you can add a constraint..`.

r? @estebank
2020-01-03 17:56:21 +09:00
Yuki Okushi
7c404ce233
Rollup merge of #67450 - michaelwoerister:bootstrap-import-limit, r=Mark-Simulacrum
Allow for setting a ThinLTO import limit during bootstrap

The benchmarks in https://github.com/rust-lang/rust/pull/66625 have shown that a lower ThinLTO import limit can be a net win for bootstrap times. This PR:
- exposes the setting to `config.toml`,
- defaults to a lower limit if `incremental = true` in `config.toml`, and
- sets a lower limit for `x86_64-gnu-llvm-7` CI image in order to make the jobs complete more quickly (which remains to be tested).

This setting will affect how the compiler and it's tools are compiled. It will not affect the settings the compiler uses when compiling user code.

r? @pietroalbini
cc @rust-lang/infra
2020-01-03 17:56:20 +09:00
bors
4877e164a1 Auto merge of #67768 - wesleywiser:dnm_test_perf_65244, r=Mark-Simulacrum
Revert #65244 for performance reasons

This reverts commit f35517ee86.

Revert #65244 so we can see if it is the cause of the performance issue in #67706

cc https://github.com/rust-lang/rust/issues/67644
2020-01-03 05:51:04 +00:00
Peter Todd
4a48818433
Minor: change take() docs grammar to match other docs
Eg. mem::replace()
2020-01-03 00:40:04 -05:00
Wesley Wiser
8e4886dd55 Revert const_err lint checking of casts
Reverts part of #67676
2020-01-02 21:21:02 -05:00
Charles Lew
485e98aae2 Implement uncommon_codepoints lint. 2020-01-03 08:20:12 +08:00
Guillaume Gomez
8341a9a8f7 Clean up E0131 error explanation 2020-01-03 00:07:09 +01:00
Mazdak Farrokhzad
6e4ea1476a fix src/test fallout 2020-01-02 22:12:46 +01:00
LeSeulArtichaut
5cc9f6b706 Reformulate test description
Co-authored-by: Centril <twingoow@gmail.com>
2020-01-02 21:11:43 +01:00
LeSeulArtichaut
dc19b4842a Enhance test
Co-authored-by: Centril <twingoow@gmail.com>
2020-01-02 21:08:25 +01:00
LeSeulArtichaut
318280519d Move test
Co-authored-by: Centril <twingoow@gmail.com>
2020-01-02 20:16:55 +01:00
Guillaume Gomez
d202b59506 Clean up E0130 error explanation 2020-01-02 19:57:19 +01:00
Mazdak Farrokhzad
bebdb44e5d syntax::map_in_place: leave fixme 2020-01-02 19:31:38 +01:00
Mazdak Farrokhzad
b1aad76586 Normalize syntax::edition imports. 2020-01-02 19:31:38 +01:00
Ralf Jung
1943fe1bd6 update miri 2020-01-02 16:08:43 +01:00
Michael Woerister
6f57bad318 Set a lower ThinLTO import limit for PR CI image. 2020-01-02 14:06:45 +01:00
Michael Woerister
1b7c404d4b bootstrap: Allow for setting the ThinLTO import limit used for compiler the compiler. 2020-01-02 14:06:45 +01:00
Mazdak Farrokhzad
4ff12ce4c1 Normalize syntax::symbol imports. 2020-01-02 13:57:04 +01:00
Mazdak Farrokhzad
75e4783f63 Normalize syntax::source_map imports. 2020-01-02 13:57:04 +01:00
bors
0a58f58646 Auto merge of #63177 - MOZGIII:find-result, r=Amanieu
Add Iterator::try_find

I found a need for this fn, and created this PR.

Tracking issue: #63178

I did a fair amount of thinking about the function name, and settled on the current one.
I don't see other anything else that's non-trivial here, but I'm open for debate. I just want this functionality to be there.
It couples with the `collect` trick for collecting `Result<Vec<T>, E>` from `Iterator<Item = Result<T, E>>`.

UPD:

I've already looked at `fallible_iterator` crate, but I don't think it supports my use case.
The main problem is that I can't construct a failable iterator. I have a regular iterator, and I just need to apply a predicate that can fail via `find` method.

UPD: `fallible_iterator` would work, but it's not elegant cause I'd have to make a failable iterator by mapping iterator with `Result::Ok` first.
2020-01-02 10:20:09 +00:00
mental
b97438333e Lets see if I can get these ui tests to run. 2020-01-02 12:08:20 +02:00
mental
56b3120bf4 Remove // check-pass for ui/import/import-crate-var.rs 2020-01-02 11:59:32 +02:00
Lzu Tao
dd8f072233 Use drop instead of the toilet closure |_| () 2020-01-02 08:56:12 +00:00
mental
3323f1e57d Update src/test/ui 2020-01-02 10:16:07 +02:00
bors
766fba3fdc Auto merge of #67779 - Amanieu:ehabi_fix, r=Mark-Simulacrum
Update the barrier cache during ARM EHABI unwinding

Fixes #67242

r? @alexcrichton
2020-01-02 07:04:20 +00:00
bors
68fdecd0ba Auto merge of #67700 - cjgillot:passes-stability, r=Zoxc
Move stability queries to librustc_passes.

Contains:
- check_mod_unstable_api_usage query;
- stability_index query;
- check_unused_or_stable features pass.

Split out of #67688

r? @Zoxc
2020-01-02 03:52:42 +00:00
Aaron Hill
e8e53b56df
Ensure that we process projections during MIR inlining
Fixes #67710

Previously, we were not calling `super_place`, which resulted in us
failing to update any local references that occur in
ProjectionElem::Index. This caused the post-inlining MIR to contain a
reference to a local ID from the inlined callee, leading to an ICE
due to a type mismatch.
2020-01-01 20:10:55 -05:00
bors
aaca5f1d76 Auto merge of #67689 - mark-i-m:update-guide, r=JohnTitor
Update rustc-guide

r? @ehuss

cc @rust-lang/wg-learning
2020-01-02 00:37:03 +00:00
LeSeulArtichaut
f474c0084a Added test 2020-01-02 00:50:52 +01:00
LeSeulArtichaut
4f63985412 Warn for bindings named same as variants when matching against a borrow 2020-01-02 00:50:51 +01:00
Oliver Middleton
23f543162a Cleanup linkchecker whitelist
linkchecker is no longer run on the compiler docs so they can be removed from the whitelist.
2020-01-01 23:46:25 +00:00
MOZGIII
5446cc99bb Add Iterator::try_find 2020-01-02 00:59:26 +03:00
bors
0ec3706702 Auto merge of #67676 - wesleywiser:lint_overflowing_int_casts, r=oli-obk
Lint overflowing integer casts in const prop

This extends the invalid cases we catch in const prop to include
overflowing integer casts using the same machinery as the overflowing
binary and unary operation logic.

r? @oli-obk
2020-01-01 21:27:11 +00:00
Wesley Wiser
e8c1c4cd5b Ignore overflow lint on 32-bit platform 2020-01-01 12:31:36 -05:00
Mark Mansi
01c93d5f5b update rustc-guide 2020-01-01 11:05:59 -06:00
Amanieu d'Antras
057ad39ea8 Update the barrier cache during ARM EHABI unwinding 2020-01-01 17:20:16 +01:00
bors
1ed41b0720 Auto merge of #67729 - mati865:deps, r=nikomatsakis
Bump smallvec
2020-01-01 15:10:48 +00:00
Camille GILLOT
36b6630771 Move stability queries to librustc_passes.
Contains:
- check_mod_unstable_api_usage query;
- stability_index query;
- check_unused_or_stable features pass.
2020-01-01 14:15:02 +01:00
mental
72ee3622d7 Forgot an .emit() 2020-01-01 14:44:19 +02:00
mental
37f4535d49 Make use $crate a hard error 2020-01-01 14:33:53 +02:00
Camille GILLOT
eca7797d6b Move stability.rs to librustc_passes. 2020-01-01 13:28:12 +01:00
Camille GILLOT
1fab03e908 Move lint levels machanism in librustc_lint. 2020-01-01 13:20:33 +01:00
Camille GILLOT
96180ff655 Move late lint machanism in librustc_lint. 2020-01-01 13:20:18 +01:00
Camille GILLOT
3a350e1a39 Move early lint machanism in librustc_lint. 2020-01-01 13:16:43 +01:00
Michal Terepeta
cfab634972 Add a test for #37333
The test checks that we reuse the CGU of a crate when the implementation
details of an `extern crate` have changed.

Signed-off-by: Michal Terepeta <michal.terepeta@gmail.com>
2020-01-01 13:07:41 +01:00