From 74152c2977736faa893b877cca43fd094df72f6d Mon Sep 17 00:00:00 2001 From: Ryan Johnson Date: Fri, 28 Aug 2026 18:26:34 -0400 Subject: [PATCH] refactor: use 'slices.Backward' for backward slice loop In Go 1.23 and later, `slices.Backward` returns an iterator that ranges over a slice from the last element to the first. This removes manual index handling and helps avoid off-by-one errors. Signed-off-by: Ryan Johnson --- builder/vmware/common/driver_parser.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/builder/vmware/common/driver_parser.go b/builder/vmware/common/driver_parser.go index 067f9c6a..0bf421ff 100644 --- a/builder/vmware/common/driver_parser.go +++ b/builder/vmware/common/driver_parser.go @@ -15,6 +15,7 @@ import ( "os" "reflect" "regexp" + "slices" "sort" "strconv" "strings" @@ -956,12 +957,12 @@ func createDeclaration(node pDeclaration) ConfigDeclaration { result.hostid = make([]pParameterClientMatch, 0) // walk from globals to pDeclaration collecting all parameters - for i := len(hierarchy) - 1; i >= 0; i-- { + for i, h := range slices.Backward(hierarchy) { result.composites = append(result.composites, hierarchy[(len(hierarchy)-1)-i]) result.id = append(result.id, hierarchy[(len(hierarchy)-1)-i].id) // update configDeclaration parameters - for _, p := range hierarchy[i].parameters { + for _, p := range h.parameters { switch p := p.(type) { case pParameterOption: result.options[p.name] = p.value