243827 Commits

Author SHA1 Message Date
David Tolnay
cdee1feb49
Unbreak tidy's feature parser
tidy error: /git/rust/library/core/src/num/nonzero.rs:67: malformed stability attribute: missing `feature` key
    tidy error: /git/rust/library/core/src/num/nonzero.rs:82: malformed stability attribute: missing `feature` key
    tidy error: /git/rust/library/core/src/num/nonzero.rs:98: malformed stability attribute: missing the `since` key
    tidy error: /git/rust/library/core/src/num/nonzero.rs:112: malformed stability attribute: missing `feature` key
    tidy error: /git/rust/library/core/src/num/nonzero.rs:450: malformed stability attribute: missing `feature` key
    some tidy checks failed
2024-01-14 12:45:46 -08:00
David Tolnay
c53713274c
Move BITS into omnibus impl block 2024-01-14 12:45:46 -08:00
David Tolnay
66cda3b75f
Move signed MIN and MAX into signedness_dependent_methods 2024-01-14 12:45:45 -08:00
David Tolnay
7f7c5af097
Move unsigned MIN and MAX into signedness_dependent_methods 2024-01-14 12:45:44 -08:00
David Tolnay
441913626d
Move is_power_of_two into unsigned part of signedness_dependent_methods 2024-01-14 12:45:44 -08:00
David Tolnay
63256af236
Move nonzero_unsigned_signed_operations methods into the omnibus impl block 2024-01-14 12:45:43 -08:00
David Tolnay
c6d776ef4b
Work around rustfmt doc attribute indentation bug 2024-01-14 12:45:41 -08:00
David Tolnay
b21b9cc901
Unindent nonzero_integer_signedness_dependent_methods macro body 2024-01-14 12:45:37 -08:00
David Tolnay
4291b3ff62
Move signedness dependent methods into the omnibus impl block 2024-01-14 12:45:10 -08:00
David Tolnay
757ed25667
Move Neg impl into the macro that generates Div and Rem 2024-01-14 12:45:09 -08:00
Scott McMurray
23483664a2 Split out option::unwrap_failed like we have result::unwrap_failed
...and like `option::expect_failed`
2024-01-14 12:45:01 -08:00
David Tolnay
f846ed53e4
Move leading_zeros and trailing_zeros methods into nonzero_integer macro 2024-01-14 12:45:00 -08:00
David Tolnay
a78d9a6de1
Unindent nonzero_integer_impl_div_rem macro body 2024-01-14 12:43:51 -08:00
David Tolnay
81e1a7c6b5
Move impl Div and Rem into nonzero_integer macro 2024-01-14 12:43:50 -08:00
David Tolnay
3de0af1a4d
Move 'impl FromStr for NonZero' into nonzero_integer macro 2024-01-14 12:43:49 -08:00
David Tolnay
a6152cdd9a
Format nonzero_integer macro calls same way we do the primitive int impls
The `key = $value` style will be beneficial as we introduce some more
macro arguments here in later commits.
2024-01-14 12:43:49 -08:00
David Tolnay
9196d2a552
Unindent nonzero_integer macro body 2024-01-14 12:43:37 -08:00
David Tolnay
54cb822563
Define only a single NonZero type per macro call
Later in this stack, as the nonzero_integers macro is going to be
responsible for producing a larger fraction of the API for the NonZero
integer types, it will need to receive a number of additional arguments
beyond the ones currently seen here.

Additional arguments, especially named arguments across multiple lines,
will turn out clearer if everything in one macro call is for the same
NonZero type.

This commit adopts a similar arrangement to what we do for generating
the API of the integer primitives (`impl u8` etc), which also generate a
single type's API per top-level macro call, rather than generating all
12 impl blocks for the 12 types from one macro call.
2024-01-14 12:40:33 -08:00
David Tolnay
56df3bb70d
Move nonzero_integers macro call to bottom of module
This way all the other macros defined in this module, such as
nonzero_leading_trailing_zeros, are available to call within the expansion of
nonzero_integers.

(Macros defined by macro_rules cannot be called from the same module above the
location of the macro_rules.)

In this commit the ability to call things like nonzero_leading_trailing_zeros is
not immediately used, but later commits in this stack will be consolidating the
entire API of NonZeroT to be generated through nonzero_integers, and will need
to make use of some of the other macros to do that.
2024-01-14 12:40:18 -08:00
Michael Goulet
c811662fb0 Use zip_eq to enforce that things being zipped have equal sizes 2024-01-14 20:01:12 +00:00
Michael Goulet
c5cb87cf0c Closure body was being built incorrectly on error... 2024-01-14 19:59:10 +00:00
Guillaume Gomez
d635cec7c6
Rollup merge of #119960 - cjgillot:inline-dg, r=WaffleLapkin
Inline 2 functions that appear in dep-graph profiles.

Those functions are small enough not to deserve a dedicated symbol.
2024-01-14 20:17:24 +01:00
Guillaume Gomez
e401754717
Rollup merge of #119742 - Meziu:armv6k-nintendo-3ds, r=Mark-Simulacrum
ARMv6K HorizonOS - Fix backlog for UnixListener

Simple `#[cfg]` fix to avoid using `libc::SOMAXCONN`, which isn't defined for the `armv6k-nintendo-3ds` target.

Edit: This is similar to #119632.
2024-01-14 20:17:23 +01:00
Guillaume Gomez
8914ca722c
Rollup merge of #119561 - notriddle:master, r=fmease
rustdoc: rename `issue-\d+.rs` tests to have meaningful names (part 5)

Follow up

* https://github.com/rust-lang/rust/pull/116214
* https://github.com/rust-lang/rust/pull/116432
* https://github.com/rust-lang/rust/pull/116824
* https://github.com/rust-lang/rust/pull/118105
2024-01-14 20:17:23 +01:00
Michael Goulet
6f98a6cc80 Simplify closure_env_ty and closure_env_param 2024-01-14 19:15:46 +00:00
bors
665d2c6f2c Auto merge of #119796 - androm3da:bcain/compiler_builtins_0_1_105, r=Mark-Simulacrum
Update compiler_builtins to 0.1.105

This provides the builtins for the hexagon architecture.
2024-01-14 19:15:37 +00:00
clubby789
eb63d3a49d allow_internal_unstable(min_specialization) on newtype_index 2024-01-14 19:07:13 +00:00
Behnam Esfahbod
a596159dca std: Doc blocking behavior of LazyLock methods 2024-01-14 10:28:13 -08:00
bors
273035458d Auto merge of #119962 - GuillaumeGomez:rollup-mj7agm6, r=GuillaumeGomez
Rollup of 3 pull requests

Successful merges:

 - #119944 (Don't ICE when noting GAT bounds in `report_no_match_method_error`)
 - #119949 (Add note on SpecOptionPartialEq to `newtype_index`)
 - #119961 ([meta] Remove Zulip rustdoc nomination alert)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-01-14 17:13:30 +00:00
clubby789
0529ccf341 Fix allow_internal_unstable for (min_)specialization 2024-01-14 13:50:02 +00:00
Guillaume Gomez
7841d26641
Rollup merge of #119961 - fmease:triagebot-rustdoc-i-nominated, r=GuillaumeGomez
[meta] Remove Zulip rustdoc nomination alert

There no longer exists the label <kbd>I-nominated</kbd>, it's no longer possible to trigger the Zulip nomination alert. Nowadays, there are separate <kbd>I-{team}-nominated</kbd> labels one for each team that make use of such a nomination system.

Since t-rustdoc has never really used this nomination system, I figured I should remove it outright. However, instead of that, I could create the label <kbd>I-rustdoc-nominated</kbd> and adjust the triagebot entry. Whatever you prefer.

r? GuillaumeGomez or rustdoc
2024-01-14 14:02:29 +01:00
Guillaume Gomez
a9146ce683
Rollup merge of #119949 - clubby789:spec-newtype-comment, r=nnethercote
Add note on SpecOptionPartialEq to `newtype_index`

https://rust-lang.zulipchat.com/#narrow/stream/182449-t-compiler.2Fhelp/topic/.60SpecOptionPartialEq.60.20error

r? `@nnethercote`
2024-01-14 14:02:29 +01:00
Guillaume Gomez
5ad0ed52e9
Rollup merge of #119944 - compiler-errors:no-match-due-to-gat-bounds, r=fmease
Don't ICE when noting GAT bounds in `report_no_match_method_error`

We can encounter `BindingObligation`s from GATs that we should handle in `report_no_match_method_error`. I assume we can encounter them from methods, though I didn't really feel like wasting my time creating a repro.

Fixes #119942
2024-01-14 14:02:28 +01:00
Camille GILLOT
c6f83b8ff6 Inline 2 functions that appear in dep-graph profiles. 2024-01-14 12:57:13 +00:00
León Orell Valerian Liehr
5788f3d350
Remove Zulip rustdoc nomination alert 2024-01-14 13:55:18 +01:00
bors
8847bda592 Auto merge of #119361 - sjwang05:issue-119352, r=WaffleLapkin
Fix ICE when suggesting dereferencing binop operands

Fixes #119352
2024-01-14 09:39:03 +00:00
bors
0dab65b8a1 Auto merge of #119934 - compiler-errors:could-impl, r=jackh726
Make `InferCtxtExt::could_impl_trait` more precise, less ICEy

The implementation for `InferCtxtExt::could_impl_trait` was very wrong. Along with being pretty poorly named, way too specific to ADTs, it was also doing impl substitution wrong -- this caused an ICE (#119915).

This PR generalizes that code, gives it a clearer name, makes it stop using the new trait solver (lol), and fixes some fallout bad suggestions that are made worse with the code fix.

Fixes #119915
2024-01-14 06:37:15 +00:00
bors
aa5f781bd4 Auto merge of #119341 - sjwang05:issue-58462, r=WaffleLapkin
Suggest quoting unquoted idents in attrs

Closes #58462
2024-01-14 04:37:45 +00:00
Nicholas Nethercote
d71f535a6f Rework how diagnostic lints are stored.
`Diagnostic::code` has the type `DiagnosticId`, which has `Error` and
`Lint` variants. Plus `Diagnostic::is_lint` is a bool, which should be
redundant w.r.t. `Diagnostic::code`.

Seems simple. Except it's possible for a lint to have an error code, in
which case its `code` field is recorded as `Error`, and `is_lint` is
required to indicate that it's a lint. This is what happens with
`derive(LintDiagnostic)` lints. Which means those lints don't have a
lint name or a `has_future_breakage` field because those are stored in
the `DiagnosticId::Lint`.

It's all a bit messy and confused and seems unintentional.

This commit:
- removes `DiagnosticId`;
- changes `Diagnostic::code` to `Option<String>`, which means both
  errors and lints can straightforwardly have an error code;
- changes `Diagnostic::is_lint` to `Option<IsLint>`, where `IsLint` is a
  new type containing a lint name and a `has_future_breakage` bool, so
  all lints can have those, error code or not.
2024-01-14 14:04:25 +11:00
Zalathar
5eae9452b6 coverage: Simplify computing successors in the BCB graph 2024-01-14 12:11:26 +11:00
Zalathar
867950f8c6 coverage: Move helper add_basic_coverage_block into a local closure
This also switches from `split_off(0)` to `std::mem::take` when emptying the
accumulated list of blocks, because `split_off(0)` handles capacity in a way
that is unintuitive when used in a loop.
2024-01-14 12:11:25 +11:00
Zalathar
229d0983b5 coverage: Simplify the loop that combines blocks into BCBs
The old loop had two separate places where it would flush the acumulated list
of straight-line blocks into a new BCB. One occurred at the start of the loop
body when the current block couldn't be chained into, and the other occurred at
the end of the loop body when the current block couldn't be chained from.

The latter check can be hoisted to the start of the loop body by making it
examine the previous block (which has added itself to the list) instead of the
current block. With that done, we can combine the two separate flushes into one
flush with two possible trigger conditions.
2024-01-14 12:11:25 +11:00
Zalathar
c412cd4bc2 coverage: Indicate whether a block's successors allow BCB chaining 2024-01-14 12:11:25 +11:00
Zalathar
6d1c396399 coverage: Determine a block's successors from just the terminator
Filtering out unreachable successors is only needed by the main graph traversal
loop, so we can move the filtering step into that loop instead, eliminating the
need to pass the MIR body into `bcb_filtered_successors`.
2024-01-14 12:11:25 +11:00
clubby789
4ca6342eb3 Add note on SpecOptionPartialEq to newtype_index 2024-01-14 00:24:39 +00:00
Michael Goulet
985e1e031b Add a simpler test 2024-01-13 23:09:37 +00:00
Michael Goulet
24c1f4aa80 Make sure to instantiate placeholders correctly in old solver 2024-01-13 22:57:44 +00:00
Nicholas Nethercote
2de99ec787 Reformat struct_span_code_err!. 2024-01-14 09:46:02 +11:00
bors
3deb9bbf84 Auto merge of #119945 - matthiaskrgr:rollup-oy3e1j2, r=matthiaskrgr
Rollup of 5 pull requests

Successful merges:

 - #119189 (Move section "Installing from Source" to seperate file)
 - #119925 (store the segment name when resolution fails)
 - #119935 (Move personality implementation out of PAL)
 - #119937 (Improve UEFI target docs)
 - #119938 (Allow unauthorized users to user the has-merge-commits label)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-01-13 22:05:46 +00:00
Michael Goulet
7724ba7bd5 assert that trait solver is only created in proper infcx 2024-01-13 22:00:35 +00:00