Commit Graph

156084 Commits

Author SHA1 Message Date
Mark Rousskov 1c2ad79f9d Add two inline annotations for hot functions
These two functions are essentially no-ops (and compile to just a load and
return), but show up in process_obligations profiles with a high call count --
so worthwhile to try and inline them away.
2021-10-03 12:43:43 -04:00
bors 08759c691e Auto merge of #88086 - ssomers:btree_clone_testing, r=dtolnay
BTree: toughen panicky test of clone()

Test did not cover the second half of `clone_subtree` and why this clones key & value first.
2021-10-03 16:22:37 +00:00
Fabian Wolff e34fd54611 Deny where clauses on auto traits 2021-10-03 18:06:21 +02:00
bjorn3 9f4cb862ca Replace Fn impls with RPIT impls in rustc_index
This is cleaner and removes an unstable feature usage
2021-10-03 17:50:53 +02:00
Orson Peters 6dd6e7c002 Added tracking issue numbers for int_abs_diff. 2021-10-03 17:44:07 +02:00
Caio 91ad91efb6 Skip platforms without unwinding support 2021-10-03 12:25:23 -03:00
Camille GILLOT b2ed9c4007 Add some inlining. 2021-10-03 16:08:57 +02:00
Camille GILLOT 48ae6ec4f3 Update ui-fulldeps. 2021-10-03 16:08:56 +02:00
Camille GILLOT fedd7785fe Access StableHashingContext in rustc_query_system. 2021-10-03 16:08:55 +02:00
Camille GILLOT 471cb5c149 Fully remove rustc_middle::ich. 2021-10-03 16:08:55 +02:00
Camille GILLOT 02025d86ac Remove re-export. 2021-10-03 16:08:54 +02:00
Camille GILLOT c355b2e5cd Move ICH to rustc_query_system. 2021-10-03 16:08:53 +02:00
Camille GILLOT 2d38c53767 Remove StableHashProvider. 2021-10-03 16:08:52 +02:00
Camille GILLOT 8961616e60 Move rustc_middle::middle::cstore to rustc_session. 2021-10-03 16:08:51 +02:00
Camille GILLOT b66dfaaa64 Move some HashStable impls. 2021-10-03 16:08:50 +02:00
Fabian Wolff 529c35331b Fix unsound optimization with explicit variant discriminants 2021-10-03 16:04:38 +02:00
bors 5051904d66 Auto merge of #87870 - WaffleLapkin:pub_split_at_unchecked, r=dtolnay
Make `<[T]>::split_at_unchecked` and `<[T]>::split_at_mut_unchecked` public

The methods were originally added in https://github.com/rust-lang/rust/pull/75936 (https://github.com/sdroege/rust/commit/30dc32b10eb53e4a92c61a42062983db58838217), but for some reason as private. Nevertheless, the methods have documentation and even a [tracking issue](https://github.com/rust-lang/rust/issues/76014).

It's very weird to have a tracking issue for private methods and these methods may be useful outside of the standard library. As such, this PR makes the methods public.
2021-10-03 13:41:52 +00:00
Fabian Wolff 9626f2bd84 Fix extra non_snake_case warning for shorthand field bindings 2021-10-03 14:33:14 +02:00
Stefan Schindler e599e2df49 Move from grid layout to table based layout because of browser limits that overlay row entries after a UA specific amount of rows 2021-10-03 08:20:08 -04:00
Stefan Schindler 677fb6b1db Show how many tests are running in parallel 2021-10-03 08:20:08 -04:00
Stefan Schindler a0cc9bb0f6 Add a test to detect overlapping entries in overview tables
Detects https://github.com/rust-lang/rust/issues/88545
2021-10-03 08:20:08 -04:00
Fabian Wolff cf19131cb3 Try to recover from a => -> = or -> typo in a match arm 2021-10-03 14:14:35 +02:00
Matthias Kaak d6a7e74c81 Combined 4 commits into 1
Fixed numerus of error message

Removed superfluous argument

Using pluralize!() instead of code duplication

Adjusted a test
2021-10-03 11:53:12 +00:00
bors 4479cb82e5 Auto merge of #89459 - tspiteri:idiv-overflow-bitand, r=kennytm
Use bitand when checking for signed integer division overflow

For `self == Self::MIN && rhs == -1`, LLVM does not realize that this is the same check made by `self / rhs`, so the code generated may have some unnecessary duplication. For `(self == Self::MIN) & (rhs == -1)`, LLVM realizes it is the same check.
2021-10-03 10:34:57 +00:00
bors 63b04f7d7f Auto merge of #7755 - HKalbasi:master, r=xFrednet
exclude enum from derivable impls

fix #7753

changelog: Exclude enum from ``[`derivable_impls`]``
2021-10-03 10:30:16 +00:00
HKalbasi 0ebc656a9a Change not enum to is struct 2021-10-03 13:01:57 +03:30
Hans Kratz 32e19fbecb Update Let's Encrypt ROOT CA certificate in dist-(i686|x86_64)-linux docker images 2021-10-03 10:58:37 +02:00
bors 33c34fb2d7 Auto merge of #7709 - Qwaz:drop_non_send, r=xFrednet
Implement `non_send_field_in_send_ty` lint

changelog: Implement [`non_send_fields_in_send_ty`] lint

Fixes #7703
2021-10-03 08:43:32 +00:00
hkalbasi ea8e65f0da exclude enum from derivable impls 2021-10-03 11:58:27 +03:30
Hirochika Matsumoto 3818981ca1 Practice diagnostic message convention 2021-10-03 16:16:28 +09:00
bors c24c9067ee Auto merge of #88060 - TennyZhuang:optimize-vec-retain, r=dtolnay
Optimize unnecessary check in Vec::retain

The function `vec::Vec::retain` only have two stages:

1. Nothing was deleted.
2. Some elements were deleted.

Here is an unnecessary check `if g.deleted_cnt > 0` in the loop, and it's difficult for compiler to optimize it. I split the loop into two stages manully and keep the code clean using const generics.

I write a special but common bench case for this optimization. I call retain on vec but keep all elements.

Before and after this optimization:

```
test vec::bench_retain_whole_100000                      ... bench:      84,803 ns/iter (+/- 17,314)
```

```
test vec::bench_retain_whole_100000                      ... bench:      42,638 ns/iter (+/- 16,910)
```

The result is expected, there are two `if`s before the optimization and one `if` after.
2021-10-03 06:24:06 +00:00
Hirochika Matsumoto fb0b1a5466 Follow the diagnostic output style guide 2021-10-03 14:28:39 +09:00
Charles Lew 250d1260e6 Add deref_into_dyn_supertrait lint. 2021-10-03 12:36:40 +08:00
bors 77f1e504a9 Auto merge of #89479 - camsteffen:diag-naming, r=Manishearth
Make diangostic item naming consistent

Right now there is about a 50/50 split of naming diagnostic items as `vec_type` vs `Vec`. So it is hard to guess a diagnostic item name with confidence. I know it's not great to change these retroactively, but I think it will be much easier to maintain consistency after consistency is established.
2021-10-03 03:43:21 +00:00
Hameer Abbasi dc4043075e Move test to correct path. 2021-10-03 05:24:45 +02:00
Hameer Abbasi 3da9dea491 Add test for issue 89118. 2021-10-03 04:08:11 +02:00
bors c70b35efd8 Auto merge of #84267 - dtolnay:ptrunit, r=nagisa
Make *const (), *mut () okay for FFI

Pointer-to-() is used occasionally in the standard library to mean "pointer to none-of-your-business". Examples:

- `RawWakerVTable::new` https://doc.rust-lang.org/1.51.0/std/task/struct.RawWakerVTable.html#method.new
- `<*const T>::to_raw_parts` https://doc.rust-lang.org/nightly/std/primitive.pointer.html#method.to_raw_parts

I believe it's useful for the same purpose in FFI signatures, even while `()` itself is not FFI safe. The following should be allowed:

```rust
extern "C" {
    fn demo(pc: *const (), pm: *mut ());
}
```

Prior to this PR, those pointers were not considered okay for an extern signature.

```console
warning: `extern` block uses type `()`, which is not FFI-safe
 --> src/main.rs:2:17
  |
2 |     fn demo(pc: *const (), pm: *mut ());
  |                 ^^^^^^^^^ not FFI-safe
  |
  = note: `#[warn(improper_ctypes)]` on by default
  = help: consider using a struct instead
  = note: tuples have unspecified layout

warning: `extern` block uses type `()`, which is not FFI-safe
 --> src/main.rs:2:32
  |
2 |     fn demo(pc: *const (), pm: *mut ());
  |                                ^^^^^^^ not FFI-safe
  |
  = help: consider using a struct instead
  = note: tuples have unspecified layout
```
2021-10-03 00:41:49 +00:00
Cameron Steffen e165c12932 Make diangostic item names consistent 2021-10-02 19:38:19 -05:00
Cameron Steffen eec856bfbc Make diangostic item names consistent 2021-10-02 19:38:19 -05:00
Yechan Bae fb0353b28d Update documentation and name for non_send_fields_in_send_ty lint 2021-10-02 19:22:37 -04:00
Noah Lev 5f744f33f6 Explain ResolvedPath vs hir::Path
Co-authored-by: Joshua Nelson <github@jyn.dev>
2021-10-02 15:57:57 -07:00
Noah Lev 962e451443 Replace all uses of path.res.def_id() with path.def_id() 2021-10-02 15:57:57 -07:00
Noah Lev 82b52e1951 Remove outdated comment
`CACHE_KEY` no longer exists.
2021-10-02 15:57:57 -07:00
Noah Lev e4ce68baa8 Update clean::Type docs
They've barely been updated since this version of `rustdoc` (originally
called `rustdoc_ng`) was checked into the tree!

Note that the formatting of a couple `Type` variants changed; rustfmt
seems to change formatting based on whether all variants have docs.
2021-10-02 15:57:57 -07:00
Noah Lev d4675aad5c Turn some comments into docs 2021-10-02 15:57:56 -07:00
Cameron Steffen 9c2d52fabe Add desugaring mark to while loop 2021-10-02 17:41:14 -05:00
Cameron Steffen 67ea84d97a Add desugaring mark to while loop 2021-10-02 17:41:14 -05:00
Devin Ragotzy b06409ebcd Rename etc -> has_rest_pat 2021-10-02 17:51:31 -04:00
Devin Ragotzy 3d83ff6aa3 Add ui test for empty fields for omitted_patterns lint 2021-10-02 17:50:53 -04:00
Devin Ragotzy f7a8980347 Reorder etc check for non_exhaustive_omitted_patterns 2021-10-02 17:50:53 -04:00