]> git.giacomolli.uk - onechat/commitdiff
Require field names in struct literals
authorAnderson A. Giacomolli <redacted>
Fri, 6 Nov 2026 17:17:52 +0000 (14:17 -0300)
committerAnderson A. Giacomolli <redacted>
Fri, 6 Nov 2026 17:17:52 +0000 (14:17 -0300)
Struct literals use field names, with one field on each line when more
than one field is set, and table-driven test cases follow the same rule.
The old rule applied only to keyed literals, so positional test cases
with many fields on one line passed it. A small two-field type that acts
as one value, such as a node key, can still use a positional literal.

.agents/skills/go-code/SKILL.md

index 7de0a405ab7369e8010c1a42c2cff9e558bf73cc..6b5a0ce43e93cc1e44949a77e8a5d1997ad670ad 100644 (file)
@@ -50,8 +50,11 @@ description: Go style rules. Use before you write or review Go code.
   test callbacks.
 - Do not use short `if` initializers.
 - Use a one-letter receiver name for each method.
-- Put each field of a keyed struct literal on its own line when you set
-  more than one field.
+- Use field names in struct literals. Put each field on its own line
+  when you set more than one field. This includes the cases of a
+  table-driven test. A small type of two fields that acts as one value,
+  such as a key or a coordinate pair, can use a positional literal on
+  one line.
 - Put an empty line between logical blocks, also after multiline
   declarations, assignments, literals, and calls. Keep an operation with
   its immediate error or result check. Keep a short declaration with its