Commit graph

168815 commits

Author SHA1 Message Date
bors f26f117d61 Auto merge of #8852 - Alexendoo:indirect-disallowed-methods, r=Manishearth
Lint indirect usages in `disallowed_methods`

Fixes #8849

changelog: Lint indirect usages in [`disallowed_methods`]
2022-05-20 20:50:01 +00:00
bors e6a4afc3af Auto merge of #95418 - cjgillot:more-disk, r=davidtwco
Cache more queries on disk

One of the principles of incremental compilation is to allow saving results on disk to avoid recomputing them.
This PR investigates persisting a lot of queries whose result are to be saved into metadata.
Some of the queries are cheap reads from HIR, but we may also want to get rid of these reads for incremental lowering.
2022-05-20 20:49:55 +00:00
Tshepang Lekhonkhobe bb8a1205c6 typo 2022-05-20 22:02:20 +02:00
Niko Matsakis bf21a81b15
Update compiler/rustc_typeck/src/check/generator_interior/drop_ranges/record_consumed_borrow.rs 2022-05-20 15:54:22 -04:00
Jon Gjengset 88126034a4
Omit stdarch workspace from rust-src
The path `library/stdarch/crates/Cargo.toml` does not exist.

This was introduced in #94907.
2022-05-20 12:25:05 -07:00
xFrednet 8283238973
Update clippy version 0.1.62 -> 0.1.63 2022-05-20 21:12:41 +02:00
xFrednet 5b72632c98
move to sus and fix dogfood 2022-05-20 21:03:24 +02:00
xFrednet 4e6cf0036e
Merge remote-tracking branch 'upstream/master' into rustup 2022-05-20 20:47:31 +02:00
Guillaume Gomez 116c5a25e7 Add eslint key-spacing check 2022-05-20 20:27:35 +02:00
Guillaume Gomez b036fd378b Add eslint arrow-spacing check 2022-05-20 20:27:34 +02:00
bors 536020c5f9 Auto merge of #97224 - matthiaskrgr:rollup-it5nw68, r=matthiaskrgr
Rollup of 7 pull requests

Successful merges:

 - #97109 (Fix misleading `cannot infer type for type parameter` error)
 - #97187 (Reverse condition in Vec::retain_mut doctest)
 - #97201 (Fix typo)
 - #97203 (Minor tweaks to rustc book summary formatting.)
 - #97208 (Do not emit the lint `unused_attributes` for *inherent* `#[doc(hidden)]` associated items)
 - #97215 (Add complexity estimation of iterating over HashSet and HashMap)
 - #97220 (Add regression test for#81827)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-05-20 18:21:26 +00:00
Josh Stone 83abb7c18f Fix Display for cell::{Ref,RefMut}
These guards changed to pointers in #97027, but their `Display` was
formatting that field directly, which made it show the raw pointer
value. Now we go through `Deref` to display the real value again.
2022-05-20 11:16:30 -07:00
Matthias Krüger 6c0c7f1787
Rollup merge of #97220 - JohnTitor:issue-81827, r=compiler-errors
Add regression test for#81827

Closes #81827
r? `@compiler-errors`
2022-05-20 19:54:45 +02:00
Matthias Krüger ac634bc811
Rollup merge of #97215 - AngelicosPhosphoros:add_hashtable_iteration_complexity_note, r=thomcc
Add complexity estimation of iterating over HashSet and HashMap

It is not obvious (at least for me) that complexity of iteration over hash tables depends on capacity and not length. Especially comparing with other containers like Vec or String. I think, this behaviour is worth mentioning.

I run benchmark which tests iteration time for maps with length 50 and different capacities and get this results:
```
capacity - time
64       - 203.87 ns
256      - 351.78 ns
1024     - 607.87 ns
4096     - 965.82 ns
16384    - 3.1188 us
```

If you want to dig why it behaves such way, you can look current implementation in [hashbrown code](f3a9f211d0/src/raw/mod.rs (L1933)).

Benchmarks code would be presented in PR related to this commit.
2022-05-20 19:54:44 +02:00
Matthias Krüger 2941434d1b
Rollup merge of #97208 - fmease:fix-issue-97205, r=oli-obk
Do not emit the lint `unused_attributes` for *inherent* `#[doc(hidden)]` associated items

Fixes #97205 (embarrassing oversight from #96008).

`@rustbot` label A-lint
2022-05-20 19:54:43 +02:00
Matthias Krüger 7c46bb60d1
Rollup merge of #97203 - ehuss:rustc-summary-formatting, r=Dylan-DPC
Minor tweaks to rustc book summary formatting.

This includes a few minor tweaks to the summary/titles of chapters for the rustc book:

* Use a consistent chapter capitalization and hyphenation.
* Move "Codegen Options" underneath "Command-line Arguments". I feel like they are two closely related chapters, where codegen is just a subset of the total arguments.
* Move "Target Tier Policy" underneath "Platform Support". That chapter includes that policy for platform support, and thus I feel it is more closely related to that grouping.
2022-05-20 19:54:42 +02:00
Matthias Krüger 35986cd1fb
Rollup merge of #97201 - ydah:fix_spelling, r=GuillaumeGomez
Fix typo

This PR is fixes typo "avaiable" to "available".
2022-05-20 19:54:41 +02:00
Matthias Krüger daf4f34fe3
Rollup merge of #97187 - ajtribick:patch-1, r=thomcc
Reverse condition in Vec::retain_mut doctest

I find that the doctest for `Vec::retain_mut` is easier to read and understand when the `if` block corresponds to the path that returns `true` and the `else` block returns `false`. Having the `if` block be the `false` path led me to stare at the example for somewhat longer than I probably had to.
2022-05-20 19:54:40 +02:00
Matthias Krüger 76f662c963
Rollup merge of #97109 - TaKO8Ki:fix-misleading-cannot-infer-type-for-type-parameter-error, r=oli-obk
Fix misleading `cannot infer type for type parameter` error

closes #93198
2022-05-20 19:54:39 +02:00
Camille GILLOT cd90406090 Remove quadratic behaviour from -Zunpretty=hir-tree. 2022-05-20 19:34:31 +02:00
Yuki Okushi eab9240627
Add regression test for #81827 2022-05-21 02:17:29 +09:00
AngelicosPhosphoros de97d7393f Add complexity estimation of iterating over HashSet and HashMap
It is not obvious (at least for me) that complexity of iteration over hash tables depends on capacity and not length. Especially comparing with other containers like Vec or String. I think, this behaviour is worth mentioning.

I run benchmark which tests iteration time for maps with length 50 and different capacities and get this results:
```
capacity - time
64       - 203.87 ns
256      - 351.78 ns
1024     - 607.87 ns
4096     - 965.82 ns
16384    - 3.1188 us
```

If you want to dig why it behaves such way, you can look current implementation in [hashbrown code](f3a9f211d0/src/raw/mod.rs (L1933)).

Benchmarks code would be presented in PR related to this commit.
2022-05-20 18:46:24 +03:00
bors b5caa5a842 Auto merge of #96833 - cjgillot:ast-lifetimes-single, r=petrochenkov
Lint single-use lifetimes during AST resolution

This PR rewrites `single_use_lifetime` and `unused_lifetime` lints to be based on the AST.
We have more information at our disposal, so we can reduce the amount of false positives.

Remaining false positive: single-use lifetimes in argument-position impl-trait.
I'm waiting for https://github.com/rust-lang/rust/issues/96529 to be fixed to have a clean and proper solution here.

Closes https://github.com/rust-lang/rust/issues/54079
Closes https://github.com/rust-lang/rust/issues/55057
Closes https://github.com/rust-lang/rust/issues/55058
Closes https://github.com/rust-lang/rust/issues/60554
Closes https://github.com/rust-lang/rust/issues/69952

r? `@petrochenkov`
2022-05-20 15:40:33 +00:00
Ralf Jung 31c3c04498 make ptr::invalid not the same as a regular int2ptr cast 2022-05-20 17:16:41 +02:00
Takayuki Maeda 3d0f9fb544 report ambiguous type parameters when their parents are impl or fn
fix ci error

emit err for `impl_item`
2022-05-20 23:04:44 +09:00
Caio d917112606 Stabilize core::array::from_fn 2022-05-20 11:04:13 -03:00
Caio 2550069ab3 Move tests 2022-05-20 10:53:58 -03:00
bors 22ee39504a Auto merge of #97211 - GuillaumeGomez:rollup-jul7x7e, r=GuillaumeGomez
Rollup of 6 pull requests

Successful merges:

 - #96565 (rustdoc: show implementations on `#[fundamental]` wrappers)
 - #97179 (Add new lint to enforce whitespace after keywords)
 - #97185 (interpret/validity: separately control checking numbers for being init and non-ptr)
 - #97188 (Remove unneeded null pointer asserts in ptr2int casts)
 - #97189 (Update .mailmap)
 - #97192 (Say "last" instead of "rightmost" in the documentation for `std::str:rfind`)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-05-20 13:18:37 +00:00
Alex Macleod 5730fd49fa Lint indirect usages in disallowed_methods 2022-05-20 12:39:15 +00:00
Guillaume Gomez 9b25cc0543
Rollup merge of #97192 - sunfishcode:sunfishcode/rightmost, r=thomcc
Say "last" instead of "rightmost" in the documentation for `std::str:rfind`

In the documentation comment for `std::str::rfind`, say "last" instead
of "rightmost" to describe the match that `rfind` finds. This follows the
spirit of #30459, for which `trim_left` and `trim_right` were replaced by
`trim_start` and `trim_end` to be more clear about how they work on
text which is displayed right-to-left.
2022-05-20 14:03:06 +02:00
Guillaume Gomez 474e12b201
Rollup merge of #97189 - pvdrz:patch-1, r=Mark-Simulacrum
Update .mailmap
2022-05-20 14:03:05 +02:00
Guillaume Gomez 9098f05b26
Rollup merge of #97188 - carbotaniuman:remove-null-assert, r=RalfJung
Remove unneeded null pointer asserts in ptr2int casts

This removes an assert that a pointer with address 0 has no provenance. This change is needed to support permissive provenance work in Miri, and seems justified by `ptr.with_addr(0)` working and a discussion on Zulip regarding LLVM semantics.

r? `@RalfJung`
2022-05-20 14:03:04 +02:00
Guillaume Gomez 706aa59efa
Rollup merge of #97185 - RalfJung:number-validity, r=oli-obk
interpret/validity: separately control checking numbers for being init and non-ptr

This lets Miri control this in a more fine-grained way.

r? `@oli-obk`
2022-05-20 14:03:03 +02:00
Guillaume Gomez 62569edcbd
Rollup merge of #97179 - GuillaumeGomez:eslint-lint, r=notriddle
Add new lint to enforce whitespace after keywords

r? `@notriddle`
2022-05-20 14:03:02 +02:00
Guillaume Gomez afcf099e30
Rollup merge of #96565 - notriddle:notriddle/impl-box, r=camelid
rustdoc: show implementations on `#[fundamental]` wrappers

Fixes #92940
2022-05-20 14:03:01 +02:00
bors 512a328e2f Auto merge of #95309 - lcnr:dropck-cleanup, r=nikomatsakis
rewrite `ensure_drop_params_and_item_params_correspond`

actually relating types here seems like it's overkill
2022-05-20 10:37:48 +00:00
Camille GILLOT 563916d698 Lint single-use-lifetimes on the AST. 2022-05-20 12:26:37 +02:00
Camille GILLOT db8a9274a9 Introduce BareFnTy::decl_span and fix generics span. 2022-05-20 12:26:37 +02:00
Camille GILLOT 5953c57f27 Introduce LifetimeCtxt. 2022-05-20 12:25:05 +02:00
lcnr 4a82bc9ea0 bool to custom enum 2022-05-20 11:50:07 +02:00
lcnr ced65022da update error message 2022-05-20 11:50:07 +02:00
lcnr 4fcf43f67c update comments 2022-05-20 11:49:29 +02:00
lcnr 5ac973426e rewrite ensure_drop_params_and_item_params_correspond 2022-05-20 11:49:29 +02:00
lcnr f3f68324cc move unique param check into rustc_middle 2022-05-20 11:27:06 +02:00
León Orell Valerian Liehr e7252739cd Do not warn on inherent doc(hidden) assoc items 2022-05-20 10:19:23 +02:00
bors cd73afadae Auto merge of #96422 - tmccombs:mutex-unpoison, r=m-ou-se
Add functions to un-poison Mutex and RwLock

See discussion at https://internals.rust-lang.org/t/unpoisoning-a-mutex/16521/3
2022-05-20 08:06:56 +00:00
Thayne McCombs a65afd82d1 Remove references to guards in documentation for clear_poison 2022-05-20 00:15:26 -06:00
bors 52cc779524 Auto merge of #97147 - Mark-Simulacrum:stage0-bump, r=pietroalbini
stage0 bootstrap bump

r? `@pietroalbini`
2022-05-20 05:44:52 +00:00
bors f24ef2e296 Auto merge of #97029 - eholk:drop-tracking-yielding-in-match-guard, r=nikomatsakis
generator_interior: Count match pattern bindings as borrowed for the whole guard expression

The test case `yielding-in-match-guard.rs` was failing with `-Zdrop-tracking` enabled. The reason is that the copy of a local (`y`) was not counted as a borrow in typeck, while MIR did consider this as borrowed.

The correct thing to do here is to count pattern bindings are borrowed for the whole guard. Instead, what we were doing is to record the type at the use site of the variable and check if the variable comes from a borrowed pattern. Due to the fix for #57017, we were considering too small of a scope for this variable, which meant it was not counted as borrowed.

Because we now unconditionally record the borrow, rather than only for bindings that are used, this PR is also able to remove a lot of the logic around match bindings that was there before.

r? `@nikomatsakis`
2022-05-20 03:27:01 +00:00
Eric Huss 6eb41178c4 Minor tweaks to rustc book summary formatting. 2022-05-19 19:08:53 -07:00