Add lint: panicking_query_methods and panicking_world_methods#95
Merged
Add lint: panicking_query_methods and panicking_world_methods#95
panicking_query_methods and panicking_world_methods#95Conversation
Member
|
There's a little list of panicking APIs in bevyengine/bevy#14275 FYI :) |
Member
Author
|
I'm going to modify this to also check for panicking |
panicking_query_methodspanicking_query_methods and panicking_world_methods
Member
Author
|
Ok, I believe this is now ready for review again. It now supports linting against |
Member
Author
|
I merged #106 directly into this, so that will need to be merged before this can. |
TimJentzsch
approved these changes
Sep 27, 2024
Collaborator
TimJentzsch
left a comment
There was a problem hiding this comment.
Mostly some doc nits, but nothing blocking
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
As per @alice-i-cecile's request! Closes #58.
This adds the
bevy::panicking_query_methodslint, which searches for usage of panicking methods likeQuery::single(). It is currentlyAllow-by-default, so you need to explicitly opt-in to use it. (In the project it's under the Restriction category.)This lint checks both
QueryandQueryState. I will write a lint for resources in another PR. :)Testing
Wow, I'm so glad you asked! (You asked how to test this lint, right?)
I used the following example when testing. Paste it into
bevy_lint/examples/lint_test.rs, runcd bevy_lint, then runcargo build && cargo run -- --example lint_test.The warnings should look like this:
Fiddle around with it and try to break it! Good luck, though. Unless you use #94, this is the most foolproof lint I've written so far! >:D