206884 Commits

Author SHA1 Message Date
bors
dd8c3a80dd Auto merge of #102691 - notriddle:rollup-tdtyagp, r=notriddle
Rollup of 5 pull requests

Successful merges:

 - #102574 (Make Hash{Set,Map}::with_hasher unstably const)
 - #102650 (Slightly improve no return for returning function error)
 - #102662 (rustdoc: remove no-op CSS `.code-header { display: block }`)
 - #102670 (follow-up fix about 101866 to print the self type.)
 - #102686 (Don't build the compiler before building rls)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-10-05 08:47:56 +00:00
Takayuki Maeda
45257962d3 stop suggesting adding generic args for turbofish 2022-10-05 16:58:29 +09:00
Ralf Jung
a0131f0a36 change might_permit_raw_init to fully detect LLVM UB, but not more than that 2022-10-05 09:22:50 +02:00
Michael Goulet
61cf3bfaf6 Suggest calling method if fn does not exist 2022-10-05 06:42:49 +00:00
Michael Goulet
66c8c5ad1d Delay function resolution error until typeck 2022-10-05 06:42:35 +00:00
BlackHoleFox
a955ef2c8c Revert "Use getentropy when possible on all Apple platforms"
This reverts commit 3fc35b5b935e390c61ea2bbf744838b2632b2df1.
2022-10-05 00:48:22 -05:00
Michael Howell
40ce4af232
Rollup merge of #102686 - cuviper:rls-tool_std, r=jyn514
Don't build the compiler before building rls

The rls stub is a simple stable tool, which doesn't need compiler libs.
(Similar to #97511)
2022-10-04 20:45:14 -07:00
Michael Howell
8dea87d9f4
Rollup merge of #102670 - lyming2007:issue-101866-fix, r=compiler-errors
follow-up fix about 101866 to print the self type.

	modified:   compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs
	modified:   src/test/ui/error-codes/E0283.stderr
	modified:   src/test/ui/error-codes/E0790.stderr
	modified:   src/test/ui/traits/static-method-generic-inference.stderr
	modified:   src/test/ui/type/issue-101866.stderr
2022-10-04 20:45:14 -07:00
Michael Howell
fd8be2c36e
Rollup merge of #102662 - notriddle:notriddle/code-header-display-block, r=GuillaumeGomez
rustdoc: remove no-op CSS `.code-header { display: block }`

Since 76a3b609d0b93c5d8da5e4e3db37bd03e5cb1c30 converted code headers to real headers, `display: block` is now the default.
2022-10-04 20:45:13 -07:00
Michael Howell
55ebb61c68
Rollup merge of #102650 - Rageking8:slightly-improve-no-return-for-returning-function-error, r=compiler-errors
Slightly improve no return for returning function error

Fixes #100607

The rationale is that absolute beginners will be slightly confused as to why certain lines of code in a function does not require a semicolon. (I have actually witness a beginner having this confusion). Hence, a slight rationale is added "to return this value", which signals to the user that after removing said semicolon the value is returned resolving that error.

However, if this is not desirable, I welcome any other suggestions. Thanks.
2022-10-04 20:45:13 -07:00
Michael Howell
4025e95113
Rollup merge of #102574 - aDotInTheVoid:const_collections_with_hasher, r=oli-obk,fee1-dead
Make Hash{Set,Map}::with_hasher unstably const

Makes  [`HashMap::with_hasher`](https://doc.rust-lang.org/stable/std/collections/hash_map/struct.HashMap.html#method.with_hasher) and [`HashSet::with_hasher`](https://doc.rust-lang.org/stable/std/collections/hash_set/struct.HashSet.html#method.with_hasher) `const`.

This allows

```rust
static GlobalState: Mutex<HashMap<i32, i32, SomeHasher>> = Mutex::new(HashMap::with_hasher(SomeHasher::new()))
```

Tracking issue: #102575
2022-10-04 20:45:12 -07:00
Michael Goulet
28eda9b18a Suggest .into() when all other coercion suggestions fail 2022-10-05 02:47:31 +00:00
Josh Stone
3042b788eb Don't build the compiler before building rls
The rls stub is a simple stable tool, which doesn't need compiler libs.
2022-10-04 19:41:21 -07:00
bors
d8613f792c Auto merge of #102677 - weihanglo:update-cargo, r=ehuss
Update cargo

8 commits in f5fed93ba24607980647962c59863bbabb03ce14..0b84a35c2c7d70df4875a03eb19084b0e7a543ef 2022-09-27 12:03:57 +0000 to 2022-10-03 19:13:21 +0000

- Provide a better error message when mixing dep: with / (rust-lang/cargo#11172)
- Remove lingering unstable flag `-Zfeatures` (rust-lang/cargo#11168)
- Tweak wording (rust-lang/cargo#11164)
- Expose libgit2-sys/vendored feature as vendored-libgit2 (rust-lang/cargo#11162)
- refactor(cli): Upgrade to clap v4 (rust-lang/cargo#11159)
- Expose guide to adding a new edition as rustdoc (rust-lang/cargo#11157)
- Remove `multitarget` from -Zhelp (rust-lang/cargo#11158)
- Remove outdated comments (rust-lang/cargo#11155)
2022-10-05 02:14:13 +00:00
reez12g
488eb4209e Temporarily reinstate doctest=false 2022-10-05 09:53:49 +09:00
bors
d4846f9d03 Auto merge of #101768 - sunfishcode:sunfishcode/wasi-stdio-lock-asfd, r=joshtriplett
Add `AsFd` implementations for stdio lock types on WASI.

This mirrors the implementations on Unix platforms, and also mirrors the existing `AsRawFd` impls.

This is similar to #100892, but is for the `*Lock` types.
2022-10-04 23:22:16 +00:00
Weihang Lo
c1b4f11e36
Update cargo
8 commits in f5fed93ba24607980647962c59863bbabb03ce14..0b84a35c2c7d70df4875a03eb19084b0e7a543ef
2022-09-27 12:03:57 +0000 to 2022-10-03 19:13:21 +0000

- Provide a better error message when mixing dep: with / (rust-lang/cargo#11172)
- Remove lingering unstable flag `-Zfeatures` (rust-lang/cargo#11168)
- Tweak wording (rust-lang/cargo#11164)
- Expose libgit2-sys/vendored feature as vendored-libgit2 (rust-lang/cargo#11162)
- refactor(cli): Upgrade to clap v4 (rust-lang/cargo#11159)
- Expose guide to adding a new edition as rustdoc (rust-lang/cargo#11157)
- Remove `multitarget` from -Zhelp (rust-lang/cargo#11158)
- Remove outdated comments (rust-lang/cargo#11155)
2022-10-04 21:57:49 +01:00
Yiming Lei
4f3b6ac91f follow-up fix about 101866 to print the self type.
modified:   compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs
	modified:   src/test/ui/error-codes/E0283.stderr
	modified:   src/test/ui/error-codes/E0790.stderr
	modified:   src/test/ui/traits/static-method-generic-inference.stderr
	modified:   src/test/ui/type/issue-101866.stderr
2022-10-04 10:30:25 -07:00
bors
01af5040fd Auto merge of #102666 - matthiaskrgr:rollup-tuge18t, r=matthiaskrgr
Rollup of 6 pull requests

Successful merges:

 - #102241 (Package `rust-docs-json` into nightly components (take 3))
 - #102488 (Check generic argument compatibility when projecting assoc ty)
 - #102647 (Only allow ~const bounds for traits with #[const_trait])
 - #102648 (Add test for #102605)
 - #102651 (It's not about types or consts, but the lack of regions)
 - #102653 (resolve instance: missing value to `delay_span_bug`)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-10-04 16:29:26 +00:00
Matthias Krüger
db94aeda38
Rollup merge of #102653 - lcnr:delay_span_bug, r=fee1-dead
resolve instance: missing value to `delay_span_bug`
2022-10-04 18:26:41 +02:00
Matthias Krüger
0dd0c6c1e6
Rollup merge of #102651 - oli-obk:non_region_things, r=lcnr
It's not about types or consts, but the lack of regions

pulled out of https://github.com/rust-lang/rust/pull/101900 which adds a fourth kind of non-lifetime generic parameter, and the naming of these methods would get ridiculous.
2022-10-04 18:26:41 +02:00
Matthias Krüger
08253f3980
Rollup merge of #102648 - Rageking8:add-test-for-#102605, r=compiler-errors
Add test for #102605

Fixes #102605
2022-10-04 18:26:40 +02:00
Matthias Krüger
f55fef165e
Rollup merge of #102647 - oli-obk:tilde_const_bounds, r=fee1-dead
Only allow ~const bounds for traits with #[const_trait]

r? `@fee1-dead`
2022-10-04 18:26:39 +02:00
Matthias Krüger
5d584516b2
Rollup merge of #102488 - compiler-errors:gat-compatibility, r=oli-obk
Check generic argument compatibility when projecting assoc ty

Fixes #102114
2022-10-04 18:26:39 +02:00
Matthias Krüger
b9ff789506
Rollup merge of #102241 - jyn514:manifest-json-docs, r=Mark-Simulacrum
Package `rust-docs-json` into nightly components (take 3)

`dist` creates a `rust-docs-json.tar.xz` tarfile. But build-manifest expected it to be named `rust-docs-json-preview.tar.xz`. Change build-manifest to allow the name without the `-preview` suffix.

I haven't actually tested this :( build-manifest is a pain to run locally.
2022-10-04 18:26:38 +02:00
Michael Howell
8f8125ecfb rustdoc: remove no-op CSS .code-header { display: block }
Since 76a3b609d0b93c5d8da5e4e3db37bd03e5cb1c30 converted code headers to
real headers, `display: block` is now the default.
2022-10-04 08:37:10 -07:00
lcnr
93a17c8aea missing value to delay_span_bug 2022-10-04 17:35:26 +02:00
Ralf Jung
9cc11e262f test Miri changes in PR CI; we no longer need xargo 2022-10-04 17:31:49 +02:00
bors
6f2b52ff10 Auto merge of #2566 - saethlin:gc-cleanup, r=oli-obk
Expand VisitMachineValues to cover more pointers in the interpreter

Follow-on to https://github.com/rust-lang/miri/pull/2559

This is making me want to write a proc macro 🤔

r? `@RalfJung`
2022-10-04 14:17:17 +00:00
Oli Scherer
c7b6ebdf7c It's not about types or consts, but the lack of regions 2022-10-04 14:10:44 +00:00
Ralf Jung
e212af2f65 re-architect the tag visitor traits 2022-10-04 15:49:39 +02:00
bors
796bcf99dc Auto merge of #2582 - RalfJung:sb-tracking, r=RalfJung
more details in stacked borrows tag tracking
2022-10-04 13:44:21 +00:00
Ben Kimock
841d1b24ed Finish TimeoutCallback 2022-10-04 15:32:10 +02:00
Ben Kimock
1c6a6244c1 Please help, where is this lifetime bound coming from 2022-10-04 15:32:10 +02:00
Ben Kimock
a8f8106cec Use static dispatch in the visitor 2022-10-04 15:32:10 +02:00
Ben Kimock
61e71cebd3 Use VisitProvenance to factor allocation visiting better 2022-10-04 15:32:10 +02:00
Ben Kimock
a7153b5505 A bit of cleanup 2022-10-04 15:32:10 +02:00
Ben Kimock
25e8f8eddf Expand VisitMachineValues to cover more pointers in the interpreter 2022-10-04 15:32:10 +02:00
bors
02cd79afb8 Auto merge of #102652 - Dylan-DPC:rollup-6ff8ct8, r=Dylan-DPC
Rollup of 6 pull requests

Successful merges:

 - #101189 (Implement `Ready::into_inner()`)
 - #101642 (Fix in-place collection leak when remaining element destructor panic)
 - #102489 (Normalize substs before resolving instance in `NoopMethodCall` lint)
 - #102559 (Don't ICE when trying to copy unsized value in const prop)
 - #102568 (Lint against nested opaque types that don't satisfy associated type bounds)
 - #102633 (Fix rustdoc ICE in invalid_rust_codeblocks lint)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-10-04 13:04:57 +00:00
Ralf Jung
d1676b5727 more details on stacked borrows tracking 2022-10-04 14:55:29 +02:00
Alex Gaynor
c65c36242e
resolve error when attempting to link a universal library on macOS
Previously attempting to link universal libraries into libraries (but not binaries) would produce an error that "File too small to be an archive". This works around this by using `object` to extract a library for the target platform when passed a univeral library.

Fixes #55235
2022-10-04 07:39:51 -04:00
Rageking8
5ddaece650 slightly improve no return for returning function error 2022-10-04 19:13:40 +08:00
Dylan DPC
f7ca465272
Rollup merge of #102633 - Nilstrieb:rustdoc-lint-🏳️‍⚧️late, r=davidtwco
Fix rustdoc ICE in invalid_rust_codeblocks lint

The diagnostic message extraction code didn't handle translations yet.
Fixes #102603
Fixes #102631

r? `@davidtwco`
2022-10-04 16:11:03 +05:30
Dylan DPC
35f92ed1bf
Rollup merge of #102568 - compiler-errors:lint-unsatisfied-opaques, r=oli-obk
Lint against nested opaque types that don't satisfy associated type bounds

See the test failures for examples of places where this lint would fire.

r? `@oli-obk`
2022-10-04 16:11:02 +05:30
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
Dylan DPC
f24d00d8b3
Rollup merge of #101642 - SkiFire13:fix-inplace-collection-leak, r=the8472
Fix in-place collection leak when remaining element destructor panic

Fixes #101628

cc `@the8472`

I went for the drop guard route, placing it immediately before the `forget_allocation_drop_remaining` call and after the comment, as to signal they are closely related.

I also updated the test to check for the leak, though the only change really needed was removing the leak clean up for miri since now that's no longer leaked.
2022-10-04 16:11:01 +05:30
Dylan DPC
c1d4003506
Rollup merge of #101189 - daxpedda:ready-into-inner, r=joshtriplett
Implement `Ready::into_inner()`

Tracking issue: #101196.

This implements a method to unwrap the value inside a `Ready` outside an async context.
See https://docs.rs/futures/0.3.24/futures/future/struct.Ready.html#method.into_inner for previous work.

This was discussed in [Zulip beforehand](https://rust-lang.zulipchat.com/#narrow/stream/219381-t-libs/topic/.60Ready.3A.3Ainto_inner.28.29.60):
> An example I'm hitting right now:
I have a cross-platform library that provides a functions that returns a `Future`. The only reason why it returns a `Future` is because the WASM platform requires it, but the native doesn't, to make a cross-platform API that is equal for all I just return a `Ready` on the native targets.
>
> Now I would like to expose native-only functions that aren't async, that users can use to avoid having to deal with async when they are targeting native. With `into_inner` that's easily solvable now.
>
> I want to point out that some internal restructuring could be used to solve that problem too, but in this case it's not that simple, the library uses internal traits that return the `Future` already and playing around with that would introduce unnecessary `cfg` in a lot more places. So it is really only a quality-of-life feature.
2022-10-04 16:11:00 +05:30
bors
ead49f0beb Auto merge of #102622 - camsteffen:move-layout, r=fee1-dead
Move layout_of and friends from rustc_middle to rustc_ty_utils

Breaks up the very large module that is `rustc_middle::ty::layout` by fork-lifting some queries into `rustc_ty_utils::{abi, layout}`.

This does set back `rustc_ty_utils` to having untranslatable diagnostics. I'd like to leave this as a separate task.
2022-10-04 09:29:07 +00:00
Oli Scherer
c72c6e01c8 Merge the ~const and impl const checks and add some explanatory notes 2022-10-04 08:59:20 +00:00