-
Notifications
You must be signed in to change notification settings - Fork 13.4k
Rework how the disallowed qualifier in function type diagnostics are generated #142302
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
43f3afd
to
dc49bef
Compare
@rustbot author |
Reminder, once the PR becomes ready for a review, use |
f4135a4
to
8cfeeb8
Compare
@rustbot ready |
compiler/rustc_parse/messages.ftl
Outdated
|
||
parse_fn_pointer_cannot_be_const = an `fn` pointer type cannot be `const` | ||
.label = `const` because of this | ||
.suggestion = remove the `const` qualifier | ||
.note = allowed qualifiers are: `unsafe`, `extern` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
could you say
unsafe
andextern
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed.
I decided to keep the :
in the allowed qualifiers are: 'unsafe' and 'extern'
, but if you want to remove that lmk
r=me after that |
@rustbot author |
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
8cfeeb8
to
b131b6f
Compare
@rustbot ready |
Rollup of 16 pull requests Successful merges: - #140969 (Allow initializing logger with additional tracing Layer) - #141352 (builtin dyn impl no guide inference) - #142046 (add Vec::peek_mut) - #142273 (tests: Minicore `extern "gpu-kernel"` feature test) - #142302 (Rework how the disallowed qualifier in function type diagnostics are generated) - #142405 (Don't hardcode the intrinsic return types twice in the compiler) - #142434 ( Pre-install JS dependencies in tidy Dockerfile) - #142439 (doc: mention that intrinsics should not be called in user code) - #142441 (Delay replacing escaping bound vars in `FindParamInClause`) - #142449 (Require generic params for const generic params) - #142452 (Remove "intermittent" wording from `ReadDir`) - #142459 (Remove output helper bootstrap) - #142460 (cleanup search graph impl) - #142461 (compiletest: Clarify that `--no-capture` is needed with `--verbose`) - #142475 (Add platform support docs & maintainers for *-windows-msvc) - #142480 (tests: Convert two handwritten minicores to add-core-stubs) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of #142302 - JonathanBrouwer:invalid-const-token, r=jdonszelmann Rework how the disallowed qualifier in function type diagnostics are generated This pull request fixes two independent issues: 1. When qualifiers of a function type ptr are in the wrong order and one of them is async/const (not permitted on function types), the diagnostic suggests removing the incorrect qualifier. Fixes #142268, which is an issue created by #133151. This is fixed by moving the check into `parse_fn_front_matter`, where better span information is available to generate the right suggestions. 2. When qualifiers of a function type ptr are in the wrong order and one of them is async/const (not permitted on function types), `cargo fix` crashes because "cannot replace slice of data that was already replaced". This is fixed by not generating a suggestion for the "wrong order" diagnostic if the "disallowed qualifier" diagnostic is triggered. There is a commit with failing tests so the test diff is clearer r? `@jdonszelmann`
This pull request fixes two independent issues:
unsafe const fn()
type #142268, which is an issue created by Trim extra whitespace in fn ptr suggestion span #133151. This is fixed by moving the check intoparse_fn_front_matter
, where better span information is available to generate the right suggestions.cargo fix
crashes because "cannot replace slice of data that was already replaced". This is fixed by not generating a suggestion for the "wrong order" diagnostic if the "disallowed qualifier" diagnostic is triggered.There is a commit with failing tests so the test diff is clearer
r? @jdonszelmann