52 lines
900 B
Rust
52 lines
900 B
Rust
|
//@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);
|
||
|
}
|
||
|
}
|