Nicholas Nethercote
3449304722
Make enum decoding errors more informative.
...
By printing the actual value, as long as the expected range. I found
this helpful when I encountered one of these errors.
2023-08-18 16:50:41 +10:00
Nicholas Nethercote
9167eea553
Use interpolated_or_expr_span
in one suitable place.
2023-08-18 16:50:41 +10:00
Nicholas Nethercote
dee6c9241f
Refactor interpolated_or_expr_span
.
...
It's much more complicated than it needs to be, and it doesn't modify
the expression. We can do the `Result` handling outside of it, and
change it to just return a span.
Also fix an errant comma that makes the comment hard to read.
2023-08-18 16:50:41 +10:00
bors
a1e1dba9cc
Auto merge of #114611 - nnethercote:type-system-chess, r=compiler-errors
...
Speed up compilation of `type-system-chess`
[`type-system-chess`](https://github.com/rust-lang/rustc-perf/pull/1680 ) is an unusual program that implements a compile-time chess position solver in the trait system(!) This PR is about making it compile faster.
r? `@ghost`
2023-08-18 06:29:38 +00:00
bors
9b4119009e
Auto merge of #114951 - cuviper:rollup-iitoep5, r=cuviper
...
Rollup of 5 pull requests
Successful merges:
- #113715 (Unstable Book: update `lang_items` page and split it)
- #114897 (Partially revert #107200 )
- #114913 (Fix suggestion for attempting to define a string with single quotes)
- #114931 (Revert PR #114052 to fix invalid suggestion)
- #114944 (update `thiserror` to version >= 1.0.46)
r? `@ghost`
`@rustbot` modify labels: rollup
2023-08-18 00:12:59 +00:00
Josh Stone
5861815559
Rollup merge of #114931 - Urgau:revert-114052, r=compiler-errors
...
Revert PR #114052 to fix invalid suggestion
This PR reverts https://github.com/rust-lang/rust/pull/114052 to fix the invalid suggestion produced by the PR.
Unfortunately the invalid suggestion cannot be improved from the current position where it's emitted since we lack enough information (is an assignment?, left or right?, ...) to be able to fix it here. Furthermore the previous wasn't wrong, just suboptimal, contrary to the current one which is just wrong.
Added a regression test and commented out some code instead of removing it so we can use it later.
Reopens https://github.com/rust-lang/rust/issues/114050
Fixes https://github.com/rust-lang/rust/issues/114925
2023-08-17 15:40:09 -07:00
Josh Stone
7ea4de9632
Rollup merge of #114913 - beetrees:escape-double-quote, r=davidtwco
...
Fix suggestion for attempting to define a string with single quotes
Currently attempting to compile `fn main() { let _ = '\\"'; }` will result in the following error message:
```
error: character literal may only contain one codepoint
--> src/main.rs:1:21
|
1 | fn main() { let _ = '\\"'; }
| ^^^^^
|
help: if you meant to write a `str` literal, use double quotes
|
1 | fn main() { let _ = "\\""; }
| ~~~~~
```
The suggestion is invalid as it fails to escape the `"`. This PR fixes the suggestion so that it now reads:
```
help: if you meant to write a `str` literal, use double quotes
|
1 | fn main() { let _ = "\\\""; }
| ~~~~~~
```
The relevant test is also updated to ensure that this does not regress in future.
2023-08-17 15:40:09 -07:00
Josh Stone
cd50556e90
Rollup merge of #113715 - kadiwa4:lang_items_doc, r=JohnTitor
...
Unstable Book: update `lang_items` page and split it
[`lang_items` rendered](https://github.com/kadiwa4/rust/blob/lang_items_doc/src/doc/unstable-book/src/language-features/lang-items.md ), [`start` rendered](https://github.com/kadiwa4/rust/blob/lang_items_doc/src/doc/unstable-book/src/language-features/start.md )
Closes #110274
Rustonomicon PR: rust-lang/nomicon#413 , Rust Book PR: rust-lang/book#3705
A lot of information doesn't belong on the `lang_items` page. I added a separate page for the `start` feature and moved some text into the Rustonomicon because the `lang_items` page should not be a tutorial on how to build a `#![no_std]` executable.
The list of existing lang items is too long/unstable, so I removed it.
The doctests still don't work. :(
2023-08-17 15:40:08 -07:00
bors
ccc3ac0cae
Auto merge of #114904 - cjgillot:no-ref-debuginfo, r=wesleywiser
...
Remove references in VarDebugInfo
The codegen implementation is broken, and attempted to read uninitialized memory.
Fixes https://github.com/rust-lang/rust/issues/114488
2023-08-17 22:22:06 +00:00
Michael Goulet
20c648c582
Normalize before checking if local is freeze in deduced_param_attrs
2023-08-17 14:33:24 -07:00
bors
0768872680
Auto merge of #114802 - chenyukang:yukang-fix-114979-bad-parens-dyn, r=estebank
...
Fix bad suggestion when wrong parentheses around a dyn trait
Fixes #114797
2023-08-17 17:54:50 +00:00
Camille GILLOT
933b618360
Revert "Implement references VarDebugInfo."
...
This reverts commit 2ec0071913
.
2023-08-17 17:02:04 +00:00
ChoKyuWon
3bd54c14bc
Replace the \01__gnu_mcount_nc to LLVM intrinsic for ARM
...
Current `-Zinstrument-mcount` for ARM32 use the `\01__gnu_mcount_nc`
directly for its instrumentation function.
However, the LLVM does not use this mcount function directly, but it wraps
it to intrinsic, `llvm.arm.gnu.eabi.mcount` and the transform pass also
only handle the intrinsic.
As a result, current `-Zinstrument-mcount` not work on ARM32.
Refer: https://github.com/namhyung/uftrace/issues/1764
This commit replaces the mcount name from native function to the
LLVM intrinsic so that the transform pass can handle it.
Signed-off-by: ChoKyuWon <kyuwoncho18@gmail.com>
2023-08-18 01:52:40 +09:00
Urgau
1c73248b67
Revert PR #114052 to fix invalid suggestion
2023-08-17 14:33:33 +02:00
Caio
6395dc2cde
[RFC-3086] Restrict the parsing of count
2023-08-17 08:52:37 -03:00
Matthias Krüger
084c87dfea
Rollup merge of #114876 - compiler-errors:non-lifetime-binders-sized, r=wesleywiser
...
Don't ICE in `is_trivially_sized` when encountering late-bound self ty
We can see a bound ty var here:
b531630f42/compiler/rustc_trait_selection/src/traits/query/type_op/prove_predicate.rs (L13-L34)
Fixes #114872
2023-08-17 08:39:21 +02:00
bors
c5833f1956
Auto merge of #114892 - Zoxc:sharded-cfg-cleanup, r=cjgillot
...
Remove conditional use of `Sharded` from query caches
`Sharded` is already a zero cost abstraction, so it shouldn't affect the performance of the single thread compiler if LLVM does its job.
r? `@cjgillot`
2023-08-17 01:04:38 +00:00
bors
f3b4c6746a
Auto merge of #111555 - cjgillot:elaborate-drops, r=tmiasko
...
Only run MaybeInitializedPlaces dataflow once to elaborate drops
This pass allows forward dataflow analyses to modify the CFG depending on the dataflow state. This possibility is used for the `MaybeInitializedPlace` analysis in drop elaboration, to skip the dataflow effect of dead unwinds without having to compute dataflow twice.
2023-08-16 23:21:17 +00:00
Nicholas Nethercote
e46caaf84b
Simplify a match
.
...
`may_be_ident` is true for `NtPath` and `NtMeta`, so we don't need to
check for them separately.
2023-08-17 09:06:03 +10:00
Nicholas Nethercote
9a3c907bdb
Make some match
es exhaustive in nonterminal.rs
.
...
For ones matching more than one or two variants, this is easier to think
about.
2023-08-17 09:05:37 +10:00
Nicholas Nethercote
f8a21a5df0
Use Nonterminal::*
in nonterminal.rs
.
...
It makes the code more readable.
2023-08-17 09:05:07 +10:00
Nicholas Nethercote
acd3a5e35f
Remove unnecessary braces on PatWithOr
patterns.
2023-08-17 09:04:54 +10:00
Nicholas Nethercote
e8f733370f
Add some useful comments to Parser::look_ahead
.
2023-08-17 09:03:56 +10:00
Nicholas Nethercote
04cf6b4ac5
Rename parse_no_question_mark_recover
.
...
Adding a `ty_` makes its purpose much clearer, and consistent with other
`parse_ty_*` functions.
2023-08-17 09:01:12 +10:00
Nicholas Nethercote
3bb85b73b5
Add helpful comments to tt_prepend_space
.
2023-08-17 09:01:05 +10:00
Nicholas Nethercote
434bfc3162
Remove outdated comment.
...
All nonterminals collect and store tokens now. (Unless they are very
simple, e.g. single-token, and can precisely recover them without
collecting.)
2023-08-17 08:26:56 +10:00
Nicholas Nethercote
9de696b39f
Remove some unnecessary (and badly named) local variables.
2023-08-17 08:26:55 +10:00
bors
07438b0928
Auto merge of #108693 - Zoxc:arena-opt-funcs, r=cjgillot
...
Optimize DroplessArena arena allocation
This optimizes `DroplessArena` allocation by always ensuring that it is aligned to `usize` and adding `grow_and_alloc` and `grow_and_alloc_raw`functions which both grow and allocate, reducing code size.
<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.6968s</td><td align="right">1.6887s</td><td align="right"> -0.48%</td></tr><tr><td>🟣 <b>hyper</b>:check</td><td align="right">0.2552s</td><td align="right">0.2551s</td><td align="right"> -0.03%</td></tr><tr><td>🟣 <b>regex</b>:check</td><td align="right">0.9613s</td><td align="right">0.9553s</td><td align="right"> -0.62%</td></tr><tr><td>🟣 <b>syn</b>:check</td><td align="right">1.5402s</td><td align="right">1.5374s</td><td align="right"> -0.18%</td></tr><tr><td>🟣 <b>syntex_syntax</b>:check</td><td align="right">5.9175s</td><td align="right">5.8813s</td><td align="right"> -0.61%</td></tr><tr><td>Total</td><td align="right">10.3710s</td><td align="right">10.3178s</td><td align="right"> -0.51%</td></tr><tr><td>Summary</td><td align="right">1.0000s</td><td align="right">0.9962s</td><td align="right"> -0.38%</td></tr></table>
2023-08-16 21:37:13 +00:00
Michael Goulet
2cc71ba881
Normalize return type of deduce_future_output_from_obligations
2023-08-16 14:28:19 -07:00
beetrees
072d8c8bbc
Fix suggestion for attempting to define a string with single quotes
2023-08-16 21:51:57 +01:00
Camille GILLOT
5b2524eb03
Do not pre-compute reachable blocks.
2023-08-16 19:40:46 +00:00
Camille GILLOT
f5e4eb91b7
Use Terminator::edges for backward analysis too.
2023-08-16 19:40:46 +00:00
Camille GILLOT
94c5ea350f
Update doc comment.
2023-08-16 18:15:49 +00:00
Camille GILLOT
b8fed2f21c
Make dataflow const-prop handle_switch_int monotonic.
2023-08-16 18:12:18 +00:00
Camille GILLOT
e9990ce89c
Only evaluate yield place after resume in liveness.
2023-08-16 18:12:18 +00:00
Camille GILLOT
7ded3409b8
Specify that method only applies statement effects.
2023-08-16 18:12:18 +00:00
Camille GILLOT
aa697f599e
Rename YieldResumeEffect.
2023-08-16 18:12:18 +00:00
Camille GILLOT
388f6a6413
Make TerminatorEdge plural.
2023-08-16 18:12:18 +00:00
Camille GILLOT
6cf15d4cb5
Rename MaybeUnreachable.
2023-08-16 18:12:18 +00:00
Camille GILLOT
f19cd3f2e1
Use TerminatorEdge for dataflow-const-prop.
2023-08-16 18:12:18 +00:00
Camille GILLOT
3acfa092db
Only run MaybeInitializedPlaces once for drop elaboration.
2023-08-16 18:12:18 +00:00
Camille GILLOT
5173d85043
Allow apply_terminator_effect to customize edges.
2023-08-16 18:12:17 +00:00
Camille GILLOT
32711b2b4e
Introduce MaybeUnreachable.
2023-08-16 18:12:17 +00:00
Camille GILLOT
934a99eb65
Move domain_size to GenKillAnalysis.
2023-08-16 18:12:17 +00:00
Camille GILLOT
8726cbc75f
Move initialization dataflow impls into their own module.
2023-08-16 18:12:17 +00:00
Camille GILLOT
760881b29d
Create bottom on-the-fly instead of cloning it.
2023-08-16 18:12:17 +00:00
Camille GILLOT
9c97abd54c
Simplify for_each_mut_borrow.
2023-08-16 18:12:17 +00:00
Matthias Krüger
f6c20ad131
Rollup merge of #114899 - spastorino:add-missing-debug, r=compiler-errors
...
Add missing Clone/Debug impls to SMIR Trait related tys
r? `@compiler-errors`
2023-08-16 20:10:38 +02:00
Matthias Krüger
2667d853a6
Rollup merge of #114784 - Urgau:many-improve-invalid_reference_casting-lint, r=est31
...
Improve `invalid_reference_casting` lint
This PR improves the `invalid_reference_casting` lint:
- by considering an unlimited number of casts instead only const to mut ptr
- by also considering ptr-to-integer and integer-to-ptr casts
- by also taking into account [`ptr::cast`](https://doc.rust-lang.org/std/primitive.pointer.html#method.cast ), [`ptr::cast`](https://doc.rust-lang.org/std/primitive.pointer.html#method.cast-1 ) and [`ptr::cast_const`](https://doc.rust-lang.org/std/primitive.pointer.html#method.cast_const )
Most of this improvements comes from skimming Github Code Search result for [`&mut \*.*as \*const`](https://github.com/search?q=lang%3Arust+%2F%26mut+%5C*.*as+%5C*const%2F&type=code )
r? ``@est31`` (maybe)
2023-08-16 20:10:37 +02:00
Santiago Pastorino
66573b5781
Add missing Clone/Debug impls to SMIR Trait related tys
2023-08-16 13:10:52 -03:00