@@ -143,7 +143,7 @@ func (p *Project) MakeParams() gps.SolveParameters {
143
143
//
144
144
// The resulting tree is cached internally at p.RootPackageTree.
145
145
func (p * Project ) ParseRootPackageTree () (pkgtree.PackageTree , error ) {
146
- if len ( p .RootPackageTree .Packages ) == 0 {
146
+ if p .RootPackageTree .Packages == nil {
147
147
ptree , err := pkgtree .ListPackages (p .ResolvedAbsRoot , string (p .ImportRoot ))
148
148
if err != nil {
149
149
return pkgtree.PackageTree {}, errors .Wrap (err , "analysis of current project's packages failed" )
@@ -174,10 +174,10 @@ func (p *Project) ParseRootPackageTree() (pkgtree.PackageTree, error) {
174
174
// This function will correctly utilize ignores and requireds from an existing
175
175
// manifest, if one is present, but will also do the right thing without a
176
176
// manifest.
177
- func (p * Project ) GetDirectDependencyNames (sm gps.SourceManager ) (map [gps.ProjectRoot ]bool , error ) {
177
+ func (p * Project ) GetDirectDependencyNames (sm gps.SourceManager ) (pkgtree. PackageTree , map [gps.ProjectRoot ]bool , error ) {
178
178
ptree , err := p .ParseRootPackageTree ()
179
179
if err != nil {
180
- return nil , err
180
+ return pkgtree. PackageTree {}, nil , err
181
181
}
182
182
183
183
var ig * pkgtree.IgnoredRuleset
@@ -211,26 +211,26 @@ func (p *Project) GetDirectDependencyNames(sm gps.SourceManager) (map[gps.Projec
211
211
for _ , ip := range reach {
212
212
pr , err := sm .DeduceProjectRoot (ip )
213
213
if err != nil {
214
- return nil , err
214
+ return pkgtree. PackageTree {}, nil , err
215
215
}
216
216
directDeps [pr ] = true
217
217
}
218
218
219
- return directDeps , nil
219
+ return ptree , directDeps , nil
220
220
}
221
221
222
222
// FindIneffectualConstraints looks for constraint rules expressed in the
223
223
// manifest that will have no effect during solving, as they are specified for
224
224
// projects that are not direct dependencies of the Project.
225
225
//
226
- // "Direct dependency" here is as implemented by GetDirectDependencyNames() -
227
- // after all "ignored" and "required" rules have been considered .
226
+ // "Direct dependency" here is as implemented by GetDirectDependencyNames();
227
+ // it correctly incorporates all "ignored" and "required" rules.
228
228
func (p * Project ) FindIneffectualConstraints (sm gps.SourceManager ) []gps.ProjectRoot {
229
229
if p .Manifest == nil {
230
230
return nil
231
231
}
232
232
233
- dd , err := p .GetDirectDependencyNames (sm )
233
+ _ , dd , err := p .GetDirectDependencyNames (sm )
234
234
if err != nil {
235
235
return nil
236
236
}
0 commit comments