Skip to content

Commit c98d8a0

Browse files
charliermarshMichaReiser
authored andcommitted
[pyflakes] Stabilize detection of is comparisons to lists, etc. (F632) (#12049)
## Summary See: #8607. Rare but uncontroversial.
1 parent 6f2e024 commit c98d8a0

File tree

4 files changed

+384
-497
lines changed

4 files changed

+384
-497
lines changed

crates/ruff_linter/src/rules/pycodestyle/mod.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@ mod tests {
6868
Ok(())
6969
}
7070

71-
#[test_case(Rule::IsLiteral, Path::new("constant_literals.py"))]
7271
#[test_case(Rule::RedundantBackslash, Path::new("E502.py"))]
7372
#[test_case(Rule::TooManyNewlinesAtEndOfFile, Path::new("W391_0.py"))]
7473
#[test_case(Rule::TooManyNewlinesAtEndOfFile, Path::new("W391_1.py"))]

crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__constant_literals.snap

Lines changed: 372 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,3 +187,375 @@ constant_literals.py:16:4: E712 [*] Avoid equality comparisons to `False`; use `
187187
17 17 | pass
188188
18 18 |
189189
19 19 | named_var = []
190+
191+
constant_literals.py:20:4: F632 [*] Use `==` to compare constant literals
192+
|
193+
19 | named_var = []
194+
20 | if [] is []: # F632 (fix)
195+
| ^^^^^^^^ F632
196+
21 | pass
197+
22 | if named_var is []: # F632 (fix)
198+
|
199+
= help: Replace `is` with `==`
200+
201+
Safe fix
202+
17 17 | pass
203+
18 18 |
204+
19 19 | named_var = []
205+
20 |-if [] is []: # F632 (fix)
206+
20 |+if [] == []: # F632 (fix)
207+
21 21 | pass
208+
22 22 | if named_var is []: # F632 (fix)
209+
23 23 | pass
210+
211+
constant_literals.py:22:4: F632 [*] Use `==` to compare constant literals
212+
|
213+
20 | if [] is []: # F632 (fix)
214+
21 | pass
215+
22 | if named_var is []: # F632 (fix)
216+
| ^^^^^^^^^^^^^^^ F632
217+
23 | pass
218+
24 | if [] is named_var: # F632 (fix)
219+
|
220+
= help: Replace `is` with `==`
221+
222+
Safe fix
223+
19 19 | named_var = []
224+
20 20 | if [] is []: # F632 (fix)
225+
21 21 | pass
226+
22 |-if named_var is []: # F632 (fix)
227+
22 |+if named_var == []: # F632 (fix)
228+
23 23 | pass
229+
24 24 | if [] is named_var: # F632 (fix)
230+
25 25 | pass
231+
232+
constant_literals.py:24:4: F632 [*] Use `==` to compare constant literals
233+
|
234+
22 | if named_var is []: # F632 (fix)
235+
23 | pass
236+
24 | if [] is named_var: # F632 (fix)
237+
| ^^^^^^^^^^^^^^^ F632
238+
25 | pass
239+
26 | if named_var is [1]: # F632 (fix)
240+
|
241+
= help: Replace `is` with `==`
242+
243+
Safe fix
244+
21 21 | pass
245+
22 22 | if named_var is []: # F632 (fix)
246+
23 23 | pass
247+
24 |-if [] is named_var: # F632 (fix)
248+
24 |+if [] == named_var: # F632 (fix)
249+
25 25 | pass
250+
26 26 | if named_var is [1]: # F632 (fix)
251+
27 27 | pass
252+
253+
constant_literals.py:26:4: F632 [*] Use `==` to compare constant literals
254+
|
255+
24 | if [] is named_var: # F632 (fix)
256+
25 | pass
257+
26 | if named_var is [1]: # F632 (fix)
258+
| ^^^^^^^^^^^^^^^^ F632
259+
27 | pass
260+
28 | if [1] is named_var: # F632 (fix)
261+
|
262+
= help: Replace `is` with `==`
263+
264+
Safe fix
265+
23 23 | pass
266+
24 24 | if [] is named_var: # F632 (fix)
267+
25 25 | pass
268+
26 |-if named_var is [1]: # F632 (fix)
269+
26 |+if named_var == [1]: # F632 (fix)
270+
27 27 | pass
271+
28 28 | if [1] is named_var: # F632 (fix)
272+
29 29 | pass
273+
274+
constant_literals.py:28:4: F632 [*] Use `==` to compare constant literals
275+
|
276+
26 | if named_var is [1]: # F632 (fix)
277+
27 | pass
278+
28 | if [1] is named_var: # F632 (fix)
279+
| ^^^^^^^^^^^^^^^^ F632
280+
29 | pass
281+
30 | if named_var is [i for i in [1]]: # F632 (fix)
282+
|
283+
= help: Replace `is` with `==`
284+
285+
Safe fix
286+
25 25 | pass
287+
26 26 | if named_var is [1]: # F632 (fix)
288+
27 27 | pass
289+
28 |-if [1] is named_var: # F632 (fix)
290+
28 |+if [1] == named_var: # F632 (fix)
291+
29 29 | pass
292+
30 30 | if named_var is [i for i in [1]]: # F632 (fix)
293+
31 31 | pass
294+
295+
constant_literals.py:30:4: F632 [*] Use `==` to compare constant literals
296+
|
297+
28 | if [1] is named_var: # F632 (fix)
298+
29 | pass
299+
30 | if named_var is [i for i in [1]]: # F632 (fix)
300+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ F632
301+
31 | pass
302+
|
303+
= help: Replace `is` with `==`
304+
305+
Safe fix
306+
27 27 | pass
307+
28 28 | if [1] is named_var: # F632 (fix)
308+
29 29 | pass
309+
30 |-if named_var is [i for i in [1]]: # F632 (fix)
310+
30 |+if named_var == [i for i in [1]]: # F632 (fix)
311+
31 31 | pass
312+
32 32 |
313+
33 33 | named_var = {}
314+
315+
constant_literals.py:34:4: F632 [*] Use `==` to compare constant literals
316+
|
317+
33 | named_var = {}
318+
34 | if {} is {}: # F632 (fix)
319+
| ^^^^^^^^ F632
320+
35 | pass
321+
36 | if named_var is {}: # F632 (fix)
322+
|
323+
= help: Replace `is` with `==`
324+
325+
Safe fix
326+
31 31 | pass
327+
32 32 |
328+
33 33 | named_var = {}
329+
34 |-if {} is {}: # F632 (fix)
330+
34 |+if {} == {}: # F632 (fix)
331+
35 35 | pass
332+
36 36 | if named_var is {}: # F632 (fix)
333+
37 37 | pass
334+
335+
constant_literals.py:36:4: F632 [*] Use `==` to compare constant literals
336+
|
337+
34 | if {} is {}: # F632 (fix)
338+
35 | pass
339+
36 | if named_var is {}: # F632 (fix)
340+
| ^^^^^^^^^^^^^^^ F632
341+
37 | pass
342+
38 | if {} is named_var: # F632 (fix)
343+
|
344+
= help: Replace `is` with `==`
345+
346+
Safe fix
347+
33 33 | named_var = {}
348+
34 34 | if {} is {}: # F632 (fix)
349+
35 35 | pass
350+
36 |-if named_var is {}: # F632 (fix)
351+
36 |+if named_var == {}: # F632 (fix)
352+
37 37 | pass
353+
38 38 | if {} is named_var: # F632 (fix)
354+
39 39 | pass
355+
356+
constant_literals.py:38:4: F632 [*] Use `==` to compare constant literals
357+
|
358+
36 | if named_var is {}: # F632 (fix)
359+
37 | pass
360+
38 | if {} is named_var: # F632 (fix)
361+
| ^^^^^^^^^^^^^^^ F632
362+
39 | pass
363+
40 | if named_var is {1}: # F632 (fix)
364+
|
365+
= help: Replace `is` with `==`
366+
367+
Safe fix
368+
35 35 | pass
369+
36 36 | if named_var is {}: # F632 (fix)
370+
37 37 | pass
371+
38 |-if {} is named_var: # F632 (fix)
372+
38 |+if {} == named_var: # F632 (fix)
373+
39 39 | pass
374+
40 40 | if named_var is {1}: # F632 (fix)
375+
41 41 | pass
376+
377+
constant_literals.py:40:4: F632 [*] Use `==` to compare constant literals
378+
|
379+
38 | if {} is named_var: # F632 (fix)
380+
39 | pass
381+
40 | if named_var is {1}: # F632 (fix)
382+
| ^^^^^^^^^^^^^^^^ F632
383+
41 | pass
384+
42 | if {1} is named_var: # F632 (fix)
385+
|
386+
= help: Replace `is` with `==`
387+
388+
Safe fix
389+
37 37 | pass
390+
38 38 | if {} is named_var: # F632 (fix)
391+
39 39 | pass
392+
40 |-if named_var is {1}: # F632 (fix)
393+
40 |+if named_var == {1}: # F632 (fix)
394+
41 41 | pass
395+
42 42 | if {1} is named_var: # F632 (fix)
396+
43 43 | pass
397+
398+
constant_literals.py:42:4: F632 [*] Use `==` to compare constant literals
399+
|
400+
40 | if named_var is {1}: # F632 (fix)
401+
41 | pass
402+
42 | if {1} is named_var: # F632 (fix)
403+
| ^^^^^^^^^^^^^^^^ F632
404+
43 | pass
405+
44 | if named_var is {i for i in [1]}: # F632 (fix)
406+
|
407+
= help: Replace `is` with `==`
408+
409+
Safe fix
410+
39 39 | pass
411+
40 40 | if named_var is {1}: # F632 (fix)
412+
41 41 | pass
413+
42 |-if {1} is named_var: # F632 (fix)
414+
42 |+if {1} == named_var: # F632 (fix)
415+
43 43 | pass
416+
44 44 | if named_var is {i for i in [1]}: # F632 (fix)
417+
45 45 | pass
418+
419+
constant_literals.py:44:4: F632 [*] Use `==` to compare constant literals
420+
|
421+
42 | if {1} is named_var: # F632 (fix)
422+
43 | pass
423+
44 | if named_var is {i for i in [1]}: # F632 (fix)
424+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ F632
425+
45 | pass
426+
|
427+
= help: Replace `is` with `==`
428+
429+
Safe fix
430+
41 41 | pass
431+
42 42 | if {1} is named_var: # F632 (fix)
432+
43 43 | pass
433+
44 |-if named_var is {i for i in [1]}: # F632 (fix)
434+
44 |+if named_var == {i for i in [1]}: # F632 (fix)
435+
45 45 | pass
436+
46 46 |
437+
47 47 | named_var = {1: 1}
438+
439+
constant_literals.py:48:4: F632 [*] Use `==` to compare constant literals
440+
|
441+
47 | named_var = {1: 1}
442+
48 | if {1: 1} is {1: 1}: # F632 (fix)
443+
| ^^^^^^^^^^^^^^^^ F632
444+
49 | pass
445+
50 | if named_var is {1: 1}: # F632 (fix)
446+
|
447+
= help: Replace `is` with `==`
448+
449+
Safe fix
450+
45 45 | pass
451+
46 46 |
452+
47 47 | named_var = {1: 1}
453+
48 |-if {1: 1} is {1: 1}: # F632 (fix)
454+
48 |+if {1: 1} == {1: 1}: # F632 (fix)
455+
49 49 | pass
456+
50 50 | if named_var is {1: 1}: # F632 (fix)
457+
51 51 | pass
458+
459+
constant_literals.py:50:4: F632 [*] Use `==` to compare constant literals
460+
|
461+
48 | if {1: 1} is {1: 1}: # F632 (fix)
462+
49 | pass
463+
50 | if named_var is {1: 1}: # F632 (fix)
464+
| ^^^^^^^^^^^^^^^^^^^ F632
465+
51 | pass
466+
52 | if {1: 1} is named_var: # F632 (fix)
467+
|
468+
= help: Replace `is` with `==`
469+
470+
Safe fix
471+
47 47 | named_var = {1: 1}
472+
48 48 | if {1: 1} is {1: 1}: # F632 (fix)
473+
49 49 | pass
474+
50 |-if named_var is {1: 1}: # F632 (fix)
475+
50 |+if named_var == {1: 1}: # F632 (fix)
476+
51 51 | pass
477+
52 52 | if {1: 1} is named_var: # F632 (fix)
478+
53 53 | pass
479+
480+
constant_literals.py:52:4: F632 [*] Use `==` to compare constant literals
481+
|
482+
50 | if named_var is {1: 1}: # F632 (fix)
483+
51 | pass
484+
52 | if {1: 1} is named_var: # F632 (fix)
485+
| ^^^^^^^^^^^^^^^^^^^ F632
486+
53 | pass
487+
54 | if named_var is {1: 1}: # F632 (fix)
488+
|
489+
= help: Replace `is` with `==`
490+
491+
Safe fix
492+
49 49 | pass
493+
50 50 | if named_var is {1: 1}: # F632 (fix)
494+
51 51 | pass
495+
52 |-if {1: 1} is named_var: # F632 (fix)
496+
52 |+if {1: 1} == named_var: # F632 (fix)
497+
53 53 | pass
498+
54 54 | if named_var is {1: 1}: # F632 (fix)
499+
55 55 | pass
500+
501+
constant_literals.py:54:4: F632 [*] Use `==` to compare constant literals
502+
|
503+
52 | if {1: 1} is named_var: # F632 (fix)
504+
53 | pass
505+
54 | if named_var is {1: 1}: # F632 (fix)
506+
| ^^^^^^^^^^^^^^^^^^^ F632
507+
55 | pass
508+
56 | if {1: 1} is named_var: # F632 (fix)
509+
|
510+
= help: Replace `is` with `==`
511+
512+
Safe fix
513+
51 51 | pass
514+
52 52 | if {1: 1} is named_var: # F632 (fix)
515+
53 53 | pass
516+
54 |-if named_var is {1: 1}: # F632 (fix)
517+
54 |+if named_var == {1: 1}: # F632 (fix)
518+
55 55 | pass
519+
56 56 | if {1: 1} is named_var: # F632 (fix)
520+
57 57 | pass
521+
522+
constant_literals.py:56:4: F632 [*] Use `==` to compare constant literals
523+
|
524+
54 | if named_var is {1: 1}: # F632 (fix)
525+
55 | pass
526+
56 | if {1: 1} is named_var: # F632 (fix)
527+
| ^^^^^^^^^^^^^^^^^^^ F632
528+
57 | pass
529+
58 | if named_var is {i: 1 for i in [1]}: # F632 (fix)
530+
|
531+
= help: Replace `is` with `==`
532+
533+
Safe fix
534+
53 53 | pass
535+
54 54 | if named_var is {1: 1}: # F632 (fix)
536+
55 55 | pass
537+
56 |-if {1: 1} is named_var: # F632 (fix)
538+
56 |+if {1: 1} == named_var: # F632 (fix)
539+
57 57 | pass
540+
58 58 | if named_var is {i: 1 for i in [1]}: # F632 (fix)
541+
59 59 | pass
542+
543+
constant_literals.py:58:4: F632 [*] Use `==` to compare constant literals
544+
|
545+
56 | if {1: 1} is named_var: # F632 (fix)
546+
57 | pass
547+
58 | if named_var is {i: 1 for i in [1]}: # F632 (fix)
548+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ F632
549+
59 | pass
550+
|
551+
= help: Replace `is` with `==`
552+
553+
Safe fix
554+
55 55 | pass
555+
56 56 | if {1: 1} is named_var: # F632 (fix)
556+
57 57 | pass
557+
58 |-if named_var is {i: 1 for i in [1]}: # F632 (fix)
558+
58 |+if named_var == {i: 1 for i in [1]}: # F632 (fix)
559+
59 59 | pass
560+
60 60 |
561+
61 61 | ###

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy