internal/core/runtime: collect errors for all files in resolve

Change-Id: I764461a1f4b86d44c28ef42bdb336ae144cd0b09
Reviewed-on: https://cue-review.googlesource.com/c/cue/+/7068
Reviewed-by: CUE cueckoo <cueckoo@gmail.com>
Reviewed-by: Marcel van Lohuizen <mpvl@golang.org>
diff --git a/internal/core/runtime/resolve.go b/internal/core/runtime/resolve.go
index 80ba789..29f19e4 100644
--- a/internal/core/runtime/resolve.go
+++ b/internal/core/runtime/resolve.go
@@ -31,7 +31,7 @@
 	idx *Index,
 	p *build.Instance,
 	isBuiltin func(s string) bool,
-) errors.Error {
+) (errs errors.Error) {
 	// Link top-level declarations. As top-level entries get unified, an entry
 	// may be linked to any top-level entry of any of the files.
 	allFields := map[string]ast.Node{}
@@ -45,11 +45,10 @@
 		}
 	}
 	for _, f := range p.Files {
-		if err := ResolveFile(idx, f, p, allFields, isBuiltin); err != nil {
-			return err
-		}
+		err := ResolveFile(idx, f, p, allFields, isBuiltin)
+		errs = errors.Append(errs, err)
 	}
-	return nil
+	return errs
 }
 
 func ResolveFile(