-
-
Notifications
You must be signed in to change notification settings - Fork 85
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
New lints: Breaking changes in macros #946
Labels
A-lint
Area: new or existing lint
E-help-wanted
Call for participation: Help is requested to fix this issue.
E-mentor
Call for participation: Mentorship is available for this issue.
Comments
This was referenced Sep 26, 2024
I'll give a go at implementing "removing a declarative macro that used to exist". |
This was referenced Oct 15, 2024
Open
3 tasks
obi1kenobi
added a commit
that referenced
this issue
Dec 7, 2024
Addresses a checkbox in #946 --------- Co-authored-by: Predrag Gruevski <2348618+obi1kenobi@users.noreply.github.com>
obi1kenobi
pushed a commit
that referenced
this issue
Dec 8, 2024
Addresses checkbox in #946 . Distinguish between macros that are hidden vs just not exported.
obi1kenobi
added a commit
that referenced
this issue
Dec 8, 2024
Addresses checkbox in #946 --------- Co-authored-by: Predrag Gruevski <2348618+obi1kenobi@users.noreply.github.com>
obi1kenobi
added a commit
that referenced
this issue
Dec 16, 2024
# for free
to join this conversation on GitHub.
Already have an account?
# to comment
Labels
A-lint
Area: new or existing lint
E-help-wanted
Call for participation: Help is requested to fix this issue.
E-mentor
Call for participation: Mentorship is available for this issue.
There are several ways to cause a breaking change by changing macro item definitions that we can lint for today:
declarative_macro_missing
#966)#[doc(hidden)]
(Add lint macro_now_doc_hidden #1029)#[macro_export]
but is not#[doc(hidden)]
-- variant of Add lintdeclarative_macro_missing
#966 in that the macro can't be used, but it's still defined, just local to its defining crate (Add new lint macro_no_longer_exported #1031)#[doc(hidden)]
(Addproc_macro_now_doc_hidden
lint. #1050)Relevant docs we can use as references in the lints:
The lints here will be similar to existing "item missing" lints (e.g. enum missing, enum variant missing), with one important difference: macros are always at the top level of the crate that defined them. They don't have importable paths, so our matching doesn't need the
importable_path
edge like for other items and can instead simply rely on the macro's own name.Make sure to check out our contributing guide, and take a look at what prior lints' merged PRs looked like so you know what to expect. It's easier than you think!
The text was updated successfully, but these errors were encountered: