Skip to content
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

Request Clippy lints for antipatterns we discover #21

Open
Shnatsel opened this issue Aug 31, 2019 · 10 comments
Open

Request Clippy lints for antipatterns we discover #21

Shnatsel opened this issue Aug 31, 2019 · 10 comments

Comments

@Shnatsel
Copy link
Member

We encounter a lot of unsafe code that can be converted to safe. We should start cataloguing the antipatterns we discover and document how to convert them to safe code.

Also, for every antipattern discovered we should open an issue against Clippy to detect it - that way we can effectively prevent such cases in the future. This already has precedent, see e.g. rust-lang/rust-clippy#3237

@alex
Copy link
Member

alex commented Aug 31, 2019

rust-lang/rust-clippy#4375 is another example

@Lokathor
Copy link
Contributor

One thing is that uninitialized() can be replaced with zeroed() in all cases. All of them. Any time memory can't be zeroed() it couldn't have been uninitialized() anyway.

So even if they don't want to switch to MaybeUninit (eg: want to support an old compiler), they can switch to zeroed(). It's not definitely safe, but it safer at least.

@Shnatsel
Copy link
Member Author

Shnatsel commented Sep 1, 2019

I thought "why document stuff if we can ask for clippy lints right away?"

And then this happened: rust-lang/rust-clippy#4483

I'll need to review the unsafe code I've already purged, but this is already a big, multi-faceted work item right there.

@Shnatsel
Copy link
Member Author

Shnatsel commented Sep 1, 2019

@Shnatsel
Copy link
Member Author

Shnatsel commented Sep 6, 2019

@Shnatsel Shnatsel changed the title Start documenting antipatterns Request Clippy lints for antipatterns we discover Oct 12, 2019
@Shnatsel
Copy link
Member Author

Shnatsel commented Nov 5, 2019

Requested another lint based on a bug in real-world code: rust-lang/rust-clippy#4774
And a compiler warning, because it looks easy to reliably detect and dangerous enough to warn against it by default, without relying on optional tooling: rust-lang/rust#66136

I've also requested improvements to an existing lint, although this one might be tricky: rust-lang/rust-clippy#4765

@Lokathor
Copy link
Contributor

Lokathor commented Nov 5, 2019

I already requested a lint for the problem case I hit XD

gotta check existing issues!

@Shnatsel
Copy link
Member Author

Another lint requested: rust-lang/rust-clippy#4862

@Shnatsel
Copy link
Member Author

Shnatsel commented Dec 8, 2019

@Shnatsel
Copy link
Member Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants