Uh oh!
There was an error while loading. Please reload this page.
Give correct suggestion for a typo in raw pointers - #145903
Conversation
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
| let allow_qpath_recovery = recover_qpath == RecoverQPath::Yes; | ||
| maybe_recover_from_interpolated_ty_qpath!(self, allow_qpath_recovery); | ||
| if (self.token.is_keyword(kw::Const) || self.token.is_keyword(kw::Mut)) |
There was a problem hiding this comment.
This probably should also be moved into a separate function and also moved way down into the actually if else chain below rather than being hit first on every call to parse_ty_common
There was a problem hiding this comment.
This was made exactly like attribute parsing in types right below, this why I originally chose this place and this strategy
About snapshoting I'm not fully sure I can and should use it here, not only because I fully know how and why it should be used, I checked other places where snapshotting was used and it mostly like in Err branch of match which I don't use
About eating Star it looks correct for me here even if we know that here is Star 100% beacuse we checked it in if, but if there any other way more better way to do I'm in full ears, but honestly I dont personally like this if branch here because of unreachable!, so yeah, should be a better way to do it,
I also adressed a wording problem, new one should be more straighforward and clear for end user
And I made a recovery as a TyKind::Ptr, agree that this is better generally
Also about lookahead(2) or can_begin_type I'm not quite sure why we need it, I'm parsing type in if with parse_ty_no_question_mark_recover to create a TyKind::Ptr from it, and if there will be no type at all it should fail earlier with a different error
18a0d8e to
86b7749CompareKivooeo
commented
Aug 27, 2025
@rustbot ready |
86b7749 to
866feadComparerustbot
commented
Oct 13, 2025
|
Kivooeo
commented
Oct 24, 2025
r? compiler |
Uh oh!
There was an error while loading. Please reload this page.
866fead to
ea96b79Comparedavidtwco
commented
Nov 3, 2025
@bors r+ rollup |
bors
commented
Nov 3, 2025
Rollup of 8 pull requests Successful merges: - #135099 (Add FileCheck annotations to mir-opt/copy-prop) - #145903 (Give correct suggestion for a typo in raw pointers) - #147520 (Port the remaining SIMD intrinsics to const-eval) - #148068 (rustdoc: Use configured target modifiers when collecting doctests) - #148099 (Prepare to move debugger discovery from compiletest to bootstrap) - #148268 (rustdoc: fix `--emit=dep-info` on scraped examples) - #148306 (Remove double check when decoding ExpnId to avoid races) - #148378 (Fix documentation for std::panic::update_hook) r? `@ghost` `@rustbot` modify labels: rollup
Uh oh!
There was an error while loading. Please reload this page.
Rollup merge of #145903 - Kivooeo:c-style-pointer, r=davidtwco Give correct suggestion for a typo in raw pointers This adds a check for when user wrote `const* T` instead of `*const T`, I just saw how a C-person made this typo and compiler suggests this ```rust --> src/main.rs:2:17 | 2 | let p: const* u8 = 0 as _; | ^ | help: add `mut` or `const` here | 2 | let p: const*mut u8 = 0 as _; | +++ 2 | let p: const*const u8 = 0 as _; | +++++ ``` which is very incorrect also fixes#136602 r? compiler
Rollup of 8 pull requests Successful merges: - rust-lang/rust#135099 (Add FileCheck annotations to mir-opt/copy-prop) - rust-lang/rust#145903 (Give correct suggestion for a typo in raw pointers) - rust-lang/rust#147520 (Port the remaining SIMD intrinsics to const-eval) - rust-lang/rust#148068 (rustdoc: Use configured target modifiers when collecting doctests) - rust-lang/rust#148099 (Prepare to move debugger discovery from compiletest to bootstrap) - rust-lang/rust#148268 (rustdoc: fix `--emit=dep-info` on scraped examples) - rust-lang/rust#148306 (Remove double check when decoding ExpnId to avoid races) - rust-lang/rust#148378 (Fix documentation for std::panic::update_hook) r? `@ghost` `@rustbot` modify labels: rollup
…llaumeGomez Rollup of 8 pull requests Successful merges: - rust-lang#135099 (Add FileCheck annotations to mir-opt/copy-prop) - rust-lang#145903 (Give correct suggestion for a typo in raw pointers) - rust-lang#147520 (Port the remaining SIMD intrinsics to const-eval) - rust-lang#148068 (rustdoc: Use configured target modifiers when collecting doctests) - rust-lang#148099 (Prepare to move debugger discovery from compiletest to bootstrap) - rust-lang#148268 (rustdoc: fix `--emit=dep-info` on scraped examples) - rust-lang#148306 (Remove double check when decoding ExpnId to avoid races) - rust-lang#148378 (Fix documentation for std::panic::update_hook) r? `@ghost` `@rustbot` modify labels: rollup
This adds a check for when user wrote
const* Tinstead of*const T, I just saw how a C-person made this typo and compiler suggests thiswhich is very incorrect
also fixes#136602
r? compiler