-
Notifications
You must be signed in to change notification settings - Fork 13.5k
Rework how the disallowed qualifier in function type diagnostics are generated #142302
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # 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