rust-lang/rust-clippy

Suggest usage of `array.as_slice()` (instead of `&array[..]`) and `array.as_mut_slice()`

Open

#7.633 aberto em 4 de set. de 2021

Ver no GitHub
 (6 comments) (2 reactions) (1 assignee)Rust (1.391 forks)batch import
A-lintL-restrictiongood first issue

Métricas do repositório

Stars
 (10.406 stars)
Métricas de merge de PR
 (Mesclagem média 19d 22h) (113 fundiu PRs em 30d)

Description

What it does

Lints for example this code:

let array: [u8; 4] = [1, 2, 3, 4];
let slice: &[u8] = &array[..];

and suggests array::as_slice:

let array: [u8; 4] = [1, 2, 3, 4];
let slice: &[u8] = array.as_slice();

(same should be suggested for &mut array[..], which can be replaced with array.as_mut_slice())

Categories (optional)

  • Kind: clippy::pedantic or clippy::style

What is the advantage of the recommended code over the original code?

For example:

  • easier to read for people new to rust (not very obvious what [..] does)
  • there must be a reason why array::as_slice exists? (see rust-lang/rust#76120)

Drawbacks

  • might have a lot of false positives or not much benefit in using the function

Possibly related issues:

  • #728
  • #5598

Stabilization

At the time of writing this issue, the function is still unstable, but with the merging of rust-lang/rust#88353, this feature will be stabilized. (final-comment-period, so will be merged in the next few days)

Guia do colaborador