Commit Graph

240633 Commits

Author SHA1 Message Date
sjwang05
d627e2a4e8
Fix parser ICE when recovering dyn/impl after for<...> 2023-12-04 10:40:09 -08:00
bors
0e2dac8375 Auto merge of #118592 - lnicola:sync-from-ra, r=lnicola
Subtree update of `rust-analyzer`

r? `@ghost`
2023-12-04 17:18:56 +00:00
rustbot
8fb7117385 Update books 2023-12-04 12:00:34 -05:00
Deadbeef
e6a14c0336 Use default params until effects in desugaring 2023-12-04 15:08:14 +00:00
bors
e281163dc8 Auto merge of #118602 - TaKO8Ki:rollup-njcouns, r=TaKO8Ki
Rollup of 5 pull requests

Successful merges:

 - #118495 (Restrict what symbols can be used in `#[diagnostic::on_unimplemented]` format strings)
 - #118540 (codegen, miri: fix computing the offset of an unsized field in a packed struct)
 - #118551 (more targeted errors when extern types end up in places they should not)
 - #118573 (rustc: Harmonize `DefKind` and `DefPathData`)
 - #118586 (Improve example in `slice::windows()` doc)

r? `@ghost`
`@rustbot` modify labels: rollup
2023-12-04 14:46:49 +00:00
DianQK
9ed0d11efb
Avoid adding compiler-used functions to symbols.o 2023-12-04 22:28:00 +08:00
bors
0a83e43f28 Auto merge of #118597 - lnicola:cargotest-no-branch, r=Mark-Simulacrum
Don't ask for a specific branch in cargotest

Tentative fix for https://github.com/rust-lang/rust/pull/118592#issuecomment-1838180918.

`servo` [just renamed](https://github.com/servo/servo/pull/30788) their `master` branch to `main`, but `cargotest` does a `git fetch $URL master; git reset --hard $SHA`. Let's try to change that to `git fetch $URL $SHA; git reset --hard $SHA`, which appears to work, but I can't confirm for sure because I'm having some trouble with `x.py`:

```
 --> library/rustc-std-workspace-core/lib.rs:4:9
  |
4 | pub use core::*;
  |         ^^^^
  |
  = note: the following crate versions were found:
          crate `core` compiled by rustc 1.76.0-nightly (85a4bd8f5 2023-12-04): ./build/x86_64-unknown-linux-gnu/stage1-std/x86_64-unknown-linux-gnu/release/deps/libcore-70719e8645e6f000.rmeta
  = help: please recompile that crate using this compiler (rustc 1.76.0-nightly (5808b7248 2023-12-04)) (consider running `cargo clean` first)
```
2023-12-04 12:26:55 +00:00
Takayuki Maeda
f1397e6ff2
Rollup merge of #118586 - gurry:118571-improve-slice-doc-example, r=thomcc
Improve example in `slice::windows()` doc

Fixes #118571

Now using a window of 3 instead 2 because it removes any confusion about exactly how consecutive windows overlap
2023-12-04 21:19:45 +09:00
Takayuki Maeda
30a4215532
Rollup merge of #118573 - petrochenkov:pathdatakind, r=TaKO8Ki
rustc: Harmonize `DefKind` and `DefPathData`

Follow up to https://github.com/rust-lang/rust/pull/118188.

`DefPathData::(ClosureExpr,ImplTrait)` are renamed to match `DefKind::(Closure,OpaqueTy)`.

`DefPathData::ImplTraitAssocTy` is replaced with `DefPathData::TypeNS(kw::Empty)` because both correspond to `DefKind::AssocTy`.
It's possible that introducing `(DefKind,DefPathData)::AssocOpaqueTy` instead could be a better solution, but that would be a much more invasive change.

Const generic parameters introduced for effects are moved from `DefPathData::TypeNS` to `DefPathData::ValueNS`, because constants are values.

`DefPathData` is no longer passed to `create_def` functions to avoid redundancy.
2023-12-04 21:19:45 +09:00
Takayuki Maeda
da2fb8109e
Rollup merge of #118551 - RalfJung:extern-types-bugs, r=compiler-errors
more targeted errors when extern types end up in places they should not

Cc https://github.com/rust-lang/rust/issues/115709 -- this does not fix that bug but it makes the panics less obscure and makes it more clear that this is a deeper issue than just a little codegen oversight. (In https://github.com/rust-lang/rust/pull/116115 we decided we'd stick to causing ICEs here for now, rather than nicer errors. We can't currently show any errors pre-mono and probably we don't want post-mono checks when this gets stabilized anyway.)
2023-12-04 21:19:44 +09:00
Takayuki Maeda
87625dbf2b
Rollup merge of #118540 - RalfJung:unsized-packed-offset, r=TaKO8Ki
codegen, miri: fix computing the offset of an unsized field in a packed struct

`#[repr(packed)]`  strikes again.

Fixes https://github.com/rust-lang/rust/issues/118537
Fixes https://github.com/rust-lang/miri/issues/3200

`@bjorn3` I assume cranelift needs the same fix.
2023-12-04 21:19:44 +09:00
Takayuki Maeda
da30882eb3
Rollup merge of #118495 - weiznich:more_tests_for_on_unimplemented, r=compiler-errors
Restrict what symbols can be used in `#[diagnostic::on_unimplemented]` format strings

This commit restricts what symbols can be used in a format string for any option of the `diagnostic::on_unimplemented` attribute. We previously allowed all the ad-hoc options supported by the internal `#[rustc_on_unimplemented]` attribute. For the stable attribute we only want to support generic parameter names and `{Self}` as parameters.  For any other parameter an warning is emitted and the parameter is replaced by the literal parameter string, so for example `{integer}` turns into `{integer}`. This follows the general design of attributes in the `#[diagnostic]` attribute namespace, that any syntax "error" is treated as warning and subsequently ignored.

r? `@compiler-errors`
2023-12-04 21:19:43 +09:00
Guillaume Gomez
8e53edb2ec Add regression test for #118195 2023-12-04 12:13:24 +01:00
Guillaume Gomez
1c556bbed4 Don't generate the "Fields" heading if there is no field displayed 2023-12-04 12:12:13 +01:00
Nadrieril
5e470db05c Remove the precise_pointer_size_matching feature gate 2023-12-04 11:56:21 +01:00
Laurențiu Nicola
5808b72484 Don't ask for a specific branch in cargotest 2023-12-04 12:11:44 +02:00
lcnr
cf8a2bdd81 rebase 2023-12-04 10:48:00 +01:00
lcnr
407c117e88 cleanup and comments 2023-12-04 10:40:36 +01:00
lcnr
f69d67221e generalize: handle occurs check failure in aliases 2023-12-04 10:39:00 +01:00
lcnr
2d0ec174e4 do not fetch variance info during generalization 2023-12-04 10:38:43 +01:00
Georg Semmler
1a1cd6e6db
Restrict what symbols can be used in #[diagnostic::on_unimplemented] format strings
This commit restricts what symbols can be used in a format string for
any option of the `diagnostic::on_unimplemented` attribute. We
previously allowed all the ad-hoc options supported by the internal
`#[rustc_on_unimplemented]` attribute. For the stable attribute we only
want to support generic parameter names and `{Self}` as parameters.  For
any other parameter an warning is emitted and the parameter is replaced
by the literal parameter string, so for example `{integer}` turns into
`{integer}`. This follows the general design of attributes in the
`#[diagnostic]` attribute namespace, that any syntax "error" is treated
as warning and subsequently ignored.
2023-12-04 10:00:33 +01:00
Nicholas Nethercote
7811c976d1 Inline and remove fatal_no_raise.
This makes `Handler::fatal` more like `Handler::{err,warn,bug,note}`.
2023-12-04 18:57:42 +11:00
Nicholas Nethercote
3ab05caa4d Make Handler::{err,bug} more like Handler::{warn,note}. 2023-12-04 18:57:42 +11:00
Nicholas Nethercote
883bdb7fda Remove HandlerInner::emit.
This is weird: `HandlerInner::emit` calls
`HandlerInner::emit_diagnostic`, but only after doing a
`treat-err-as-bug` check. Which is fine, *except* that there are
multiple others paths for an `Error` or `Fatal` diagnostic to be passed
to `HandlerInner::emit_diagnostic` without going through
`HandlerInner::emit`, e.g. `Handler::span_err` call
`Handler::emit_diag_at_span`, which calls `emit_diagnostic`.
So that suggests that the coverage for `treat-err-as-bug` is incomplete.

This commit removes `HandlerInner::emit` and moves the
`treat-err-as-bug` check to `HandlerInner::emit_diagnostic`, so it
cannot by bypassed.
2023-12-04 18:57:42 +11:00
Nicholas Nethercote
a8ff867d5c Move some HandlerInner functions to Handler.
`Handler` is a wrapper around `HanderInner`. Some functions on
on `Handler` just forward to the samed-named functions on
`HandlerInner`.

This commit removes as many of those as possible, implementing functions
on `Handler` where possible, to avoid the boilerplate required for
forwarding. The commit is moderately large but it's very mechanical.
2023-12-04 18:57:42 +11:00
Nicholas Nethercote
8c20ad6a08 Use DiagnosticBuilder::new more.
By making it generic, instead of only for `EmissionGuarantee = ()`, we
can use it everywhere.
2023-12-04 18:57:42 +11:00
Nicholas Nethercote
b7e18cabd2 De-genericize some IntoDiagnostic impls.
These impls are all needed for just a single `IntoDiagnostic` type, not
a family of them.

Note that `ErrorGuaranteed` is the default type parameter for
`IntoDiagnostic`.
2023-12-04 18:57:42 +11:00
Nicholas Nethercote
d51b3dbfc6 Remove some unused code, and downgrade some pubs. 2023-12-04 18:57:42 +11:00
Nicholas Nethercote
32dc78ede8 Avoid Diagnostic::new_with_code(..., None, ...).
`Diagnostic::new` can be used instead.
2023-12-04 18:57:42 +11:00
Nicholas Nethercote
ed95f397cf Always use G for EmissionGuarantee type variables.
That's what is mostly used. This commit changes a few `EM` and `E` and
`T` type variables to `G`.
2023-12-04 18:57:42 +11:00
Nicholas Nethercote
6a95dee395 Rename some arguments.
`sess` is a terribly misleading name for a `Handler`! This confused me
for a bit.
2023-12-04 18:57:41 +11:00
Nicholas Nethercote
ab640ca86b Inline and remove more DiagnosticBuilder::new_diagnostic_* functions.
They each have a single call site.

Note: the `make_diagnostic_builder` calls in `lib.rs` will be replaced
in a subsequent commit.
2023-12-04 18:57:35 +11:00
Laurențiu Nicola
638ba5ae28 Merge commit 'e402c494b7c7d94a37c6d789a216187aaf9ccd3e' into sync-from-ra 2023-12-04 09:19:15 +02:00
Ralf Jung
bcfeaabaf3 portable-simd: add missing feature gate 2023-12-04 08:16:03 +01:00
bors
e27da142ef Auto merge of #3207 - rust-lang:rustup-2023-12-04, r=RalfJung
Automatic Rustup
2023-12-04 07:12:08 +00:00
Ralf Jung
81740452a8 fix clippy 2023-12-04 08:10:34 +01:00
bors
cf8d81213c Auto merge of #118490 - Nadrieril:arena-alloc-matrix, r=nnethercote
Exhaustiveness: allocate memory better

Exhaustiveness is a recursive algorithm that allocates a bunch of slices at every step. Let's see if I can improve performance by improving allocations.

Already just using `Vec::with_capacity` is showing impressive improvements on my local measurements.

r? `@ghost`
2023-12-04 07:06:36 +00:00
Gurinder Singh
423481ba54 Improve example in slice::windows() doc
Now using a window of 3 instead 2 because it removes any
confusion about exactly how consecutive windows overlap
2023-12-04 11:17:42 +05:30
The Miri Conjob Bot
2c545ed69e fmt 2023-12-04 05:03:55 +00:00
The Miri Conjob Bot
bcc059500c Merge from rustc 2023-12-04 05:02:38 +00:00
The Miri Conjob Bot
da4fd2220f Preparing for merge from rustc 2023-12-04 04:56:13 +00:00
Nicholas Nethercote
d4933aaf1f Inline and remove DiagnosticBuilder::new_diagnostic_* functions.
They each have a single call site.
2023-12-04 15:42:12 +11:00
Nicholas Nethercote
114380d215 Give Handler::fatal and Session::fatal the same return type.
Currently, `Handler::fatal` returns `FatalError`. But `Session::fatal`
returns `!`, because it calls `Handler::fatal` and then calls `raise` on
the result. This inconsistency is unfortunate.

This commit changes `Handler::fatal` to do the `raise` itself, changing
its return type to `!`. This is safe because there are only two calls to
`Handler::fatal`, one in `rustc_session` and one in
`rustc_codegen_cranelift`, and they both call `raise` on the result.

`HandlerInner::fatal` still returns `FatalError`, so I renamed it
`fatal_no_raise` to emphasise the return type difference.
2023-12-04 15:42:06 +11:00
bors
85a4bd8f58 Auto merge of #116915 - bend-n:unwet, r=saethlin
Add an assume that the index is inbounds to slice::get_unchecked

Fixes #116878
2023-12-04 03:09:45 +00:00
Nadrieril
c1774a137d Document reentrancy in *Arena::alloc_from_iter 2023-12-04 02:24:10 +01:00
bendn
73afc00cf9
use assume(idx < self.len()) in [T]::get_unchecked 2023-12-04 06:00:12 +07:00
bors
c9808f8702 Auto merge of #117840 - RalfJung:miri-promise-align, r=cjgillot
miri: support 'promising' alignment for symbolic alignment check

Then use that ability in `slice::align_to`, so that even with `-Zmiri-symbolic-alignment-check`, it no longer has to return spuriously empty "middle" parts.

Fixes https://github.com/rust-lang/miri/issues/3068
2023-12-03 22:53:44 +00:00
bors
9fad685992 Auto merge of #118579 - matthiaskrgr:rollup-22kn8sa, r=matthiaskrgr
Rollup of 3 pull requests

Successful merges:

 - #117869 ([rustdoc] Add highlighting for comments in items declaration)
 - #118525 (coverage: Skip spans that can't be un-expanded back to the function body)
 - #118574 (rustc_session: Address all `rustc::potential_query_instability` lints)

r? `@ghost`
`@rustbot` modify labels: rollup
2023-12-03 20:54:56 +00:00
Ralf Jung
2a3fcc0a57 move calling miri_promise_symbolic_alignment to a shared helper 2023-12-03 21:51:14 +01:00
Ralf Jung
bebba4f6e0 miri: support 'promising' alignment for symbolic alignment check 2023-12-03 21:51:14 +01:00