| //@aux-build:proc_macros.rs |
| #![warn(clippy::reserve_after_initialization)] |
| #![no_main] |
| |
| extern crate proc_macros; |
| use proc_macros::{external, with_span}; |
| |
| // Should lint |
| fn standard() { |
| let mut v1: Vec<usize> = vec![]; |
| v1.reserve(10); |
| } |
| |
| // Should lint |
| fn capacity_as_expr() { |
| let capacity = 10; |
| let mut v2: Vec<usize> = vec![]; |
| v2.reserve(capacity); |
| } |
| |
| // Shouldn't lint |
| fn vec_init_with_argument() { |
| let mut v3 = vec![1]; |
| v3.reserve(10); |
| } |
| |
| // Shouldn't lint |
| fn called_with_capacity() { |
| let _v4: Vec<usize> = Vec::with_capacity(10); |
| } |
| |
| // Should lint |
| fn assign_expression() { |
| let mut v5: Vec<usize> = Vec::new(); |
| v5 = Vec::new(); |
| v5.reserve(10); |
| } |
| |
| fn in_macros() { |
| external! { |
| let mut v: Vec<usize> = vec![]; |
| v.reserve(10); |
| } |
| |
| with_span! { |
| span |
| |
| let mut v: Vec<usize> = vec![]; |
| v.reserve(10); |
| } |
| } |