Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Auto merge of rust-lang#11379 - popzxc:fix-tuple-array-conversions, r…
…=xFrednet Fix tuple_array_conversions lint on nightly ``` changelog: ICE: [`tuple_array_conversions`]: Don't expect array length to always be usize ``` tl;dr: changed [`Const::eval_target_usize`](https://github.com/rust-lang/rust/blob/master/compiler/rustc_middle/src/ty/consts.rs#L359) to [`Consts::try_eval_target_usize`](https://github.com/rust-lang/rust/blob/master/compiler/rustc_middle/src/ty/consts.rs#L327) to get rid of ICE. I have encountered a problem with clippy: it caught ICE when working with a codebase that uses a lot of nightly features. Here's a (stripped) ICE info: ``` error: internal compiler error: /rustc/5c6a7e71cd66705c31c9af94077901a220f0870c/compiler/rustc_middle/src/ty/consts.rs:361:32: expected usize, got Const { ty: usize, kind: N/#1 } thread 'rustc' panicked at /rustc/5c6a7e71cd66705c31c9af94077901a220f0870c/compiler/rustc_errors/src/lib.rs:1635:9: Box<dyn Any> stack backtrace: ... 16: 0x110b9c590 - rustc_middle[449edf845976488d]::util::bug::bug_fmt 17: 0x102f76ae0 - clippy_lints[71754038dd04c2d2]::tuple_array_conversions::all_bindings_are_for_conv ... ``` I don't really know what's going on low-level-wise, but seems like this lin assumed that the length of the array can always be treated as `usize`, and *I assume* this doesn't play well with `feat(generic_const_exprs)`. I wasn't able to build a minimal reproducible example, but locally this fix does resolve the issue.
- Loading branch information