From d848c5e51b1d7acd653ce040407b529419dc4e90 Mon Sep 17 00:00:00 2001 From: sneak Date: Mon, 2 Feb 2026 13:15:39 -0800 Subject: [PATCH] Remove dead code in symlink handling filepath.Walk uses Lstat, so symlinks are reported with ModeSymlink set, never ModeDir. The info.IsDir() check was always false, making the filepath.SkipDir branch unreachable dead code. --- attrsum.go | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/attrsum.go b/attrsum.go index cf55f89..2510909 100644 --- a/attrsum.go +++ b/attrsum.go @@ -397,10 +397,9 @@ func countFiles(root string) int64 { if err != nil { return nil } + // Skip symlinks - note: filepath.Walk uses Lstat, so symlinks are + // reported as ModeSymlink, never as directories. Walk doesn't follow them. if info.Mode()&os.ModeSymlink != 0 { - if info.IsDir() { - return filepath.SkipDir - } return nil } rel, _ := filepath.Rel(root, p) @@ -456,14 +455,12 @@ func walkAndProcess(root string, stats *Stats, description string, fn func(strin return err } - // skip symlinks entirely + // Skip symlinks - filepath.Walk uses Lstat, so symlinks are reported + // as ModeSymlink, never as directories. Walk doesn't follow them. if info.Mode()&os.ModeSymlink != 0 { if verbose && !quiet { log.Printf("skip symlink %s", p) } - if info.IsDir() { - return filepath.SkipDir - } return nil }