Commit graph

136844 commits

Author SHA1 Message Date
Dylan DPC
32dde232d8
Rollup merge of #102559 - compiler-errors:issue-102553, r=oli-obk
Don't ICE when trying to copy unsized value in const prop

When we have a trivially false where-clause predicate like `Self: Sized` where `Self = dyn Trait`, we sometimes don't throw an error during typeck for an illegal operation such as copying an unsized type.

This, unfortunately, cannot be made into an error (at least not without some migration -- see #95611 for example), but we should at least not ICE, since this function will never actually be reachable from main, for example.

r? `@RalfJung` since I think you added these assertions? but feel free to reassign.

Fixes #102553
2022-10-04 16:11:02 +05:30
Dylan DPC
d89d21412b
Rollup merge of #102489 - compiler-errors:issue-102074, r=oli-obk
Normalize substs before resolving instance in `NoopMethodCall` lint

Fixes #102074

r? types
2022-10-04 16:11:01 +05:30
yukang
5dd44d4d4c fix #102396, suggest parentheses for possible range methods 2022-10-04 17:30:52 +08:00
Oli Scherer
c72c6e01c8 Merge the ~const and impl const checks and add some explanatory notes 2022-10-04 08:59:20 +00:00
Rageking8
ee691e02c3 add test for #102605 2022-10-04 16:15:09 +08:00
Oli Scherer
33bcea8f61 Only allow ~const bounds for traits with #[const_trait] 2022-10-04 08:06:54 +00:00
bors
f1112099eb Auto merge of #102644 - matthiaskrgr:rollup-rg0sw41, r=matthiaskrgr
Rollup of 7 pull requests

Successful merges:

 - #102441 (Suggest unwrap_or_else when a closure is given)
 - #102547 (Migrate CSS theme for search results)
 - #102567 (Delay evaluating lint primary message until after it would be suppressed)
 - #102624 (rustdoc: remove font family CSS on `.rustdoc-toggle summary::before`)
 - #102628 (Change the parameter name of From::from to `value`)
 - #102637 (Ignore fuchsia on two compiler tests)
 - #102639 (Improve spans when splitting multi-char operator tokens for proc macros.)

Failed merges:

 - #102496 (Suggest `.into()` when all other coercion suggestions fail)

r? `@ghost`
`@rustbot` modify labels: rollup
2022-10-04 06:47:21 +00:00
Matthias Krüger
185ca0f181
Rollup merge of #102639 - nnethercote:improve-spans-splitting, r=Aaron1011
Improve spans when splitting multi-char operator tokens for proc macros.

When a two-char (or three-char) operator token is split into single-char operator tokens before being passed to a proc macro, the single-char tokens are given the original span of length two (or three). This PR gives them more accurate spans.

r? `@Aaron1011`
cc `@petrochenkov`
2022-10-04 06:14:13 +02:00
Matthias Krüger
f86ee786a5
Rollup merge of #102637 - andrewpollack:ignore-fuchsia-two-tests, r=tmandry
Ignore fuchsia on two compiler tests

Adding `ignore-fuchsia` to two irrelevant compiler tests

cc. `@djkoloski`

r? `@tmandry`
2022-10-04 06:14:12 +02:00
Matthias Krüger
cdb114ea82
Rollup merge of #102624 - notriddle:notriddle/summary-before, r=GuillaumeGomez
rustdoc: remove font family CSS on `.rustdoc-toggle summary::before`

This rule became irrelevant since c58246efe4 made it so that the `summary::before` pseudo-element contains an SVG instead of text.
2022-10-04 06:14:11 +02:00
Matthias Krüger
8a0fda2ec1
Rollup merge of #102567 - compiler-errors:issue-102561, r=davidtwco
Delay evaluating lint primary message until after it would be suppressed

Fixes #102561
Fixes #102572
2022-10-04 06:14:11 +02:00
Matthias Krüger
f33343632e
Rollup merge of #102547 - GuillaumeGomez:migrate-css-theme-search-result, r=notriddle,jsha
Migrate CSS theme for search results

Part of https://github.com/rust-lang/rust/pull/98460.

Just like https://github.com/rust-lang/rust/pull/102237, I unified theme to how the `ayu` handles this one: only one color for the background when search results are focused or hovered.

You can test it [here](https://rustdoc.crud.net/imperio/migrate-css-theme-search-result/lib2/index.html?search=coo).

cc `@jsha`
r? `@notriddle`

PS: The repetition in GUI tests is getting out of hand so I opened https://github.com/GuillaumeGomez/browser-UI-test/issues/363 to think about adding possibility to declare functions so we can greatly improve this.
2022-10-04 06:14:10 +02:00
Matthias Krüger
a2126e752f
Rollup merge of #102441 - chenyukang:fix-102320-unwrap_or_else, r=compiler-errors
Suggest unwrap_or_else when a closure is given

Fixes #102320

r? `@compiler-errors`
2022-10-04 06:14:10 +02:00
bors
d9f8b4b985 Auto merge of #102395 - davidtwco:translation-rename-typeck, r=compiler-errors
errors: rename `typeck.ftl` to `hir_analysis.ftl`

In #102306, `rustc_typeck` was renamed to `rustc_hir_analysis` but the diagnostic resources were not renamed - which is what this pull request changes.
2022-10-04 03:57:50 +00:00
Michael Goulet
e1b313af46 We are able to resolve methods even if they need subst 2022-10-04 03:29:19 +00:00
yukang
60b39ba9a5 use ci-rustc-sysroot for sysroot when download_rustc 2022-10-04 11:25:42 +08:00
Michael Goulet
8c600120e6 Normalize substs before resolving instance in NoopMethodCall lint 2022-10-04 03:20:49 +00:00
Nicholas Nethercote
88dab8d9b3 Improve spans when splitting multi-char operator tokens for proc macros. 2022-10-04 09:08:02 +11:00
Guillaume Gomez
b8a63a61b8 Extend GUI test to check hover and focus on search results 2022-10-03 23:15:38 +02:00
Guillaume Gomez
4ae58d602e Migrate search results theme style to CSS variables 2022-10-03 23:15:37 +02:00
Andrew Pollack
8a103f548a Ignore fuchsia on two compiler tests 2022-10-03 21:11:47 +00:00
bors
f83e0266cf Auto merge of #102632 - matthiaskrgr:rollup-h8s3zmo, r=matthiaskrgr
Rollup of 7 pull requests

Successful merges:

 - #98218 (Document the conditional existence of `alloc::sync` and `alloc::task`.)
 - #99216 (docs: be less harsh in wording for Vec::from_raw_parts)
 - #99460 (docs: Improve AsRef / AsMut docs on blanket impls)
 - #100470 (Tweak `FpCategory` example order.)
 - #101040 (Fix `#[derive(Default)]` on a generic `#[default]` enum adding unnecessary `Default` bounds)
 - #101308 (introduce `{char, u8}::is_ascii_octdigit`)
 - #102486 (Add diagnostic struct for const eval error in `rustc_middle`)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-10-03 20:22:18 +00:00
Nilstrieb
1456f73bb4
Fix rustdoc ICE in invalid_rust_codeblocks lint
The diagnostic message extraction code didn't handle translations yet.
2022-10-03 21:35:23 +02:00
Matthias Krüger
df11395a55
Rollup merge of #101040 - danielhenrymantilla:no-bounds-for-default-annotated-derive, r=joshtriplett
Fix `#[derive(Default)]` on a generic `#[default]` enum adding unnecessary `Default` bounds

That is, given something like:

```rs
// #[default] on a generic enum does not add `Default` bounds to the type params.
#[derive(Default)]
enum MyOption<T> {
    #[default]
    None,
    Some(T),
}
```

then `MyOption<T> : Default`_as currently implemented_ only holds when `T : Default`, as reported by ```@5225225``` [over Zulip](https://rust-lang.zulipchat.com/#narrow/stream/122651-general/topic/.23.5Bderive.28Default.29.5D.20for.20enums.20with.20fields).

This is contrary to [what the accepted RFC proposes](https://rust-lang.github.io/rfcs/3107-derive-default-enum.html#generated-bounds) (_i.e._, that `T` be allowed not to be itself `Default`), and indeed seems to be a rather unnecessary limitation.
2022-10-03 20:58:55 +02:00
Alex Saveau
86974b83af
Reduce CString allocations in std as much as possible
Signed-off-by: Alex Saveau <saveau.alexandre@gmail.com>
2022-10-03 11:13:17 -07:00
Matthias Krüger
d32921340c
Rollup merge of #102620 - GuillaumeGomez:css-stab-migration, r=notriddle
Migrate `.stab` elements style to CSS variables

Part of https://github.com/rust-lang/rust/pull/98460.

There should be no UI changes.

r? `@notriddle`
2022-10-03 19:12:20 +02:00
Matthias Krüger
aa076d6144
Rollup merge of #102613 - TaKO8Ki:fix-part-of-101739, r=compiler-errors
Fix ICE #101739

Fixes a part of #101739

This cannot cover the following case. It causes `too many args provided` error and obligation does not have references error. I want your advice to solve the following cases as well in this pull request or a follow-up.

```rust
#![crate_type = "lib"]
#![feature(transmutability)]
#![allow(dead_code, incomplete_features, non_camel_case_types)]

mod assert {
    use std::mem::BikeshedIntrinsicFrom;

    pub fn is_transmutable<
        Src,
        Dst,
        Context,
        const ASSUME_ALIGNMENT: bool,
        const ASSUME_LIFETIMES: bool,
        const ASSUME_VALIDITY: bool,
        const ASSUME_VISIBILITY: bool,
    >()
    where
        Dst: BikeshedIntrinsicFrom<
            Src,
            Context,
            ASSUME_ALIGNMENT,
            ASSUME_LIFETIMES,
            ASSUME_VALIDITY,
            ASSUME_VISIBILITY,
        >,
    {}
}

fn via_const() {
    struct Context;
    #[repr(C)] struct Src;
    #[repr(C)] struct Dst;

    const FALSE: bool = false;

    assert::is_transmutable::<Src, Dst, Context, FALSE, FALSE, FALSE, FALSE>();
}
```
2022-10-03 19:12:19 +02:00
Matthias Krüger
8ede2340b7
Rollup merge of #102597 - compiler-errors:issue-102571, r=davidtwco
Avoid ICE in printing RPITIT type

Fixes #102571
2022-10-03 19:12:18 +02:00
Matthias Krüger
2e7e17a84a
Rollup merge of #102439 - fmease:rustdoc-simplify-cross-crate-trait-bounds, r=GuillaumeGomez
rustdoc: re-sugar more cross-crate trait bounds

Previously, we would only ever re-sugar cross-crate predicates like `Type: Trait, <Type as Trait>::Name == Rhs` to `Type: Trait<Name = Rhs>` if the `Type` was a generic parameter like `Self` or `T`. With this PR, `Type` can be any type.

Most notably, this means that we now re-sugar predicates involving associated types (where `Type` is of the form `Self::Name`) which are then picked up by the pre-existing logic that re-sugars them into bounds. As a result of that, the associated type `IntoIter` of `std`'s `IntoIterator` trait (re-exported from `core`) is no longer rendered as:

```rust
type IntoIter: Iterator
where
    <Self::IntoIter as Iterator>::Item == Self::Item;
```

but as one would expect: `type IntoIter: Iterator<Item = Self::Item>;`.

Cross-crate closure bounds like `F: Fn(i32) -> bool` are now also rendered properly (previously, the return type (`Self::Output`) would not be rendered and we would show the underlying equality predicate).

Fixes #77763.
Fixes #84579.
Fixes #102142.

`@rustbot` label T-rustdoc A-cross-crate-reexports
r? rustdoc
2022-10-03 19:12:17 +02:00
Michael Howell
d33e113ba0 rustdoc: remove font family CSS on .rustdoc-toggle summary::before
This rule became irrelevant since c58246efe4
made it so that the `summary::before` pseudo-element contains an SVG instead
of text.
2022-10-03 09:29:26 -07:00
bors
33d351972a Auto merge of #102610 - dawnofmidnight:git-commit-hash, r=Mark-Simulacrum
re-add git-commit-hash file to tarballs

rust-lang/rust#100557 removed the `git-commit-hash` file and replaced it with `git-commit-info`. However, build-manifest relies on the `git-commit-hash` file being present, so this adds it back.

r? `@Mark-Simulacrum`
2022-10-03 14:20:32 +00:00
Guillaume Gomez
c0c7597eea Migrate stab elements style to CSS variables 2022-10-03 15:31:59 +02:00
David Wood
c4418e1940 errors: rename typeck.ftl to hir_analysis.ftl
In #102306, `rustc_typeck` was renamed to `rustc_hir_analysis` but the
diagnostic resources were not renamed - which is what this commit
changes.

Signed-off-by: David Wood <david.wood@huawei.com>
2022-10-03 13:52:17 +01:00
royrustdev
f1c831ad17 add implicit_saturating_add lint 2022-10-03 16:46:38 +05:30
Takayuki Maeda
0e615caa8d check if const is ADT or not 2022-10-03 17:51:18 +09:00
Takayuki Maeda
b8b30ae6ba add a ui test for #101739 2022-10-03 15:02:38 +09:00
Matthias Krüger
d679ec5e2f
Rollup merge of #102591 - JarvisCraft:fix-double-a-article, r=compiler-errors
Fix duplicate usage of `a` article.

This fixes a typo first appearing in #94624 in which test-macro diagnostic uses "a" article twice.

Since I searched the sources for " a a " sequences, I also fixed the same issue in a few files where I found it.
2022-10-03 08:00:47 +02:00
Matthias Krüger
c3053309c5
Rollup merge of #102550 - notriddle:notriddle/impl, r=GuillaumeGomez
rustdoc: remove no-op CSS on `.impl, .method` etc

Preview: http://notriddle.com/notriddle-rustdoc-demos/impl/index.html

# `flex-basis: 100%`

When `.impl-items { flex-basis: 100% }` and `h3.impl, h3.method, h4.method, h3.type, h4.type, h4.associatedconstant` were added in 34bd2b845b, it seems like it was a mistake even then. According to MDN, [flex-basis] does nothing unless the box it's applied to is a flex *item*, a child of a flex container. However, when this was added, these elements were flex containers themselves.

[flex-basis]: https://developer.mozilla.org/en-US/docs/Web/CSS/flex-basis

# `position: relative`

This property was added to help with positioning the `[+]/[-]` toggle. It is no longer necessary, because `details.rustdoc-toggle` already has `position:relative` set on it.
2022-10-03 08:00:47 +02:00
Nicholas Nethercote
177b3d2d8b Add some more operator cases to dump-debug-span-debug.rs. 2022-10-03 15:57:23 +11:00
dawnofmidnight
5c908c642b re-add git-commit-hash file to tarballs
rust-lang/rust#100557 removed the `git-commit-hash` file and replaced it
with `git-commit-info`. However, build-manifest relies on the
`git-commit-hash` file being present, so this adds it back.
2022-10-02 23:58:40 -04:00
León Orell Valerian Liehr
a5402343f6
rustdoc: re-sugar more cross-crate trait bounds 2022-10-03 04:36:39 +02:00
bors
607b8296e0 Auto merge of #102503 - cuviper:x86-stack-probes, r=nagisa
Enable inline stack probes on X86 with LLVM 16

The known problems with x86 inline-asm stack probes have been solved on LLVM main (16), so this flips the switch. Anyone using bleeding-edge LLVM with rustc can start testing this, as I have done locally. We'll get more direct rust-ci when LLVM 16 branches and we start our upgrade, and we can always patch or disable it then if we find new problems.

The previous attempt was #77885, reverted in #84708.
2022-10-03 02:09:05 +00:00
bors
573fd5a8c5 Auto merge of #102305 - flba-eb:remove_exclude_list, r=Mark-Simulacrum
Get rid of exclude-list for Windows-only tests

Main purpose of this change is to get rid of a quite long (and growing) list of excluded targets, while this test should only be useful on Windows (as far as I understand it). The `// only-windows` header seams to implement exactly what we need here.

I don't know why there are some whitespace changes, but `x.py fmt` and `.git/hooks/pre-push` are happy.
2022-10-02 23:47:48 +00:00
Anirudh
cddc6434d0 Remove trailing whitespaces 2022-10-03 05:14:55 +05:30
Anirudh
e4549d5526 Improve readability of bootstrap's README by adding commas and minor changes
(cherry picked from commit e5e4b85feba6463310d0fc0c27e8ff38891efac3)
2022-10-03 04:49:36 +05:30
bors
de692f1fae Auto merge of #100557 - dawnofmidnight:tarball-commit-info, r=Mark-Simulacrum
fix: use git-commit-info for version information

Fixes #33286.
Fixes #86587.

This PR changes the current `git-commit-hash` file that `./x.py` dist puts in the `rustc-{version}-src.tar.{x,g}z` to contain the hash, the short hash, and the commit date from which the tarball was created, assuming git was available when it was. It uses this for reading the version so that rustc has all the appropriate metadata.

# Testing

Testing this is kind of a pain. I did it with something like
```sh
./x.py dist # ensure that `ignore-git` is `false` in config.toml
cp ./build/dist/rustc-1.65.0-dev-src.tar.gz ../rustc-1.65.0-dev-src.tar.gz
cd .. && tar -xzf rustc-1.65.0-dev-src && cd rustc-1.65.0-dev-src
./x.py build
```

Then, the output of  `rustc -vV` with the stage1 compiler should have the `commit-hash` and `commit-date` fields filled, rather than be `unknown`. To be completely sure, you can use `rustc --sysroot` with the stdlib that the original `./x.py dist` made, which will require that the metadata matches.
2022-10-02 20:55:17 +00:00
Michael Goulet
90a8d67491 Avoid ICE in printing RPITIT type 2022-10-02 20:43:13 +00:00
Michael Goulet
426424b320 Make it a lint for all opaque types 2022-10-02 19:50:19 +00:00
Scott McMurray
31cd0aa823 Do the calloc optimization for Option<bool>
Inspired by <https://old.reddit.com/r/rust/comments/xtiqj8/why_is_this_functional_version_faster_than_my_for/iqqy37b/>.
2022-10-02 12:26:58 -07:00
Michael Goulet
c7d1ec009c Don't ICE when trying to copy unsized value in const prop 2022-10-02 19:21:06 +00:00