File tree 4 files changed +77
-3
lines changed
4 files changed +77
-3
lines changed Original file line number Diff line number Diff line change @@ -154,6 +154,10 @@ impl UselessVec {
154
154
span : Span ,
155
155
suggest_slice : SuggestedType ,
156
156
) {
157
+ if span. from_expansion ( ) {
158
+ return ;
159
+ }
160
+
157
161
let mut applicability = Applicability :: MachineApplicable ;
158
162
159
163
let snippet = match * vec_args {
Original file line number Diff line number Diff line change @@ -124,6 +124,35 @@ fn issue11075() {
124
124
for _string in [repro!(true), repro!(null)] {
125
125
unimplemented!();
126
126
}
127
+
128
+ macro_rules! in_macro {
129
+ ($e:expr, $vec:expr, $vec2:expr) => {{
130
+ vec![1; 2].fill(3);
131
+ vec![1, 2].fill(3);
132
+ for _ in vec![1, 2] {}
133
+ for _ in vec![1; 2] {}
134
+ for _ in vec![$e, $e] {}
135
+ for _ in vec![$e; 2] {}
136
+ for _ in $vec {}
137
+ for _ in $vec2 {}
138
+ }};
139
+ }
140
+
141
+ in_macro!(1, [1, 2], [1; 2]);
142
+
143
+ macro_rules! from_macro {
144
+ () => {
145
+ vec![1, 2, 3]
146
+ };
147
+ }
148
+ macro_rules! from_macro_repeat {
149
+ () => {
150
+ vec![1; 3]
151
+ };
152
+ }
153
+
154
+ for _ in from_macro!() {}
155
+ for _ in from_macro_repeat!() {}
127
156
}
128
157
129
158
#[clippy::msrv = "1.53"]
Original file line number Diff line number Diff line change @@ -124,6 +124,35 @@ fn issue11075() {
124
124
for _string in vec ! [ repro!( true ) , repro!( null) ] {
125
125
unimplemented ! ( ) ;
126
126
}
127
+
128
+ macro_rules! in_macro {
129
+ ( $e: expr, $vec: expr, $vec2: expr) => { {
130
+ vec![ 1 ; 2 ] . fill( 3 ) ;
131
+ vec![ 1 , 2 ] . fill( 3 ) ;
132
+ for _ in vec![ 1 , 2 ] { }
133
+ for _ in vec![ 1 ; 2 ] { }
134
+ for _ in vec![ $e, $e] { }
135
+ for _ in vec![ $e; 2 ] { }
136
+ for _ in $vec { }
137
+ for _ in $vec2 { }
138
+ } } ;
139
+ }
140
+
141
+ in_macro ! ( 1 , vec![ 1 , 2 ] , vec![ 1 ; 2 ] ) ;
142
+
143
+ macro_rules! from_macro {
144
+ ( ) => {
145
+ vec![ 1 , 2 , 3 ]
146
+ } ;
147
+ }
148
+ macro_rules! from_macro_repeat {
149
+ ( ) => {
150
+ vec![ 1 ; 3 ]
151
+ } ;
152
+ }
153
+
154
+ for _ in from_macro ! ( ) { }
155
+ for _ in from_macro_repeat ! ( ) { }
127
156
}
128
157
129
158
#[ clippy:: msrv = "1.53" ]
Original file line number Diff line number Diff line change @@ -91,16 +91,28 @@ LL | for _string in vec![repro!(true), repro!(null)] {
91
91
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `[repro!(true), repro!(null)]`
92
92
93
93
error: useless use of `vec!`
94
- --> $DIR/vec.rs:131:14
94
+ --> $DIR/vec.rs:141:18
95
+ |
96
+ LL | in_macro!(1, vec![1, 2], vec![1; 2]);
97
+ | ^^^^^^^^^^ help: you can use an array directly: `[1, 2]`
98
+
99
+ error: useless use of `vec!`
100
+ --> $DIR/vec.rs:141:30
101
+ |
102
+ LL | in_macro!(1, vec![1, 2], vec![1; 2]);
103
+ | ^^^^^^^^^^ help: you can use an array directly: `[1; 2]`
104
+
105
+ error: useless use of `vec!`
106
+ --> $DIR/vec.rs:160:14
95
107
|
96
108
LL | for a in vec![1, 2, 3] {
97
109
| ^^^^^^^^^^^^^ help: you can use an array directly: `[1, 2, 3]`
98
110
99
111
error: useless use of `vec!`
100
- --> $DIR/vec.rs:135 :14
112
+ --> $DIR/vec.rs:164 :14
101
113
|
102
114
LL | for a in vec![String::new(), String::new()] {
103
115
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `[String::new(), String::new()]`
104
116
105
- error: aborting due to 17 previous errors
117
+ error: aborting due to 19 previous errors
106
118
You can’t perform that action at this time.
0 commit comments