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

Static default methods don't work at all #7569

Closed
msullivan opened this issue Jul 3, 2013 · 0 comments
Closed

Static default methods don't work at all #7569

msullivan opened this issue Jul 3, 2013 · 0 comments
Labels
A-trait-system Area: Trait system I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️

Comments

@msullivan
Copy link
Contributor

Any attempt to use them meets with an ICE.

I have a good understanding of what is wrong, and know ways to fix it, but don't like any of them at all. Pondering a bit more.

Part of #2794.

@ghost ghost assigned msullivan Jul 3, 2013
@msullivan msullivan removed their assignment Jun 16, 2014
flip1995 pushed a commit to flip1995/rust that referenced this issue Sep 8, 2021
…, r=Manishearth

Avoid slice indexing in Clippy (down with the ICEs)

While working on rust-lang#7569 I got about 23 lint reports where we can avoid slice indexing by destructing the slice early. This is a preparation PR to avoid fixing them in the lint PR. (The implementation already takes about 300 lines without tests 😅). Either way, this should hopefully be easy to review 🙃

---

changelog: none
flip1995 pushed a commit to flip1995/rust that referenced this issue Nov 23, 2021
…steffen

New lint `index_refutable_slice` to avoid slice indexing

A new lint to check for slices that could be deconstructed to avoid indexing. This lint should hopefully prevent some panics in other projects and ICEs for us. See rust-lang#7569 for an example

The implementation specifically checks for immutable bindings in `if let` statements to slices and arrays. Then it checks if these bindings are only used for value access using indices and that these indices are lower than the configured limit. I did my best to keep the implementation small, however the check was sadly quite complex. Now it's around 300 lines for the implementation and the rest are test.

---

Optional future improvements:
* Check for these instances also in `match` statements
* Check for mutable slice bindings that could also be destructed

---

changelog: New lint [`index_refutable_slice`]

I've already fixed a bunch of lint triggers in rust-lang#7638 to make this PR smaller

Closes: rust-lang#7569
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-trait-system Area: Trait system I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️
Projects
None yet
Development

No branches or pull requests

1 participant