Remove incorrect parse error recovery code that mistakes as casts for the long removed type ascription - #162700
Remove incorrect parse error recovery code that mistakes as casts for the long removed type ascription#162700fmease wants to merge 2 commits into
as casts for the long removed type ascription#162700Conversation
…or the long removed type ascription
|
r? @fee1-dead rustbot has assigned @fee1-dead. Use Why was this reviewer chosen?The reviewer was selected based on:
|
|
link #101728 |
|
maybe add a ui test for it since there is a observable change on diagnostics. |
I'm usually pro tests (of course) but in cases like here (or over there: #162704) I'm less in favor since the larger context is me being on a spree to dejank the parser trying to shave off as much crusty code as possible (cc #162269, #161796). How likely would it be for |
Back when we still had type ascription syntax
$expr : $ty,parse_assoc_op_castwould parse bothascasts & type ascription.During that time (namely in commit 8c5dafd), parse error recovery from code like
label: loop {}was added (label lacks leading apostrophe). However, it never checked if we did actually parse a:and not anasmeaning to this day we emit a nonsensical diagnostic for expressions likelabel as loop {}! This PR does away with this code & further cleans up in the area (thanks to type ascription being gone).In case you're wondering, we do still recover from expr stmts like
label: loop {}as we have some code in the stmt parser for this.Since the removal of the type ascription syntax we do indeed no longer provide that recovery for arbitrary exprs (e.g,
(label: loop {})) which I find absolutely acceptable.(No LLM was or will be used by me during the entire creation process of this PR)