internal/pkg: skip resolved cure errors
All checks were successful
Test / Create distribution (push) Successful in 1m0s
Test / Sandbox (push) Successful in 2m44s
Test / Hakurei (push) Successful in 4m2s
Test / ShareFS (push) Successful in 4m2s
Test / Hpkg (push) Successful in 4m30s
Test / Sandbox (race detector) (push) Successful in 5m7s
Test / Hakurei (race detector) (push) Successful in 6m5s
Test / Flake checks (push) Successful in 1m35s

This significantly improves error resolution performance.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2026-02-11 17:50:18 +09:00
parent dbb89dfb0f
commit 17b64bb42c

View File

@@ -947,10 +947,10 @@ func (c *Cache) openFile(f FileArtifact) (r io.ReadCloser, err error) {
} }
if c.msg.IsVerbose() { if c.msg.IsVerbose() {
rn := reportName(f, c.Ident(f)) rn := reportName(f, c.Ident(f))
c.msg.Verbosef("curing %s to memory...", rn) c.msg.Verbosef("curing %s in memory...", rn)
defer func() { defer func() {
if err == nil { if err == nil {
c.msg.Verbosef("cured %s to memory", rn) c.msg.Verbosef("opened %s for reading", rn)
} }
}() }()
} }
@@ -1151,6 +1151,9 @@ type DependencyCureError []*CureError
// unwrapM recursively expands underlying errors into a caller-supplied map. // unwrapM recursively expands underlying errors into a caller-supplied map.
func (e *DependencyCureError) unwrapM(me map[unique.Handle[ID]]*CureError) { func (e *DependencyCureError) unwrapM(me map[unique.Handle[ID]]*CureError) {
for _, err := range *e { for _, err := range *e {
if _, ok := me[err.Ident]; ok {
continue
}
if _e, ok := err.Err.(*DependencyCureError); ok { if _e, ok := err.Err.(*DependencyCureError); ok {
_e.unwrapM(me) _e.unwrapM(me)
continue continue