Commit graph

136844 commits

Author SHA1 Message Date
TennyZhuang
7ac97b69fc Add new lint partial_pub_fields
Signed-off-by: TennyZhuang <zty0826@gmail.com>
2022-10-16 16:03:50 +08:00
bors
11432fe952 Auto merge of #102080 - yanchen4791:issue-99824-fix, r=cjgillot
Fix missing explanation of where the borrowed reference is used when the same borrow occurs multiple times due to loop iterations

Fix #99824.

Problem of the issue:
If a borrow occurs in a loop, the borrowed reference could be invalidated at the same place at next iteration of the loop. When this happens, the point where the borrow occurs is the same as the intervening point that might invalidate the reference in the loop. This causes a problem for the current code finding the point where the resulting reference is used, so that the explanation of the cause will be missing. As the second point of "explain all errors in terms of three points" (see [leveraging intuition framing errors in terms of points"](https://rust-lang.github.io/rfcs/2094-nll.html#leveraging-intuition-framing-errors-in-terms-of-points), this explanation is very helpful for user to understand the error.

In the current implementation, the searching region for finding the location where the borrowed reference is used is limited to between the place where the borrow occurs and the place where the reference is invalidated. If those two places happen to be the same, which indicates that the borrow and invalidation occur at the same place in a loop, the search will fail.

One solution to the problem is when these two places are the same,  find the terminator of the loop, and then use the location of the loop terminator instead of the location of the borrow for the region to find the place where the borrowed reference is used.
2022-10-16 07:40:56 +00:00
Michael Howell
834448163d rustdoc: make help button a no-op when on help page 2022-10-15 21:45:59 -07:00
Yuki Okushi
66a2bba309
Rollup merge of #103088 - GuillaumeGomez:fix-settings-page, r=notriddle
Fix settings page

Thanks to https://github.com/rust-lang/rust/pull/103060, I discovered that the settings page was badly rendered. This PR fixes it.

Before:
![Screenshot from 2022-10-15 16-02-41](https://user-images.githubusercontent.com/3050060/195990668-42e0b16b-3146-4864-b822-6f6a80fb77a5.png)

After:
![Screenshot from 2022-10-15 16-02-31](https://user-images.githubusercontent.com/3050060/195990664-20f967df-8989-4336-bca9-be52baab8e81.png)

r? ```@notriddle```
2022-10-16 11:41:14 +09:00
Yuki Okushi
d08f4a6464
Rollup merge of #103080 - ohno418:fix-hir-pretty-print-lifetimes, r=cjgillot
pretty: fix to print some lifetimes on HIR pretty-print

HIR pretty-printer doesn't seem to print some lifetimes in types. This PR fixes that.

Closes https://github.com/rust-lang/rust/issues/85089
2022-10-16 11:41:13 +09:00
Ben Kimock
d287a0be79 Replace tags in stdout 2022-10-15 19:19:12 -04:00
Vadim Petrochenkov
f767f2297d resolve: Shadow erroneous glob imports with erroneous single imports 2022-10-16 00:10:16 +04:00
Michael Howell
65f501e10f rustdoc: add test cases for links inside the help popover 2022-10-15 12:06:16 -07:00
Michael Howell
f0371d1238 rustdoc: update test cases for .sidebar-title -> .sidebar-elems h3 2022-10-15 11:53:53 -07:00
Michael Howell
6f59981a7a rustdoc: fix Ctrl-Click on help and settings links 2022-10-15 11:45:27 -07:00
Michael Howell
ae4ad9adb6 rustdoc: make the help button a link to a page
This allows you to open the help section in a new browser tab, which is a
pretty reasonable thing to want for a documentation page.
2022-10-15 11:38:42 -07:00
Michael Howell
e9b2922804 rustdoc: remove unused HTML class sidebar-title
Since 6a5f8b1aef, this class is no
longer styled.
2022-10-15 11:24:49 -07:00
Michael Goulet
cb20758257 Add test 2022-10-15 17:46:04 +00:00
Michael Goulet
c1aa9bf849 Fix subst issues with RPITIT 2022-10-15 17:46:03 +00:00
Camille GILLOT
16e22e143d Mark derived StructuralEq as automatically derived. 2022-10-15 15:16:32 +00:00
Yutaro Ohno
7334526c38 pretty: fix to print some lifetimes on HIR pretty-print 2022-10-15 23:34:21 +09:00
Guillaume Gomez
11a40ec5ff Add more GUI tests for settings page 2022-10-15 15:59:11 +02:00
Guillaume Gomez
e14d2efba3 Fix display of settings page 2022-10-15 15:59:00 +02:00
bors
c93ef33700 Auto merge of #103083 - Dylan-DPC:rollup-97cvwdv, r=Dylan-DPC
Rollup of 6 pull requests

Successful merges:

 - #102773 (Use semaphores for thread parking on Apple platforms)
 - #102884 (resolve: Some cleanup, asserts and tests for lifetime ribs)
 - #102954 (Add missing checks for `doc(cfg_hide(...))`)
 - #102998 (Drop temporaries created in a condition, even if it's a let chain)
 - #103003 (Fix `suggest_floating_point_literal` ICE)
 - #103041 (Update cargo)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-10-15 10:45:36 +00:00
Dylan DPC
ac23c9fde9
Rollup merge of #103041 - weihanglo:update-cargo, r=ehuss
Update cargo

12 commits in b8f30cb23c4e5f20854a4f683325782b7cff9837..b332991a57c9d055f1864de1eed93e2178d49440 2022-10-10 19:16:06 +0000 to 2022-10-13 22:05:28 +0000
- Differentiate the warning when an alias (built-in or user-defined) shadows an external subcommand (rust-lang/cargo#11170)
- chore: Update tests for latest clap (rust-lang/cargo#11235)
- feat(publish): Support 'publish.timeout' config behind '-Zpublish-timeout' (rust-lang/cargo#11230)
- Add missing edition (rust-lang/cargo#11231)
- doc(profiles): add module level doc (rust-lang/cargo#11219)
- refactor(publish): Clarify which SourceId is being used (rust-lang/cargo#11216)
- Add new SourceKind::SparseRegistry to differentiate sparse registries (rust-lang/cargo#11209)
- Fix deadlock when build scripts are waiting for input on stdin (rust-lang/cargo#11205)
- refactor: New variant `FeaturesFor::ArtifactDep` (rust-lang/cargo#11184)
- Fix rustdoc warning about unclosed HTML tag (rust-lang/cargo#11221)
- refactor(tests): Prepare for wait-for-publish test changes (rust-lang/cargo#11210)
- Add configuration option for controlling crates.io protocol (rust-lang/cargo#11215)
2022-10-15 15:45:33 +05:30
Dylan DPC
65dca11514
Rollup merge of #103003 - TaKO8Ki:fix-102989, r=compiler-errors
Fix `suggest_floating_point_literal` ICE

Fixes #102989
2022-10-15 15:45:33 +05:30
Dylan DPC
b79ad57ad7
Rollup merge of #102998 - nathanwhit:let-chains-drop-order, r=eholk
Drop temporaries created in a condition, even if it's a let chain

Fixes #100513.

During the lowering from AST to HIR we wrap expressions acting as conditions in a `DropTemps` expression so that any temporaries created in the condition are dropped after the condition is executed. Effectively this means we transform

```rust
if Some(1).is_some() { .. }
```

into (roughly)

```rust
if { let _t = Some(1).is_some(); _t } { .. }
```

so that if we create any temporaries, they're lifted into the new scope surrounding the condition, so for example something along the lines of

```rust
if { let temp = Some(1); let _t = temp.is_some(); _t }.
```

Before this PR, if the condition contained any let expressions we would not introduce that new scope, instead leaving the condition alone. This meant that in a let-chain like

```rust
if get_drop("first").is_some() && let None = get_drop("last") {
        println!("second");
} else { .. }
```

the temporary created for `get_drop("first")` would be lifted into the _surrounding block_, which caused it to be dropped after the execution of the entire `if` expression.

After this PR, we wrap everything but the `let` expression in terminating scopes. The upside to this solution is that it's minimally invasive, but the downside is that in the worst case, an expression with `let` exprs interspersed like

```rust
if get_drop("first").is_some()
    && let Some(_a) = get_drop("fifth")
    && get_drop("second").is_some()
    && let Some(_b) = get_drop("fourth") { .. }
```

gets _multiple_ new scopes, roughly

```rust
if { let _t = get_drop("first").is_some(); _t }
    && let Some(_a) = get_drop("fifth")
    && { let _t = get_drop("second").is_some(); _t }
    && let Some(_b) = get_drop("fourth") { .. }
```

so instead of all of the temporaries being dropped at the end of the entire condition, they will be dropped right after they're evaluated (before the subsequent `let` expr). So while I'd say the drop behavior around let-chains is _less_ surprising after this PR, it still might not exactly match what people might expect.

For tests, I've just extended the drop order tests added in #100526. I'm not sure if that's the best way to go about it, though, so suggestions are welcome.
2022-10-15 15:45:32 +05:30
Dylan DPC
59e0af68ab
Rollup merge of #102954 - GuillaumeGomez:cfg-hide-attr-checks, r=Manishearth
Add missing checks for `doc(cfg_hide(...))`

Part of  #43781.

The `doc(cfg_hide(...))` attribute can only be used at the crate level and takes a list of attributes as argument.

r? ```@Manishearth```
2022-10-15 15:45:32 +05:30
Dylan DPC
39ff2a60d6
Rollup merge of #102884 - petrochenkov:liferib, r=cjgillot
resolve: Some cleanup, asserts and tests for lifetime ribs

Follow up to https://github.com/rust-lang/rust/pull/98279 and friends.
r? ``@cjgillot``
2022-10-15 15:45:31 +05:30
bors
b15e2c129e Auto merge of #101832 - compiler-errors:dyn-star-plus, r=eholk
Make `dyn*` casts into a coercion, allow `dyn*` upcasting

I know that `dyn*` is likely not going to be a feature exposed to surface Rust, but this makes it slightly more ergonomic to write tests for these types anyways. ... and this was just fun to implement anyways.

1. Make `dyn*` into a coercion instead of a cast
2. Enable `dyn*` upcasting since we basically get it for free
3. Simplify some of the cast checking code since we're using the coercion path now

r? `@eholk` but feel free to reassign
cc `@nikomatsakis` and `@tmandry` who might care about making `dyn*` casts into a coercion
2022-10-15 07:36:38 +00:00
bors
46244f335b Auto merge of #99292 - Aaron1011:stability-use-tree, r=cjgillot
Correctly handle path stability for 'use tree' items

PR #95956 started checking the stability of path segments.
However, this was not applied to 'use tree' items
(e.g. 'use some::path::{ItemOne, ItemTwo}') due to the way
that we desugar these items in HIR lowering.

This PR modifies 'use tree' lowering to preserve resolution
information, which is needed by stability checking.
2022-10-15 04:27:15 +00:00
Ben Kimock
26186d7ff2 Add a test 2022-10-14 20:04:27 -04:00
Ben Kimock
79cd6f38f3 Implement a crude stack printing mechanism 2022-10-14 19:36:33 -04:00
Wesley Wiser
34d90a46da Fix line numbers for MIR inlined code
`should_collapse_debuginfo` detects if the specified span is part of a
macro expansion however it does this by checking if the span is anything
other than a normal (non-expanded) kind, then the span sequence is
walked backwards to the root span.

This doesn't work when the MIR inliner inlines code as it creates spans
with expansion information set to `ExprKind::Inlined` and results in the
line number being attributed to the inline callsite rather than the
normal line number of the inlined code.
2022-10-14 18:44:30 -04:00
Matthias Krüger
a96f1a8a1e
Rollup merge of #103067 - Nilstrieb:tidy-likes-the-alphabet, r=jackh726
More alphabetical sorting

Sort and enforce a few more things. The biggest change here is sorting all target features.
2022-10-14 23:43:46 +02:00
Matthias Krüger
62a9c32848
Rollup merge of #103054 - GuillaumeGomez:cleanup-rust-logo-test, r=notriddle
Clean up rust-logo rustdoc GUI test

r? `@notriddle`
2022-10-14 23:43:45 +02:00
Matthias Krüger
fa1279fbb5
Rollup merge of #103047 - GuillaumeGomez:update-browser-ui-test, r=notriddle
Update browser-ui-test version to fix some flaky tests

Part of #93784.

It should fix the new spurious failure found in https://github.com/rust-lang/rust/pull/102744.

r? ``@notriddle``
2022-10-14 23:43:45 +02:00
Matthias Krüger
9f22530bae
Rollup merge of #103039 - RalfJung:checktools, r=Dylan-DPC
checktools: fix comments

This bothers me each time I see it, time to fix it. ;)
r? ```@Mark-Simulacrum```
2022-10-14 23:43:44 +02:00
Matthias Krüger
f72d76df5a
Rollup merge of #102092 - kxxt:patch-1, r=joshtriplett
refactor: use grep -E/-F instead of fgrep/egrep

`egrep` and `fgrep` are obsolescent now. This PR updates  all `egrep` and `fgrep` commands to `grep -E` and `grep -F`.

Running egrep/fgrep command with grep v3.8 will output the following warning to stderr:

```
egrep: warning: egrep is obsolescent; using grep -E
```

- https://www.phoronix.com/news/GNU-Grep-3.8-Stop-egrep-fgrep
- https://lists.gnu.org/archive/html/info-gnu/2022-09/msg00001.html
2022-10-14 23:43:42 +02:00
nils
1b8012fa10
Also run alphabetical check in src and library 2022-10-14 22:00:44 +02:00
nils
3c0062641d
Add some tidy-alphabetical 2022-10-14 21:18:03 +02:00
Wesley Wiser
9363a1401e Add test case for MIR inlining debuginfo line numbers 2022-10-14 14:09:30 -04:00
Takayuki Maeda
062ea9ce4d remove no_core feature 2022-10-15 02:45:11 +09:00
bors
5819f419a7 Auto merge of #102783 - RalfJung:tls, r=thomcc
sync thread_local key conditions exactly with what the macro uses

This makes the `cfg` in `mod.rs` syntactically the same as those in `local.rs`.

I don't think this should actually change anything, but seems better to be consistent?
I looked into this due to https://github.com/rust-lang/rust/issues/102549, but this PR would make it *less* likely that `__OsLocalKeyInner` is going to get provided, so this cannot help with that issue.

r? `@thomcc`
2022-10-14 16:43:46 +00:00
Josh Stone
6c49e9ed03 Upgrade dist-mips*-linux to ubuntu:22.04 + crosstool-ng
These have no change in compatibility, still Linux 4.4 and glibc 2.23.
2022-10-14 08:57:52 -07:00
Guillaume Gomez
9787321841 Clean up rust-logo rustdoc GUI test 2022-10-14 14:55:11 +02:00
bors
afca9dc684 Auto merge of #2594 - RalfJung:target, r=RalfJung
print the target also when running tests on the host

That makes errors a bit easier to analyze.
2022-10-14 11:15:36 +00:00
Dylan DPC
7cf09c57a2
Rollup merge of #103031 - est31:match_guard_irrefutable_let, r=oli-obk
Suppress irrefutable let patterns lint for prefixes in match guards

In match guards, irrefutable prefixes might use the bindings created by the match pattern. Ideally, we check for this, but we can do the next best thing and just not lint for irrefutable prefixes in match guards.

Fixes #98361
2022-10-14 16:19:16 +05:30
Dylan DPC
587b9c1a97
Rollup merge of #103025 - notriddle:notriddle/search-container-star, r=GuillaumeGomez
rustdoc: remove unused CSS `.search-container > *`

The two items it was really intended to target were the buttons, and those both need to have the style set directly on them anyway because the buttons are both child elements of wrappers.

6b3ede3f7b/src/librustdoc/html/static/css/rustdoc.css (L1406-L1411)
2022-10-14 16:19:16 +05:30
Dylan DPC
77064b7f0a
Rollup merge of #103018 - Rageking8:more-dupe-word-typos, r=TaKO8Ki
More dupe word typos

I only picked those changes (from the regex search) that I am pretty certain doesn't change meaning and is just a typo fix. Do correct me if any fix is undesirable and I can revert those. Thanks.
2022-10-14 16:19:15 +05:30
Dylan DPC
3017341dae
Rollup merge of #102938 - c410-f3r:here-we-go-again, r=petrochenkov
Move some tests to more reasonable directories

r? ``@petrochenkov``
2022-10-14 16:19:13 +05:30
Dylan DPC
20e1268d25
Rollup merge of #102914 - GuillaumeGomez:migrate-css-highlight-without-change, r=notriddle
Migrate css highlight without change

This is a "previous" version of https://github.com/rust-lang/rust/pull/102663: only migrating to CSS variables, no changes. It's a bit more verbose because rules are not coherent between themes.

r? ``@notriddle``
2022-10-14 16:19:13 +05:30
Dylan DPC
b4906acbce
Rollup merge of #102856 - cjgillot:impl-single-check, r=petrochenkov
Only test duplicate inherent impl items in a single place

Based on https://github.com/rust-lang/rust/pull/100387

r? ``@petrochenkov``
2022-10-14 16:19:12 +05:30
Guillaume Gomez
0313fbe5a9 Update browser-ui-test version to fix some flaky tests 2022-10-14 12:47:20 +02:00
Guillaume Gomez
6f0c2470db Add UI test for invalid doc(cfg_hide(...)) attributes 2022-10-14 11:29:54 +02:00