Commit Graph

156398 Commits

Author SHA1 Message Date
bors d7c97a02d1 Auto merge of #89105 - DevinR528:reachable-fix, r=Nadrieril
Fix: non_exhaustive_omitted_patterns by filtering unstable and doc hidden variants

Fixes: #89042

Now that #86809 has been merged there are cases (std::io::ErrorKind) where unstable feature gated variants were included in warning/error messages when the feature was not turned on. This filters those variants out of the return of `SplitWildcard::new`.

Variants marked `doc(hidden)` are filtered out of the witnesses list in `Usefulness::apply_constructor`.

Probably worth a perf run 🤷 since this area can be sensitive.
2021-10-12 20:54:15 +00:00
Noah Lev bf2d2e5597 Work around different filenames for DLLs 2021-10-12 13:31:21 -07:00
Noah Lev cc6a09009d Add long explanation for E0464
The test is copied from `src/test/ui/crate-loading/crateresolve1.rs` and
its auxiliary tests. I added it to the `compile_fail` code example check
exemption list since it's hard if not impossible to reproduce this error
in a standalone code example.
2021-10-12 13:10:12 -07:00
Noah Lev 2e56b6f98e Include rmeta candidates in "multiple matching crates" error
Only dylib and rlib candidates were included in the error. I think the
reason is that at the time this error was originally implemented, rmeta
crate sources were represented different from dylib and rlib sources.
I wrote up more detailed analysis in [this comment][1].

The new version of the code is also a bit easier to read and should be
more robust to future changes since it uses `CrateSources::paths()`.

[1]: https://github.com/rust-lang/rust/pull/88675#issuecomment-935282436
2021-10-12 13:10:11 -07:00
Noah Lev ad49cb6e0c Add test for showing rmeta candidates in error 2021-10-12 13:10:11 -07:00
Noah Lev 642a43a9cd Test crate loading error stderr
And remove E0464 from test-exemption list, since it now has a full test.
2021-10-12 13:10:10 -07:00
Noah Lev 6792c6a851 Sort candidate libraries by source path in error
This makes the error output deterministic and thus testable.
2021-10-12 13:08:32 -07:00
Hans Kratz 905ed5fa89 Make `rust.overflow-checks-std`option default to `rust.overflow-checks`. 2021-10-12 21:57:40 +02:00
Hans Kratz bcf7cf6670 Add --enable-debug-assertions-std option to configure script. 2021-10-12 21:49:06 +02:00
Hans Kratz cfc7782a84 Add --enable-overflow-checks-std option to configure script. 2021-10-12 21:49:06 +02:00
Hans Kratz 7a646df098 Add missing entries for overflow-checks to config.toml.example. 2021-10-12 21:49:00 +02:00
Camille GILLOT 7a209bb7a5 Justify untracked access. 2021-10-12 20:53:29 +02:00
bors 044674337a Auto merge of #89813 - the8472:rollup-f1f99mb, r=the8472
Rollup of 7 pull requests

Successful merges:

 - #89778 (Add #[must_use] to as_type conversions)
 - #89784 (Remove built-in query cache_hit tracking)
 - #89796 (Add #[must_use] to non-mutating verb methods)
 - #89797 (Add #[must_use] to is_condition tests)
 - #89799 (fix minor spelling error in Poll::ready docs)
 - #89800 (Update books)
 - #89809 (Remap ssa RealPredicate to llvm RealPredicate)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2021-10-12 17:57:34 +00:00
jackh726 9855e7dc7b Switch order of terms to prevent overflow 2021-10-12 11:14:31 -04:00
Eric Huss d9f0eb54f7 Update winapi shared features.
Needed due to os_info.
2021-10-12 07:14:32 -07:00
Mara Bos a6bb1fb641 Add #[inline] to int log10 functions. 2021-10-12 15:21:14 +02:00
Canop e5cfe844c9 Fix invalid rules in .gitignore
`**node_modules` in a .gitignore is the same than
`*node_modules` or `*****node_modules`.

It matches every file whose name ends with `node_modules`,
including `not_node_modules`.

The intent here was obviously to have `**/node_modules`
which is the same than just `node_modules`.
2021-10-12 15:09:28 +02:00
Guillaume Gomez 51a993f4a6 Add test for associated constants in the sidebar 2021-10-12 15:07:11 +02:00
Guillaume Gomez d6dbff56e4 List associated constants in the sidebar 2021-10-12 15:06:52 +02:00
Mara Bos df15b289f3 Remove potentially unsound note on reconstructing a leaked Vec. 2021-10-12 15:02:52 +02:00
John Kugelman 81eeb3e775 Fix uppercase/lowercase error 2021-10-12 08:53:54 -04:00
the8472 6cdf8030f0
Rollup merge of #89809 - tmiasko:remap-real-predicate, r=michaelwoerister
Remap ssa RealPredicate to llvm RealPredicate

to avoid relying on the discriminant of the former for FFI purposes
2021-10-12 14:53:13 +02:00
the8472 17c7635f7c
Rollup merge of #89800 - ehuss:update-books, r=ehuss
Update books

## nomicon

5 commits in 2747c4bb2cbc0639b733793ddb0bf4e9daa2634e..2d66852a27c5d0ec50ae021820d1de22caa2b1bd
2021-09-19 17:33:32 +0900 to 2021-10-07 19:00:37 +0900
- Fix typo/minor grammar error in subtyping.md (rust-lang/nomicon#317)
- doc: clarify `thread::scoped::JoinGuard` chapter (rust-lang/nomicon#313)
- Clarify niche optimization on enums with reprs (rust-lang/nomicon#315)
- Update rc decrement snipped (rust-lang/nomicon#316)
- Remove useless `unsafe`, `mut` and ptr casts in example in `send-and-sync.md` (rust-lang/nomicon#308)

## reference

2 commits in 13747275bd14c2d2b453100498532f9ae5504769..b5c68b02984f74e99d1f1b332029e05f607e2660
2021-09-24 17:44:04 +0900 to 2021-10-02 08:11:35 -0700
- Use subtrait/supertrait, not sub-trait, super-trait. (rust-lang/reference#1095)
- Fixed link typo in Generics.md (rust-lang/reference#1094)

## rust-by-example

3 commits in 28aca4a36962c709bce301c03114b5589381dfb8..9a60624fcad0140826c44389571dc622917cd632
2021-09-25 08:19:51 -0300 to 2021-10-04 08:13:53 -0300
- Change 1..n + 1 to 1..=n (rust-lang/rust-by-example#1467)
- Close rust-lang/rust-by-example#1464 (rust-lang/rust-by-example#1465)
- Fix incorrect formatted print hint; closes rust-lang/rust-by-example#1459. (rust-lang/rust-by-example#1466)

## rustc-dev-guide

11 commits in d1f03cbaa39d9164f5fe4b9b93762668142e0dad..fba15a46ca8efa97e8a955794724ac7ce27805b8
2021-09-24 12:00:29 +0900 to 2021-10-12 08:52:21 +0900
- Update some docs from 2021-10 date triage (rust-lang/rustc-dev-guide#1230)
- Recommend `rustfmt --edition=2021`
- Update sanitizer documentation
- Mention needs-sanitizer-hwaddress directive
- Address review comments
- Document tracing awesomeness
- Move log/tracing instructions to its own file
- Update src/closure.md
- Fix accidental HTML tag
- Update links to `rustc_mir` in Two Phase Borrows (rust-lang/rustc-dev-guide#1226)
- Update some docs from 2021-10 date triage (rust-lang/rustc-dev-guide#1224)

## edition-guide

1 commits in 2d9b1b9da706de24650fdc5c3b0182f55c82115d..7c0088ca744d293a5f4b1e2ac378e7c23d30fe55
2021-08-31 10:44:09 +0200 to 2021-10-05 13:28:05 +0200
- Clarify cargo resolver behavior in a workspace. (rust-lang/edition-guide#267)

## embedded-book

2 commits in 4c76da9ddb4650203c129fceffdea95a3466c205..270fccd339e5972d9c900e788f197e81a0bcd956
2021-09-12 12:43:03 +0000 to 2021-10-06 16:28:48 +0000
- Update section 1.4 to mention that some additional packages required  (rust-embedded/book#304)
- Change `-file-headers` to `--file-headers`  (rust-embedded/book#303)
2021-10-12 14:53:12 +02:00
the8472 7017410e5d
Rollup merge of #89799 - ast-ral:ready-method-spellck, r=joshtriplett
fix minor spelling error in Poll::ready docs

Fixes minor spelling error in the proposed `Poll::ready` docs. Not that my opinion matters, but +1 on the original PR (#89651), it reads much nicer to me than the `ready!` macro.
2021-10-12 14:53:11 +02:00
the8472 4cf0f1fede
Rollup merge of #89797 - jkugelman:must-use-is_condition-tests, r=joshtriplett
Add #[must_use] to is_condition tests

I threw in `std::path::Path::has_root` for funsies.

A continuation of #89718.

Parent issue: #89692

r? ```@joshtriplett```
2021-10-12 14:53:11 +02:00
the8472 a1bdd48106
Rollup merge of #89796 - jkugelman:must-use-non-mutating-verb-methods, r=joshtriplett
Add #[must_use] to non-mutating verb methods

These are methods that could be misconstrued to mutate their input, similar to #89694. I gave each one a different custom message.

I wrote that `upgrade` and `downgrade` don't modify the input pointers. Logically they don't, but technically they do...

Parent issue: #89692

r? ```@joshtriplett```
2021-10-12 14:53:10 +02:00
the8472 4ce1ce1f76
Rollup merge of #89784 - Mark-Simulacrum:delete-cache-hit-tracking, r=petrochenkov
Remove built-in query cache_hit tracking

This was already only enabled in debug_assertions builds. Generally, it seems
like most use cases that would use this could also use the -Zself-profile flag
which also tracks cache hits (in all builds), and so the extra cfg's and such
are not really necessary.

This is largely just a small cleanup though, which primarily is intended to make
other changes easier by avoiding the need to deal with this field.
2021-10-12 14:53:09 +02:00
the8472 b55a3c5d15
Rollup merge of #89778 - jkugelman:must-use-as_type-conversions, r=joshtriplett
Add #[must_use] to as_type conversions

Clippy missed these:

```rust
alloc::string::String   fn as_mut_str(&mut self) -> &mut str;
core::mem::NonNull<T>   unsafe fn as_uninit_mut<'a>(&mut self) -> &'a MaybeUninit<T>;
str                     unsafe fn as_bytes_mut(&mut self) -> &mut [u8];
str                     fn as_mut_ptr(&mut self) -> *mut u8;
```

Parent issue: #89692

r? ````@joshtriplett````
2021-10-12 14:53:08 +02:00
Mara Bos 129af049fe Mention Rust version in Vec::leak docs. 2021-10-12 14:50:46 +02:00
LingMan 7943c9c446 Use Option::map_or instead of open coding it 2021-10-12 14:47:52 +02:00
Devin Ragotzy 2a042d6105 Filter unstable and doc hidden variants in usefulness checking
Add test cases for unstable variants
Add test cases for doc hidden variants
Move is_doc_hidden to method on TyCtxt
Add unstable variants test to reachable-patterns ui test
Rename reachable-patterns -> omitted-patterns
2021-10-12 08:22:25 -04:00
Tomasz Miąsko ce7713d6b4 Remap ssa RealPredicate to llvm RealPredicate
to avoid relying on the discriminant of the former for FFI purposes
2021-10-12 11:55:45 +02:00
bors 9475e609b8 Auto merge of #89770 - jkugelman:must-use-from-and-into, r=joshtriplett
Add #[must_use] to From::from and Into::into

Risk of churn: **High**
Magic 8-Ball says: **Outlook not so good**

I figured I'd put this out there. If we don't do it now maybe we save it for a rainy day.

Parent issue: #89692

r? `@joshtriplett`
2021-10-12 09:43:37 +00:00
bors 02f2b31e61 Auto merge of #89769 - jkugelman:must-use-maybe-uninit-new, r=joshtriplett
Add #[must_use] to MaybeUninit::new

As discussed in https://github.com/rust-lang/rust/pull/89729#issuecomment-939775659.

Parent issue: #89692

r? `@joshtriplett`
2021-10-12 07:02:53 +00:00
Marcel Hellwig 0767ed31f3 add some more testcases 2021-10-12 08:56:05 +02:00
Camille GILLOT c5628a5e65 Use invalid local id for zeroth node parent. 2021-10-12 08:41:53 +02:00
Deadbeef 5387b6542f
Add const_eval_select intrinsic 2021-10-12 05:42:23 +00:00
Eric Huss 9401547cea Update cargo 2021-10-11 21:48:27 -07:00
Eric Huss 6e0c889d34 Update books 2021-10-11 21:10:05 -07:00
ast-ral 5100630dcd
fix minor spelling error in Poll::ready docs 2021-10-11 21:00:02 -07:00
bors ffdf18d144 Auto merge of #88788 - falk-hueffner:speedup-int-log10-branchless, r=joshtriplett
Speedup int log10 branchless

This is achieved with a branchless bit-twiddling implementation of the case x < 100_000, and using this as building block.

Benchmark on an Intel i7-8700K (Coffee Lake):

```
name                                   old ns/iter  new ns/iter  diff ns/iter   diff %  speedup
num::int_log::u8_log10_predictable     165          169                     4    2.42%   x 0.98
num::int_log::u8_log10_random          438          423                   -15   -3.42%   x 1.04
num::int_log::u8_log10_random_small    438          423                   -15   -3.42%   x 1.04
num::int_log::u16_log10_predictable    633          417                  -216  -34.12%   x 1.52
num::int_log::u16_log10_random         908          471                  -437  -48.13%   x 1.93
num::int_log::u16_log10_random_small   945          471                  -474  -50.16%   x 2.01
num::int_log::u32_log10_predictable    1,496        1,340                -156  -10.43%   x 1.12
num::int_log::u32_log10_random         1,076        873                  -203  -18.87%   x 1.23
num::int_log::u32_log10_random_small   1,145        874                  -271  -23.67%   x 1.31
num::int_log::u64_log10_predictable    4,005        3,171                -834  -20.82%   x 1.26
num::int_log::u64_log10_random         1,247        1,021                -226  -18.12%   x 1.22
num::int_log::u64_log10_random_small   1,265        921                  -344  -27.19%   x 1.37
num::int_log::u128_log10_predictable   39,667       39,579                -88   -0.22%   x 1.00
num::int_log::u128_log10_random        6,456        6,696                 240    3.72%   x 0.96
num::int_log::u128_log10_random_small  4,108        3,903                -205   -4.99%   x 1.05
```

Benchmark on an M1 Mac Mini:

```
name                                   old ns/iter  new ns/iter  diff ns/iter   diff %  speedup
num::int_log::u8_log10_predictable     143          130                   -13   -9.09%   x 1.10
num::int_log::u8_log10_random          375          325                   -50  -13.33%   x 1.15
num::int_log::u8_log10_random_small    376          325                   -51  -13.56%   x 1.16
num::int_log::u16_log10_predictable    500          322                  -178  -35.60%   x 1.55
num::int_log::u16_log10_random         794          405                  -389  -48.99%   x 1.96
num::int_log::u16_log10_random_small   1,035        405                  -630  -60.87%   x 2.56
num::int_log::u32_log10_predictable    1,144        894                  -250  -21.85%   x 1.28
num::int_log::u32_log10_random         832          786                   -46   -5.53%   x 1.06
num::int_log::u32_log10_random_small   832          787                   -45   -5.41%   x 1.06
num::int_log::u64_log10_predictable    2,681        2,057                -624  -23.27%   x 1.30
num::int_log::u64_log10_random         1,015        806                  -209  -20.59%   x 1.26
num::int_log::u64_log10_random_small   1,004        795                  -209  -20.82%   x 1.26
num::int_log::u128_log10_predictable   56,825       56,526               -299   -0.53%   x 1.01
num::int_log::u128_log10_random        9,056        8,861                -195   -2.15%   x 1.02
num::int_log::u128_log10_random_small  1,528        1,527                  -1   -0.07%   x 1.00
```

The 128 bit case remains ridiculously slow because llvm fails to optimize division by a constant 128-bit value to multiplications. This could be worked around but it seems preferable to fix this in llvm.

From u32 up, table lookup (like suggested [here](https://github.com/rust-lang/rust/issues/70887#issuecomment-881099813)) is still faster, but requires a hardware `leading_zeros` to be viable, and might clog up the cache.
2021-10-12 03:18:54 +00:00
John Kugelman c3f0577002 Add #[must_use] to non-mutating verb methods 2021-10-11 21:21:32 -04:00
John Kugelman 01b439e764 Add #[must_use] to is_condition tests
A continuation of #89718.
2021-10-11 21:15:57 -04:00
bors 97e3b30285 Auto merge of #89791 - matthiaskrgr:rollup-1lhxh5b, r=matthiaskrgr
Rollup of 9 pull requests

Successful merges:

 - #89471 (Use Ancestory to check default fn in const impl instead of comparing idents)
 - #89643 (Fix inherent impl overlap check.)
 - #89651 (Add `Poll::ready` and revert stabilization of `task::ready!`)
 - #89675 (Re-use TypeChecker instead of passing around some of its fields )
 - #89710 (Add long explanation for error E0482)
 - #89756 (Greatly reduce amount of debuginfo compiled for bootstrap itself)
 - #89760 (Remove hack ignoring unused attributes for stage 0 std)
 - #89772 (Fix function-names test for GDB 10.1)
 - #89785 (Fix ICE when compiling nightly std/rustc on beta compiler)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2021-10-12 00:20:34 +00:00
John Kugelman 0cf84c8c19 Add #[must_use] to to_value conversions 2021-10-11 19:37:16 -04:00
John Kugelman f9692b5619 Add #[must_use] to From::from and Into::into 2021-10-11 18:10:30 -04:00
Matthias Krüger f94a325496
Rollup merge of #89785 - nbdd0121:master, r=Mark-Simulacrum
Fix ICE when compiling nightly std/rustc on beta compiler

Fix #89775

#89479 renames a lot of diagnostic items, but it happens that the beta compiler assumes that there must be DefId with `rustc_diagnostic_item = "send_trait"`, causing an ICE when compiling stage 0 std or stage 1 compiler. So gate it with `cfg(bootstrap)`.

The unwrap is also removed, so that existence of the diagnostic item is not required. I ripgreped the code base and this seems the only place where `unwrap` is called on the return value of `get_diagnostic_item`.
2021-10-11 23:45:53 +02:00
Matthias Krüger 603da7e83f
Rollup merge of #89772 - michaelwoerister:fix-function-names-test-gdb, r=Mark-Simulacrum
Fix function-names test for GDB 10.1

This PR updates the test output in `src/test/debuginfo/function-names.rs` for GDB 10.1.

This should fix issue https://github.com/rust-lang/rust/issues/89750 -- but not the underlying problem of CI ignoring tests if not viable debugger happens to be present.
2021-10-11 23:45:52 +02:00
Matthias Krüger b9311b4248
Rollup merge of #89760 - jyn514:remove-incremental-hack, r=Mark-Simulacrum
Remove hack ignoring unused attributes for stage 0 std

This seems to no longer be giving spurious errors when incremental is
enabled.

Closes https://github.com/rust-lang/rust/issues/58633.
2021-10-11 23:45:51 +02:00
Matthias Krüger 1be64f3431
Rollup merge of #89756 - jyn514:bootstrap-times, r=Mark-Simulacrum
Greatly reduce amount of debuginfo compiled for bootstrap itself

Rather than compiling rustbuild and all its dependencies with
`debuginfo=2`, this compiles dependencies without debuginfo and
rustbuild with `debuginfo=1`. On my laptop, this brings compile times
down from ~1:20 to ~1:05.

See also https://rust-lang.zulipchat.com/#narrow/stream/242791-t-infra/topic/async.20in.20bootstrap.3F/near/254847594.

r? ``@Mark-Simulacrum``
2021-10-11 23:45:51 +02:00