internal/imports: actually skip things in scan
An important part of letting the callback choose what to load is...not
loading the stuff it doesn't want.
Change-Id: I4048d7aed756b6ebc26fb6f8e384f44c64281f90
Reviewed-on: https://go-review.googlesource.com/c/tools/+/213129
Run-TryBot: Heschi Kreinick <heschi@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
diff --git a/internal/imports/fix.go b/internal/imports/fix.go
index 3d1f33a..dffee29 100644
--- a/internal/imports/fix.go
+++ b/internal/imports/fix.go
@@ -1175,18 +1175,20 @@
p.relevance = MaxRelevance
}
- if callback.dirFound(p) {
- var err error
- p.packageName, err = r.cache.CachePackageName(info)
- if err != nil {
- continue
- }
+ if !callback.dirFound(p) {
+ continue
+ }
+ var err error
+ p.packageName, err = r.cache.CachePackageName(info)
+ if err != nil {
+ continue
}
- if callback.packageNameLoaded(p) {
- if _, exports, err := r.loadExports(ctx, p); err == nil {
- callback.exportsLoaded(p, exports)
- }
+ if !callback.packageNameLoaded(p) {
+ continue
+ }
+ if _, exports, err := r.loadExports(ctx, p); err == nil {
+ callback.exportsLoaded(p, exports)
}
}
return nil
diff --git a/internal/imports/mod.go b/internal/imports/mod.go
index a7bcdfe..2ef55b9 100644
--- a/internal/imports/mod.go
+++ b/internal/imports/mod.go
@@ -378,27 +378,27 @@
if scanned, err := info.reachedStatus(directoryScanned); !scanned || err != nil {
return
}
-
pkg, err := r.canonicalize(info)
if err != nil {
return
}
- if callback.dirFound(pkg) {
- var err error
- pkg.packageName, err = r.cachePackageName(info)
- if err != nil {
- return
- }
+ if !callback.dirFound(pkg) {
+ return
+ }
+ pkg.packageName, err = r.cachePackageName(info)
+ if err != nil {
+ return
}
- if callback.packageNameLoaded(pkg) {
- _, exports, err := r.loadExports(ctx, pkg)
- if err != nil {
- return
- }
- callback.exportsLoaded(pkg, exports)
+ if !callback.packageNameLoaded(pkg) {
+ return
}
+ _, exports, err := r.loadExports(ctx, pkg)
+ if err != nil {
+ return
+ }
+ callback.exportsLoaded(pkg, exports)
}
// Everything we already had is in the cache. Process it now, in hopes we