Lints and suggestions for the Nix programming language
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

chore: 1-expr tests useless_parens

+176 -112
-22
bin/tests/data/useless_parens.nix
··· 1 - let 2 - # parens around primitives 3 - a = { 4 - b = ("hello"); 5 - c = (d); 6 - e = ({ f = 2; }); 7 - }; 8 - 9 - # parens around let-value 10 - g = (1 + 2); 11 - h = ({ inherit i; }); 12 - 13 - # LATER: binary exprs, function args etc. 14 - in 15 - # parens around let body 16 - (null) 17 - 18 - # select in list (parens not necessary) 19 - [ 20 - (a.b) 21 - (a.b or g) 22 - ]
-1
bin/tests/main.rs
··· 44 44 } 45 45 46 46 test_lint! { 47 - useless_parens, 48 47 empty_pattern, 49 48 redundant_pattern_bind, 50 49 unquoted_uri,
-36
bin/tests/snapshots/main__useless_parens_fix.snap
··· 1 - --- 2 - source: bin/tests/main.rs 3 - expression: "&stdout" 4 - --- 5 - --- tests/data/useless_parens.nix 6 - +++ tests/data/useless_parens.nix [fixed] 7 - @@ -1,22 +1,22 @@ 8 - let 9 - # parens around primitives 10 - a = { 11 - - b = ("hello"); 12 - - c = (d); 13 - - e = ({ f = 2; }); 14 - + b = "hello"; 15 - + c = d; 16 - + e = { f = 2; }; 17 - }; 18 - 19 - # parens around let-value 20 - - g = (1 + 2); 21 - - h = ({ inherit i; }); 22 - + g = 1 + 2; 23 - + h = { inherit i; }; 24 - 25 - # LATER: binary exprs, function args etc. 26 - in 27 - # parens around let body 28 - - (null) 29 - + null 30 - 31 - # select in list (parens not necessary) 32 - [ 33 - - (a.b) 34 - + a.b 35 - (a.b or g) 36 - ]
-53
bin/tests/snapshots/main__useless_parens_lint.snap
··· 1 - --- 2 - source: bin/tests/main.rs 3 - expression: "&stdout" 4 - --- 5 - [W08] Warning: These parentheses can be omitted 6 - ╭─[tests/data/useless_parens.nix:4:9] 7 - 8 - 4 │ b = ("hello"); 9 - · ────┬──── 10 - · ╰────── Useless parentheses around value in binding 11 - ───╯ 12 - [W08] Warning: These parentheses can be omitted 13 - ╭─[tests/data/useless_parens.nix:5:9] 14 - 15 - 5 │ c = (d); 16 - · ─┬─ 17 - · ╰─── Useless parentheses around value in binding 18 - ───╯ 19 - [W08] Warning: These parentheses can be omitted 20 - ╭─[tests/data/useless_parens.nix:6:9] 21 - 22 - 6 │ e = ({ f = 2; }); 23 - · ──────┬───── 24 - · ╰─────── Useless parentheses around value in binding 25 - ───╯ 26 - [W08] Warning: These parentheses can be omitted 27 - ╭─[tests/data/useless_parens.nix:10:7] 28 - 29 - 10 │ g = (1 + 2); 30 - · ───┬─── 31 - · ╰───── Useless parentheses around value in binding 32 - ────╯ 33 - [W08] Warning: These parentheses can be omitted 34 - ╭─[tests/data/useless_parens.nix:11:7] 35 - 36 - 11 │ h = ({ inherit i; }); 37 - · ────────┬─────── 38 - · ╰───────── Useless parentheses around value in binding 39 - ────╯ 40 - [W08] Warning: These parentheses can be omitted 41 - ╭─[tests/data/useless_parens.nix:16:3] 42 - 43 - 16 │ (null) 44 - · ───┬── 45 - · ╰──── Useless parentheses around primitive expression 46 - ────╯ 47 - [W08] Warning: These parentheses can be omitted 48 - ╭─[tests/data/useless_parens.nix:20:5] 49 - 50 - 20 │ (a.b) 51 - · ──┬── 52 - · ╰──── Useless parentheses around primitive expression 53 - ────╯
+9
bin/tests/snapshots/useless_parens__fix_31ac41c8c6e98946b178fde2f6c5a168103df16fc12290ac3f38e5f12d9c67aa.snap
··· 1 + --- 2 + source: bin/tests/useless_parens.rs 3 + expression: "\"(\\\"hello\\\")\"" 4 + --- 5 + --- <temp_file_path> 6 + +++ <temp_file_path> [fixed] 7 + @@ -1 +1 @@ 8 + -("hello") 9 + +"hello"
+9
bin/tests/snapshots/useless_parens__fix_4d37aa86b470346c97523d0152f7860b8d3a5c945516ceb711376e968446e310.snap
··· 1 + --- 2 + source: bin/tests/useless_parens.rs 3 + expression: "\"let a = (1 + 2); in null\"" 4 + --- 5 + --- <temp_file_path> 6 + +++ <temp_file_path> [fixed] 7 + @@ -1 +1 @@ 8 + -let a = (1 + 2); in null 9 + +let a = 1 + 2; in null
+9
bin/tests/snapshots/useless_parens__fix_518aa31f8b9a466e2e92490ffd87be423d3e42cf20c228150cef6c88bbd4fb11.snap
··· 1 + --- 2 + source: bin/tests/useless_parens.rs 3 + expression: "\"let h = ({ inherit (builtins) map; }); in null\"" 4 + --- 5 + --- <temp_file_path> 6 + +++ <temp_file_path> [fixed] 7 + @@ -1 +1 @@ 8 + -let h = ({ inherit (builtins) map; }); in null 9 + +let h = { inherit (builtins) map; }; in null
+5
bin/tests/snapshots/useless_parens__fix_67ffd912c9610f8ceb69fbfed2ee46908a1d4bcba43542f10eac24a50b0d8d11.snap
··· 1 + --- 2 + source: bin/tests/useless_parens.rs 3 + expression: "\"[(builtins.pam or map)]\"" 4 + --- 5 +
+9
bin/tests/snapshots/useless_parens__fix_dbf237a5ac629f60efb6cc28b28986f3e8f38ab97c28857a2b369399afce1c36.snap
··· 1 + --- 2 + source: bin/tests/useless_parens.rs 3 + expression: "\"[(builtins.map)]\"" 4 + --- 5 + --- <temp_file_path> 6 + +++ <temp_file_path> [fixed] 7 + @@ -1 +1 @@ 8 + -[(builtins.map)] 9 + +[builtins.map]
+9
bin/tests/snapshots/useless_parens__fix_e77035eacc5250b3a65353c52612eb4a05666249943f2d5c27329a9915a340a9.snap
··· 1 + --- 2 + source: bin/tests/useless_parens.rs 3 + expression: "\"({ f = 2; })\"" 4 + --- 5 + --- <temp_file_path> 6 + +++ <temp_file_path> [fixed] 7 + @@ -1 +1 @@ 8 + -({ f = 2; }) 9 + +{ f = 2; }
+9
bin/tests/snapshots/useless_parens__fix_ed0b445d7f4db791ac8dcf41de7d3bc416d22cc4154b5a58ff82ce1fed6fd3c0.snap
··· 1 + --- 2 + source: bin/tests/useless_parens.rs 3 + expression: "\"let a = 0; in (null)\"" 4 + --- 5 + --- <temp_file_path> 6 + +++ <temp_file_path> [fixed] 7 + @@ -1 +1 @@ 8 + -let a = 0; in (null) 9 + +let a = 0; in null
+9
bin/tests/snapshots/useless_parens__fix_f04dfa0b3c36c6f2489cba3b913db246cbacd0f646193435d7def64d8bbd9b10.snap
··· 1 + --- 2 + source: bin/tests/useless_parens.rs 3 + expression: "\"let b = 0; in (b)\"" 4 + --- 5 + --- <temp_file_path> 6 + +++ <temp_file_path> [fixed] 7 + @@ -1 +1 @@ 8 + -let b = 0; in (b) 9 + +let b = 0; in b
+11
bin/tests/snapshots/useless_parens__lint_31ac41c8c6e98946b178fde2f6c5a168103df16fc12290ac3f38e5f12d9c67aa.snap
··· 1 + --- 2 + source: bin/tests/useless_parens.rs 3 + expression: "\"(\\\"hello\\\")\"" 4 + --- 5 + [W08] Warning: These parentheses can be omitted 6 + ╭─[<temp_file_path>:1:1] 7 + 8 + 1 │ ("hello") 9 + · ────┬──── 10 + · ╰────── Useless parentheses around primitive expression 11 + ───╯
+11
bin/tests/snapshots/useless_parens__lint_4d37aa86b470346c97523d0152f7860b8d3a5c945516ceb711376e968446e310.snap
··· 1 + --- 2 + source: bin/tests/useless_parens.rs 3 + expression: "\"let a = (1 + 2); in null\"" 4 + --- 5 + [W08] Warning: These parentheses can be omitted 6 + ╭─[<temp_file_path>:1:9] 7 + 8 + 1 │ let a = (1 + 2); in null 9 + · ───┬─── 10 + · ╰───── Useless parentheses around value in binding 11 + ───╯
+11
bin/tests/snapshots/useless_parens__lint_518aa31f8b9a466e2e92490ffd87be423d3e42cf20c228150cef6c88bbd4fb11.snap
··· 1 + --- 2 + source: bin/tests/useless_parens.rs 3 + expression: "\"let h = ({ inherit (builtins) map; }); in null\"" 4 + --- 5 + [W08] Warning: These parentheses can be omitted 6 + ╭─[<temp_file_path>:1:9] 7 + 8 + 1 │ let h = ({ inherit (builtins) map; }); in null 9 + · ──────────────┬────────────── 10 + · ╰──────────────── Useless parentheses around value in binding 11 + ───╯
+5
bin/tests/snapshots/useless_parens__lint_67ffd912c9610f8ceb69fbfed2ee46908a1d4bcba43542f10eac24a50b0d8d11.snap
··· 1 + --- 2 + source: bin/tests/useless_parens.rs 3 + expression: "\"[(builtins.pam or map)]\"" 4 + --- 5 +
+11
bin/tests/snapshots/useless_parens__lint_dbf237a5ac629f60efb6cc28b28986f3e8f38ab97c28857a2b369399afce1c36.snap
··· 1 + --- 2 + source: bin/tests/useless_parens.rs 3 + expression: "\"[(builtins.map)]\"" 4 + --- 5 + [W08] Warning: These parentheses can be omitted 6 + ╭─[<temp_file_path>:1:2] 7 + 8 + 1 │ [(builtins.map)] 9 + · ───────┬────── 10 + · ╰──────── Useless parentheses around primitive expression 11 + ───╯
+11
bin/tests/snapshots/useless_parens__lint_e77035eacc5250b3a65353c52612eb4a05666249943f2d5c27329a9915a340a9.snap
··· 1 + --- 2 + source: bin/tests/useless_parens.rs 3 + expression: "\"({ f = 2; })\"" 4 + --- 5 + [W08] Warning: These parentheses can be omitted 6 + ╭─[<temp_file_path>:1:1] 7 + 8 + 1 │ ({ f = 2; }) 9 + · ──────┬───── 10 + · ╰─────── Useless parentheses around primitive expression 11 + ───╯
+11
bin/tests/snapshots/useless_parens__lint_ed0b445d7f4db791ac8dcf41de7d3bc416d22cc4154b5a58ff82ce1fed6fd3c0.snap
··· 1 + --- 2 + source: bin/tests/useless_parens.rs 3 + expression: "\"let a = 0; in (null)\"" 4 + --- 5 + [W08] Warning: These parentheses can be omitted 6 + ╭─[<temp_file_path>:1:15] 7 + 8 + 1 │ let a = 0; in (null) 9 + · ───┬── 10 + · ╰──── Useless parentheses around body of let expression 11 + ───╯
+11
bin/tests/snapshots/useless_parens__lint_f04dfa0b3c36c6f2489cba3b913db246cbacd0f646193435d7def64d8bbd9b10.snap
··· 1 + --- 2 + source: bin/tests/useless_parens.rs 3 + expression: "\"let b = 0; in (b)\"" 4 + --- 5 + [W08] Warning: These parentheses can be omitted 6 + ╭─[<temp_file_path>:1:15] 7 + 8 + 1 │ let b = 0; in (b) 9 + · ─┬─ 10 + · ╰─── Useless parentheses around body of let expression 11 + ───╯
+26
bin/tests/useless_parens.rs
··· 1 + mod _utils; 2 + 3 + use macros::generate_tests; 4 + 5 + generate_tests! { 6 + rule: manual_inherit, 7 + expressions: [ 8 + // parens around primitives 9 + r#"("hello")"#, 10 + "let b = 0; in (b)", 11 + "({ f = 2; })", 12 + 13 + // parens around let-value 14 + "let a = (1 + 2); in null", 15 + "let h = ({ inherit (builtins) map; }); in null", 16 + 17 + // LATER: binary exprs, function args etc. 18 + 19 + // parens around let body 20 + "let a = 0; in (null)", 21 + 22 + // select in list (parens not necessary) 23 + "[(builtins.map)]", 24 + "[(builtins.pam or map)]", 25 + ], 26 + }