Skip to content

Commit ba2ea8d

Browse files
clarifying naming and comments
1 parent 2a9b9a4 commit ba2ea8d

File tree

1 file changed

+23
-19
lines changed

1 file changed

+23
-19
lines changed

build/build.go

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -788,9 +788,13 @@ type Session struct {
788788
options *Options
789789
xctx XContext
790790

791-
// importPaths is a map of the resolved import paths given the srcDir
792-
// and path. This is used to avoid redetermining build packages during
793-
// compilation when we're looking up parsed packages.
791+
// importPaths is a map of the resolved import paths given the
792+
// source directory (first key) and the unresolved import path (second key).
793+
// This is used to cache the resolved import returned from XContext.Import.
794+
// XContent.Import can be slow, so we cache the resolved path that is used
795+
// as the map key by parsedPackages and UpToDateArchives.
796+
// This makes subsequent lookups faster during compilation when all we have
797+
// is the unresolved import path and source directory.
794798
importPaths map[string]map[string]string
795799

796800
// parsePackage is a map of parsed packages that have been built and augmented.
@@ -958,9 +962,9 @@ func (s *Session) BuildProject(pkg *PackageData) (*compiler.Archive, error) {
958962
var parsed *ParsedPackage
959963
var err error
960964
if pkg.IsTest {
961-
parsed, err = s.buildTestPackage(pkg)
965+
parsed, err = s.loadTestPackage(pkg)
962966
} else {
963-
parsed, err = s.buildPackages(pkg)
967+
parsed, err = s.loadPackages(pkg)
964968
}
965969
if err != nil {
966970
return nil, err
@@ -975,12 +979,12 @@ func (s *Session) BuildProject(pkg *PackageData) (*compiler.Archive, error) {
975979
return s.compilePackages(parsed)
976980
}
977981

978-
func (s *Session) buildTestPackage(pkg *PackageData) (*ParsedPackage, error) {
979-
_, err := s.buildPackages(pkg.TestPackage())
982+
func (s *Session) loadTestPackage(pkg *PackageData) (*ParsedPackage, error) {
983+
_, err := s.loadPackages(pkg.TestPackage())
980984
if err != nil {
981985
return nil, err
982986
}
983-
_, err = s.buildPackages(pkg.XTestPackage())
987+
_, err = s.loadPackages(pkg.XTestPackage())
984988
if err != nil {
985989
return nil, err
986990
}
@@ -1004,7 +1008,7 @@ func (s *Session) buildTestPackage(pkg *PackageData) (*ParsedPackage, error) {
10041008

10051009
// Import dependencies for the testmain package.
10061010
for _, importedPkgPath := range parsed.Imports() {
1007-
_, _, err := s.buildImportPathWithSrcDir(importedPkgPath, pkg.Dir)
1011+
_, _, err := s.loadImportPathWithSrcDir(importedPkgPath, pkg.Dir)
10081012
if err != nil {
10091013
return nil, err
10101014
}
@@ -1013,11 +1017,11 @@ func (s *Session) buildTestPackage(pkg *PackageData) (*ParsedPackage, error) {
10131017
return parsed, nil
10141018
}
10151019

1016-
// buildImportPathWithSrcDir builds the parsed package specified by the import path.
1020+
// loadImportPathWithSrcDir gets the parsed package specified by the import path.
10171021
//
1018-
// Relative import paths are interpreted relative to the passed srcDir. If
1019-
// srcDir is empty, current working directory is assumed.
1020-
func (s *Session) buildImportPathWithSrcDir(path, srcDir string) (*PackageData, *ParsedPackage, error) {
1022+
// Relative import paths are interpreted relative to the passed srcDir.
1023+
// If srcDir is empty, current working directory is assumed.
1024+
func (s *Session) loadImportPathWithSrcDir(path, srcDir string) (*PackageData, *ParsedPackage, error) {
10211025
pkg, err := s.xctx.Import(path, srcDir, 0)
10221026
if s.Watcher != nil && pkg != nil { // add watch even on error
10231027
s.Watcher.Add(pkg.Dir)
@@ -1026,7 +1030,7 @@ func (s *Session) buildImportPathWithSrcDir(path, srcDir string) (*PackageData,
10261030
return nil, nil, err
10271031
}
10281032

1029-
parsed, err := s.buildPackages(pkg)
1033+
parsed, err := s.loadPackages(pkg)
10301034
if err != nil {
10311035
return nil, nil, err
10321036
}
@@ -1035,8 +1039,8 @@ func (s *Session) buildImportPathWithSrcDir(path, srcDir string) (*PackageData,
10351039
return pkg, parsed, nil
10361040
}
10371041

1038-
// cacheImportPath stores the import path for the build package so we can look
1039-
// it up later without getting the whole build package.
1042+
// cacheImportPath stores the resolved import path for the build package
1043+
// so we can look it up later without getting the whole build package.
10401044
// The given path and source directly are the ones passed into
10411045
// XContext.Import to the get the build package originally.
10421046
func (s *Session) cacheImportPath(path, srcDir, importPath string) {
@@ -1073,7 +1077,7 @@ var getExeModTime = func() func() time.Time {
10731077
}
10741078
}()
10751079

1076-
func (s *Session) buildPackages(pkg *PackageData) (*ParsedPackage, error) {
1080+
func (s *Session) loadPackages(pkg *PackageData) (*ParsedPackage, error) {
10771081
if parsed, ok := s.parsedPackages[pkg.ImportPath]; ok {
10781082
return parsed, nil
10791083
}
@@ -1086,7 +1090,7 @@ func (s *Session) buildPackages(pkg *PackageData) (*ParsedPackage, error) {
10861090
if importedPkgPath == "unsafe" {
10871091
continue
10881092
}
1089-
importedPkg, _, err := s.buildImportPathWithSrcDir(importedPkgPath, pkg.Dir)
1093+
importedPkg, _, err := s.loadImportPathWithSrcDir(importedPkgPath, pkg.Dir)
10901094
if err != nil {
10911095
return nil, err
10921096
}
@@ -1126,7 +1130,7 @@ func (s *Session) buildPackages(pkg *PackageData) (*ParsedPackage, error) {
11261130
// Import dependencies from the augmented files,
11271131
// whilst skipping any that have been already imported.
11281132
for _, importedPkgPath := range parsed.Imports(pkg.Imports...) {
1129-
_, _, err := s.buildImportPathWithSrcDir(importedPkgPath, pkg.Dir)
1133+
_, _, err := s.loadImportPathWithSrcDir(importedPkgPath, pkg.Dir)
11301134
if err != nil {
11311135
return nil, err
11321136
}

0 commit comments

Comments
 (0)