Skip to content

Commit 9b0fa79

Browse files
committed
fix(workspace): restore short-circuit order in memFS.dirEntries seen-check
The previous commit changed `if name != "" && !seen[name]` to `if _, ok := seen[name]; name != "" && !ok`. In Go's `if init; cond` form the init statement always executes before the condition, so the map probe ran unconditionally — even when `name == ""` — reversing the original short-circuit semantics. Restore the guard-first order by nesting the membership check inside an explicit `if name != ""` block, matching the original evaluation order and preventing any wasted probe on empty segment paths. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QjbjBieiWMBKURdKVNnPvy
1 parent 6715194 commit 9b0fa79

1 file changed

Lines changed: 10 additions & 6 deletions

File tree

pkg/mdsmith/workspace.go

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -275,15 +275,19 @@ func (m memFS) dirEntries(dir string) []fs.DirEntry {
275275
rest := key[len(prefix):]
276276
if i := indexSlash(rest); i >= 0 {
277277
name := rest[:i]
278-
if _, ok := seen[name]; name != "" && !ok {
279-
seen[name] = struct{}{}
280-
ents = append(ents, memDirEntry{name: name, dir: true})
278+
if name != "" {
279+
if _, ok := seen[name]; !ok {
280+
seen[name] = struct{}{}
281+
ents = append(ents, memDirEntry{name: name, dir: true})
282+
}
281283
}
282284
continue
283285
}
284-
if _, ok := seen[rest]; rest != "" && !ok {
285-
seen[rest] = struct{}{}
286-
ents = append(ents, memDirEntry{name: rest, size: int64(len(m[key])), dir: false})
286+
if rest != "" {
287+
if _, ok := seen[rest]; !ok {
288+
seen[rest] = struct{}{}
289+
ents = append(ents, memDirEntry{name: rest, size: int64(len(m[key])), dir: false})
290+
}
287291
}
288292
}
289293
sort.Slice(ents, func(i, j int) bool { return ents[i].Name() < ents[j].Name() })

0 commit comments

Comments
 (0)