Commit Graph

104957 Commits

Author SHA1 Message Date
Mazdak Farrokhzad
93ff89794f
Rollup merge of #67773 - michalt:issue-37333-test, r=nikomatsakis
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-04 02:19:48 +01:00
Mazdak Farrokhzad
85277ff772
Rollup merge of #67531 - RalfJung:tame-promotion, r=nikomatsakis
no longer promote non-pattern const functions

This is trying to pack-pedal a bit on promotion feature creep, as proposed by @eddyb [here](https://github.com/rust-lang/const-eval/issues/19#issuecomment-472799062): possibly, a sane subset of `const fn` that we could promote are those that are just constructors -- the same subset that we might want to allow in pattern position at some point.

So, this removes the `rustc_promotable` attribute from the three functions they identified that do not fit this pattern. The first step is to run crater to see if there is code in the wild that relies on this being promotable.

r? @oli-obk
2020-01-04 02:19:46 +01:00
Mazdak Farrokhzad
a436293994
Rollup merge of #66913 - VirrageS:help-self, r=varkor,Centril
Suggest calling method when first argument is `self`

Closes: #66782

I've explored different approaches for this MR but I think the most straightforward is the best one.

I've tried to find out if the methods for given type exist (to maybe have a better suggestion), but we don't collect them anywhere and collecting them is quite problematic. Moreover, collecting all the methods would require rewriting big part of the code and also could potentially include performance degradation, which I don't think is necessary for this simple case.
2020-01-04 02:19:44 +01:00
Oliver Middleton
83333fe85b Remove unused #[link_name = "m"] attributes
These were perhaps supposed to be `#[link(name = "m")]` but linking libm should be handled by the libc crate anyway.
2020-01-03 23:41:11 +00:00
Guillaume Gomez
aab4276477 Clean up E0164 explanation 2020-01-04 00:32:29 +01:00
Guillaume Gomez
ec64bbbe07 Small error explanations cleanup 2020-01-04 00:32:29 +01:00
Andy Russell
e9990bc65f
clarify that Drop can be implemented for enums and unions too 2020-01-03 17:57:24 -05:00
Andy Russell
e589358210
improve generic Drop error messages
- Use the span of the predicate
- Use the def's description instead of "struct/enum" (notably incorrect
  for unions)
- Align formatting with other error messages
2020-01-03 17:57:23 -05:00
jumbatm
ae002c1d84 Also remove const-hack for abs 2020-01-04 08:42:22 +10:00
bors
e845e691c9 Auto merge of #67829 - michaelwoerister:try-to-fix-pgo-branch-weights-test, r=Mark-Simulacrum
Attempt to fix intermittent failures of pgo-branch-weights test.

This PR tries to fix the intermittent failures of the pgo-branch-weights test (https://github.com/rust-lang/rust/issues/67746). The failing instances show no `!prof` annotations in LLVM IR. One possible cause is that the instrumented binary did not record anything. This is something I've occasionally seen happen for similarly small programs when using GNU ld as linker. The linker would not properly append the instruction counter sections, leading to most counters being dropped. This PR makes the test use the Gold linker instead.

It also makes each command exit immediately on failure so we can pinpoint the failure source better, should there still be a problem.

r? @Mark-Simulacrum
2020-01-03 22:03:20 +00:00
bors
c5840f9d25 Auto merge of #67809 - RalfJung:miri, r=RalfJung
update miri

Fixes https://github.com/rust-lang/rust/issues/67793
2020-01-03 18:46:13 +00:00
mental
5b7134a30e
Apply suggestions from code review
Co-Authored-By: Yuki Okushi <huyuumi.dev@gmail.com>
2020-01-03 17:48:10 +02:00
Vadim Petrochenkov
5bf8105993 Address review comments + Fix rebase 2020-01-03 18:03:28 +04:00
Vadim Petrochenkov
6bd6a20475 Add a test 2020-01-03 18:03:28 +04:00
Vadim Petrochenkov
1370bbcf0d rustdoc: Respect diagnostic debugging options 2020-01-03 18:03:28 +04:00
Vadim Petrochenkov
4feeceecd1 Introduce an option for disabling deduplication of diagnostics 2020-01-03 18:03:28 +04:00
Andy Russell
7fd014d569
tweak wording of mismatched delimiter errors 2020-01-03 08:40:15 -05:00
mental
c0da63951a Thank you Dylan and JohnTitor for blessing me. 2020-01-03 11:50:12 +02:00
Michael Woerister
971aa2bd62 Attempt to fix intermittent failures of pgo-branch-weights test. 2020-01-03 10:40:15 +01:00
bors
30ddb5a8c1 Auto merge of #67828 - JohnTitor:rollup-qmswkkl, r=JohnTitor
Rollup of 10 pull requests

Successful merges:

 - #67450 (Allow for setting a ThinLTO import limit during bootstrap)
 - #67595 (Suggest adding a lifetime constraint for opaque type)
 - #67636 (allow rustfmt key in [build] section)
 - #67736 (Less-than is asymmetric, not antisymmetric)
 - #67762 (Add missing links for insecure_time)
 - #67783 (Warn for bindings named same as variants when matching against a borrow)
 - #67796 (Ensure that we process projections during MIR inlining)
 - #67807 (Use drop instead of the toilet closure `|_| ()`)
 - #67816 (Clean up err codes)
 - #67825 (Minor: change take() docs grammar to match other docs)

Failed merges:

r? @ghost
2020-01-03 09:07:05 +00:00
Yuki Okushi
14c96ce48c
Rollup merge of #67825 - petertodd:2020-mem-take-grammar, r=steveklabnik
Minor: change take() docs grammar to match other docs

Eg. mem::replace()
2020-01-03 17:56:33 +09:00
Yuki Okushi
39a68a130a
Rollup merge of #67816 - GuillaumeGomez:clean-up-err-codes, r=Dylan-DPC
Clean up err codes

r? @Dylan-DPC
2020-01-03 17:56:32 +09:00
Yuki Okushi
b0649c0c5f
Rollup merge of #67807 - lzutao:toilet-closure, r=Centril
Use drop instead of the toilet closure `|_| ()`
2020-01-03 17:56:30 +09:00
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
Markus Westerlind
e6e61d9dff perf: Don't recurse into types that do not need normalizing
A bit speculative at this stage but profiling shows that type folding
takes up a substantial amount of time during normalization which may
indicate that many types may be folded despite there being nothing to
normalize
2020-01-02 12:14:23 +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