Closed BD103 closed 2 months ago
There's a little list of panicking APIs in https://github.com/bevyengine/bevy/issues/14275 FYI :)
I'm going to modify this to also check for panicking World
methods.
Ok, I believe this is now ready for review again. It now supports linting against World
, as well as Query
and QueryState
.
I merged #106 directly into this, so that will need to be merged before this can.
As per @alice-i-cecile's request! Closes #58.
This adds the
bevy::panicking_query_methods
lint, 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
Query
andQueryState
. 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