-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Prevent equality checks as statements #59028
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
Comments
Perhaps this should be transferred to the @pq, did we have a diagnostic for "code has no effect" (some special cases of that), but it was dropped again? |
@srawlins Who might also remember whether we used to have such a diagnostic. |
@eernstg, you may be thinking of |
In fact, @jonmountjoy: I think |
Exactly, |
Ahhh that's fabulous @eernstg @pq @bwilkerson - that does the job! This is so nice - thank you! |
Describe the rule you'd like to see added and to what rule set
I'd like to prevent this kind of bug:
In other words, I have a statement, and that statement is an equality check, the value of which I'm discarding.
It's almost always an error (for me, it's always an error), because what I invariably want to write is:
In other words, I've used an equality check (copy pasta or finger slip or whatever) instead of an assignment.
I can't imagine a scenario when anyone would want to write that kind of statement, but I guess it's possible. In other contexts (embedded as an expression), types would usually catch the error. But as a standalone statement, the type system is quite happy. I imagine at run time it performs the equality check and discards the boolean result.
In some ways I think it's similar to unawaited_futures. I wouldn't mind an "unused_boolean" - it would cover me in this situation and force me to think more about my other methods too.
Thoughts?
(thanks!)
The text was updated successfully, but these errors were encountered: