Commit Graph

233963 Commits

Author SHA1 Message Date
Camille GILLOT
1d6a32c920 Interpret Immediate::Uninit as Bottom. 2023-09-11 16:29:41 +00:00
Camille GILLOT
b851e554dd Support CopyForDeref. 2023-09-11 16:29:41 +00:00
Camille GILLOT
82f0468009 Handle reading statics. 2023-09-11 16:29:41 +00:00
Camille GILLOT
6ad6b4381c Support non-scalar constants. 2023-09-11 16:29:41 +00:00
Matthew Jasper
b011a0a13b Reduce double errors for invalid let expressions
Previously some invalid let expressions would result in both a feature
error and a parsing error. Avoid this and ensure that we only emit the
parsing error when this happens.
2023-09-11 16:17:06 +00:00
Matthew Jasper
2d7a5f528c Update tools and fulldeps tests 2023-09-11 15:51:19 +00:00
Matthew Jasper
333388fd3c Move let expression checking to parsing
There was an incomplete version of the check in parsing and a second
version in AST validation. This meant that some, but not all, invalid
uses were allowed inside macros/disabled cfgs. It also means that later
passes have a hard time knowing when the let expression is in a valid
location, sometimes causing ICEs.

- Add a field to ExprKind::Let in AST/HIR to mark whether it's in a
  valid location.
- Suppress later errors and MIR construction for invalid let
  expressions.
2023-09-11 15:51:18 +00:00
Matthew Jasper
7b61f7f002 Don't create drop scopes after item statements
These scopes would not exist in MIR and can cause ICEs with invalid uses
of let expressions.
2023-09-11 15:51:18 +00:00
bors
864c3f3cc5 Auto merge of #3057 - pitaj:master, r=RalfJung
add subtree-sync label to rustc update PRs

For rust-lang/rust#114157
2023-09-11 15:47:50 +00:00
Peter Jaszkowiak
04e3b2e5f6 add subtree-sync label to rustc update PRs 2023-09-11 09:42:46 -06:00
Matthias Krüger
9ed6eea86b
Rollup merge of #115752 - GuillaumeGomez:aliased-type-title, r=notriddle
rustdoc: Add missing "Aliased type" title in the sidebar

Follow-up of https://github.com/rust-lang/rust/pull/115682.

The sections title are supposed to be present in the sidebar, we forgot to put this one so I added it into it. I also added the missing newly created `aliased-type` ID into the `DEFAULT_ID_MAP`.

r? `@notriddle`
2023-09-11 17:03:33 +02:00
Matthias Krüger
8b49731211
Rollup merge of #115744 - fmease:fix-e0401, r=compiler-errors
Improve diagnostic for generic params from outer items (E0401)

Generalize the wording of E0401 to talk about *outer items* instead of *outer functions* since the current phrasing is outdated. The outer item can be a function, constant, trait, ADT or impl block (see the new UI test for the more exotic examples).

Further, don't suggest introducing generic parameters to constant items unless the feature `generic_const_items` is enabled.

Lastly, make E0401 translatable while we're at it.

Fixes #115720.
2023-09-11 17:03:32 +02:00
Matthias Krüger
f279afb455
Rollup merge of #115743 - compiler-errors:no-impls, r=davidtwco
Point out if a local trait has no implementations

Slightly helps with #115741
2023-09-11 17:03:32 +02:00
Matthias Krüger
d24f575722
Rollup merge of #115739 - Alexendoo:lint-pass-check-attribute, r=oli-obk
Call `LateLintPass::check_attribute` from `with_lint_attrs`

Fixes #115571

For regular `register_late_pass` lints also means that `last_node_with_lint_attrs` is correct when in `check_attribute`, I've added a test that previously failed for `clippy::allow_attributes`

As far as I can see the only late lint in rustc that uses `check_attribute` is `unstable_features` which is allow by default and deprecated so this is mostly for clippy (or future rustc lints)
2023-09-11 17:03:32 +02:00
Matthias Krüger
e7a347baf8
Rollup merge of #115727 - fee1-dead-contrib:effect-fallback, r=oli-obk
Implement fallback for effect param

r? `@oli-obk` or `@lcnr`

tracking issue for this ongoing work: https://github.com/rust-lang/rust/issues/110395
2023-09-11 17:03:31 +02:00
Matthias Krüger
f30b27a6e8
Rollup merge of #115702 - jonas-schievink:update-mailmap, r=oli-obk
Update mailmap

https://github.com/rust-lang/team/pull/1071 / https://github.com/rust-lang/thanks/pull/58
2023-09-11 17:03:30 +02:00
Matthias Krüger
0a7451033b
Rollup merge of #115440 - RalfJung:bootstrap-fmt, r=Mark-Simulacrum
bootstrap/format: remove unnecessary paths.push

Cc https://github.com/rust-lang/rust/pull/106415#pullrequestreview-1606367042
I verified that this still formats all fileds when `get_modified_rs_files` is made to return an error.

r? ``@Nilstrieb``
2023-09-11 17:03:30 +02:00
Matthias Krüger
b99af95713
Rollup merge of #115335 - reez12g:issue-114912, r=davidtwco
fix overflow in array length computation

addressing https://github.com/rust-lang/rust/issues/114912
2023-09-11 17:03:29 +02:00
bors
3ebb5629d1 Auto merge of #115595 - surechen:114896, r=davidtwco
Fix incorrect mutable suggestion information for binding in ref pattern like:  `let &b = a;`

fixes #114896

I find we have to get pat_span but not local_decl.source_info.span for suggestion. In `let &b = a;`  pat_span is &b. I think check `let &b = a` in hir to make sure it is hir::Node::Local(hir::Local {pat: hir::Pat{kind: hir::PatKind::Ref(.......   can distinguish it from other situation, but I'm not sure.

If my processing method is not accurate, please guide me to modify it, thank you.

r? `@davidtwco`
2023-09-11 15:02:59 +00:00
DianQK
b99ace4179
Add a test for #108030
Closes #108030.
This issue has been resolved in LLVM 17.
2023-09-11 22:01:55 +08:00
lcnr
eac55eec9e dedup GoalEvaluationStep and GoalCandidate
also handle 2 panics when dumping proof trees for the whole test suite

- need to actually tell the proof tree builder about overflow
- need to handle a recursion_limit of 0 :<
2023-09-11 15:50:09 +02:00
Deadbeef
9654d5ceaf add is_host_effect to GenericParamDefKind::Const and address review 2023-09-11 13:18:36 +00:00
bors
68c2f5ba0f Auto merge of #115308 - chenyukang:yukang-fix-62387-iter-mut, r=davidtwco
suggest iter_mut() where trying to modify elements from .iter()

Fixes https://github.com/rust-lang/rust/issues/115259
Fixes https://github.com/rust-lang/rust/issues/62387
2023-09-11 12:41:30 +00:00
Guillaume Gomez
c523701c2d Add missing ID into the ID map 2023-09-11 14:20:15 +02:00
Guillaume Gomez
755835ef3d Add test for the presence of "Aliased type" title in the sidebar 2023-09-11 14:17:39 +02:00
Guillaume Gomez
7468af8d66 Add missing "Aliased type" title in the sidebar 2023-09-11 14:17:20 +02:00
lcnr
8225a2e9ec inspect: strongly typed CandidateKind 2023-09-11 13:11:32 +02:00
bors
55e5c9d705 Auto merge of #115656 - cjgillot:default-relative-spans, r=davidtwco
Enable incremental-relative-spans by default.

This was enabled on nightly in https://github.com/rust-lang/rust/pull/84762.

It has been a while, without obvious bugs. It's time to enable it by default for incremental runs.
2023-09-11 10:46:55 +00:00
lcnr
006d599435 revision -> iteration for added_goals_evaluation 2023-09-11 11:51:32 +02:00
lcnr
01f3da6b24 inspect: handle None in nested 2023-09-11 11:51:32 +02:00
lcnr
fc452e2ed3 split GoalEvaluation and CanonicalGoalEvaluation
the unnormalized goal is in the callers inference context, while
anything inside of the `CanonicalGoalEvaluation` is inside of
a new one.
2023-09-11 11:51:32 +02:00
bors
5d62ab8981 Auto merge of #115387 - weihanglo:merge-check-and-lint, r=oli-obk
Make unknown/renamed/removed lints passed via command line respect lint levels
2023-09-11 08:56:29 +00:00
Ralf Jung
e68e9d4a14 explain why DispatchFromDyn does the check it does 2023-09-11 10:24:53 +02:00
Oli Scherer
c2e790044c Allow loading the SMIR for constants and statics 2023-09-11 08:14:56 +00:00
bors
7d1e416d32 Auto merge of #115661 - nnethercote:disentangle-Debug-Display, r=compiler-errors
Disentangle `Debug` and `Display` for `Ty`.

The `Debug` impl for `Ty` just calls the `Display` impl for `Ty`. This is surprising and annoying. In particular, it means `Debug` doesn't show as much information as `Debug` for `TyKind` does. And `Debug` is used in some user-facing error messages, which seems bad.

This commit changes the `Debug` impl for `Ty` to call the `Debug` impl for `TyKind`. It also does a number of follow-up changes to preserve existing output, many of which involve inserting
`with_no_trimmed_paths!` calls. It also adds `Display` impls for `UserType` and `Canonical`.

Some tests have changes to expected output:
- Those that use the `rustc_abi(debug)` attribute.
- Those that use the `rustc_layout(debug)` attribute.
- Those that use the `EMIT_MIR` annotation.

In each case the output is slightly uglier than before. This isn't ideal, but it's pretty weird (particularly for the attributes) that the output is using `Debug` in the first place. They're fairly obscure attributes (I hadn't heard of them) so I'm not worried by this.

For `async-is-unwindsafe.stderr`, there is one line that now lacks a full path. This is a consistency improvement, because all the other mentions of `Context` in this test lack a path.
2023-09-11 07:05:18 +00:00
bors
e39976ff89 Auto merge of #115530 - onur-ozkan:update-config-info-comment, r=Mark-Simulacrum
update `build.extended` comments in `config.example.toml`

Fixes #115502
2023-09-11 05:15:43 +00:00
Zalathar
6e968b1e45 coverage: Simplify grouping of mappings by file
This removes an ad-hoc implementation of `group_by`.
2023-09-11 14:29:10 +10:00
Zalathar
1f56fa9657 coverage: Push down the call to get_expressions_and_counter_regions
These expressions and counter regions are only needed by the function that
encodes a function's coverage mappings payload.
2023-09-11 14:29:10 +10:00
Zalathar
99da8a83c2 coverage: Push down creation of the mappings payload buffer
Instead of writing coverage mappings into a supplied `&RustString`, this
function can just create the buffer itself and return the resulting vector of
bytes.
2023-09-11 14:29:10 +10:00
Zalathar
fbbb543ced coverage: Reserve capacity for all of a function's mapping regions
We already know in advance how many entries will be pushed onto this vector.
2023-09-11 14:29:10 +10:00
Zalathar
4f88aa0fbd coverage: Use a stable sort when grouping mapped regions by file
If two or more mappings cover exactly the same region, their relative order
will now be preserved from `get_expressions_and_counter_regions`, rather than
being disturbed by implementation details of an unstable sort.

The current order is: counter mappings, expression mappings, zero mappings.

(LLVM will also perform its own stable sort on these mappings, but that sort
only compares file ID, start location, and `RegionKind`.)
2023-09-11 14:29:09 +10:00
Zalathar
525ac15b66 coverage: Convert CoverageMapGenerator to GlobalFileTable
This struct was only being used to hold the global file table, and one of its
methods didn't even use the table. Changing its methods to ordinary functions
makes it easier to see where the table is mutated.
2023-09-11 14:29:09 +10:00
bors
9a099d2fa3 Auto merge of #115504 - bvanjoi:error-struct, r=cjgillot
resolve: derive diag for undetermined macro resolution

simply for neatness.
2023-09-11 03:28:52 +00:00
Nicholas Nethercote
64ea8eb1a9 Disentangle Debug and Display for Ty.
The `Debug` impl for `Ty` just calls the `Display` impl for `Ty`. This
is surprising and annoying. In particular, it means `Debug` doesn't show
as much information as `Debug` for `TyKind` does. And `Debug` is used in
some user-facing error messages, which seems bad.

This commit changes the `Debug` impl for `Ty` to call the `Debug` impl
for `TyKind`. It also does a number of follow-up changes to preserve
existing output, many of which involve inserting
`with_no_trimmed_paths!` calls. It also adds `Display` impls for
`UserType` and `Canonical`.

Some tests have changes to expected output:
- Those that use the `rustc_abi(debug)` attribute.
- Those that use the `EMIT_MIR` annotation.

In each case the output is slightly uglier than before. This isn't
ideal, but it's pretty weird (particularly for the attribute) that the
output is using `Debug` in the first place. They're fairly obscure
attributes (I hadn't heard of them) so I'm not worried by this.

For `async-is-unwindsafe.stderr`, there is one line that now lacks a
full path. This is a consistency improvement, because all the other
mentions of `Context` in this test lack a path.
2023-09-11 12:51:07 +10:00
reez12g
8bf075f2d0 make compiler/rustc_hir_typeck/src/generator_interior/mod.rs fmted 2023-09-11 11:35:43 +09:00
bors
9b72cc9abf Auto merge of #115388 - Zoxc:sharded-lock, r=SparrowLii
Add optimized lock methods for `Sharded` and refactor `Lock`

This adds methods to `Sharded` which pick a shard and also locks it. These branch on parallelism just once instead of twice, improving performance.

Benchmark for `cfg(parallel_compiler)` and 1 thread:
<table><tr><td rowspan="2">Benchmark</td><td colspan="1"><b>Before</b></th><td colspan="2"><b>After</b></th></tr><tr><td align="right">Time</td><td align="right">Time</td><td align="right">%</th></tr><tr><td>🟣 <b>clap</b>:check</td><td align="right">1.6461s</td><td align="right">1.6345s</td><td align="right"> -0.70%</td></tr><tr><td>🟣 <b>hyper</b>:check</td><td align="right">0.2414s</td><td align="right">0.2394s</td><td align="right"> -0.83%</td></tr><tr><td>🟣 <b>regex</b>:check</td><td align="right">0.9205s</td><td align="right">0.9143s</td><td align="right"> -0.67%</td></tr><tr><td>🟣 <b>syn</b>:check</td><td align="right">1.4981s</td><td align="right">1.4869s</td><td align="right"> -0.75%</td></tr><tr><td>🟣 <b>syntex_syntax</b>:check</td><td align="right">5.7629s</td><td align="right">5.7256s</td><td align="right"> -0.65%</td></tr><tr><td>Total</td><td align="right">10.0690s</td><td align="right">10.0008s</td><td align="right"> -0.68%</td></tr><tr><td>Summary</td><td align="right">1.0000s</td><td align="right">0.9928s</td><td align="right"> -0.72%</td></tr></table>

cc `@SparrowLii`
2023-09-11 01:43:29 +00:00
bors
9d311f9e2d Auto merge of #114967 - japaric:ja-gh114966, r=Mark-Simulacrum
QNX: pass a truncated thread name to the OS

The maximum length the thread name can have is `_NTO_THREAD_NAME_MAX`

fixes #114966
2023-09-10 23:55:38 +00:00
bors
030e4d382f Auto merge of #115682 - notriddle:notriddle/impl-sidebar, r=GuillaumeGomez
rustdoc: add impl items from aliased type into sidebar

Follow-up of https://github.com/rust-lang/rust/pull/115201.
2023-09-10 22:07:10 +00:00
Michael Goulet
30e6cea0ae Point out if a local trait has no implementations 2023-09-10 21:20:36 +00:00
León Orell Valerian Liehr
daf3c45531
Do not suggest generic const items unless enabled 2023-09-10 23:07:48 +02:00