@@ -29,10 +29,11 @@ import (
2929)
3030
3131type ImportMissingError struct {
32- Path string
33- Module module.Version
34- QueryErr error
35- modContainingCWD module.Version
32+ Path string
33+ Module module.Version
34+ QueryErr error
35+ modContainingCWD module.Version
36+ allowMissingModuleImports bool
3637
3738 // modRoot is dependent on the value of ImportingMainModule and should be
3839 // kept in sync.
@@ -70,7 +71,7 @@ func (e *ImportMissingError) Error() string {
7071 if e .QueryErr != nil && ! errors .Is (e .QueryErr , ErrNoModRoot ) {
7172 return fmt .Sprintf ("cannot find module providing package %s: %v" , e .Path , e .QueryErr )
7273 }
73- if cfg .BuildMod == "mod" || (cfg .BuildMod == "readonly" && allowMissingModuleImports ) {
74+ if cfg .BuildMod == "mod" || (cfg .BuildMod == "readonly" && e . allowMissingModuleImports ) {
7475 return "cannot find module providing package " + e .Path
7576 }
7677
@@ -373,8 +374,9 @@ func importFromModules(loaderstate *State, ctx context.Context, path string, rs
373374
374375 if len (mods ) == 0 {
375376 return module.Version {}, "" , "" , nil , & ImportMissingError {
376- Path : path ,
377- modContainingCWD : loaderstate .MainModules .ModContainingCWD (),
377+ Path : path ,
378+ modContainingCWD : loaderstate .MainModules .ModContainingCWD (),
379+ allowMissingModuleImports : loaderstate .allowMissingModuleImports ,
378380 }
379381 }
380382
@@ -494,10 +496,11 @@ func importFromModules(loaderstate *State, ctx context.Context, path string, rs
494496 queryErr = NewNoMainModulesError (loaderstate )
495497 }
496498 return module.Version {}, "" , "" , nil , & ImportMissingError {
497- Path : path ,
498- QueryErr : queryErr ,
499- isStd : pathIsStd ,
500- modContainingCWD : loaderstate .MainModules .ModContainingCWD (),
499+ Path : path ,
500+ QueryErr : queryErr ,
501+ isStd : pathIsStd ,
502+ modContainingCWD : loaderstate .MainModules .ModContainingCWD (),
503+ allowMissingModuleImports : loaderstate .allowMissingModuleImports ,
501504 }
502505 }
503506
@@ -571,9 +574,10 @@ func queryImport(loaderstate *State, ctx context.Context, path string, rs *Requi
571574 } else if ok {
572575 if cfg .BuildMod == "readonly" {
573576 return module.Version {}, & ImportMissingError {
574- Path : path ,
575- replaced : m ,
576- modContainingCWD : loaderstate .MainModules .ModContainingCWD (),
577+ Path : path ,
578+ replaced : m ,
579+ modContainingCWD : loaderstate .MainModules .ModContainingCWD (),
580+ allowMissingModuleImports : loaderstate .allowMissingModuleImports ,
577581 }
578582 }
579583 return m , nil
@@ -601,13 +605,14 @@ func queryImport(loaderstate *State, ctx context.Context, path string, rs *Requi
601605 //
602606 // Instead of trying QueryPattern, report an ImportMissingError immediately.
603607 return module.Version {}, & ImportMissingError {
604- Path : path ,
605- isStd : true ,
606- modContainingCWD : loaderstate .MainModules .ModContainingCWD (),
608+ Path : path ,
609+ isStd : true ,
610+ modContainingCWD : loaderstate .MainModules .ModContainingCWD (),
611+ allowMissingModuleImports : loaderstate .allowMissingModuleImports ,
607612 }
608613 }
609614
610- if (cfg .BuildMod == "readonly" || cfg .BuildMod == "vendor" ) && ! allowMissingModuleImports {
615+ if (cfg .BuildMod == "readonly" || cfg .BuildMod == "vendor" ) && ! loaderstate . allowMissingModuleImports {
611616 // In readonly mode, we can't write go.mod, so we shouldn't try to look up
612617 // the module. If readonly mode was enabled explicitly, include that in
613618 // the error message.
@@ -620,9 +625,10 @@ func queryImport(loaderstate *State, ctx context.Context, path string, rs *Requi
620625 queryErr = fmt .Errorf ("import lookup disabled by -mod=%s\n \t (%s)" , cfg .BuildMod , cfg .BuildModReason )
621626 }
622627 return module.Version {}, & ImportMissingError {
623- Path : path ,
624- QueryErr : queryErr ,
625- modContainingCWD : loaderstate .MainModules .ModContainingCWD (),
628+ Path : path ,
629+ QueryErr : queryErr ,
630+ modContainingCWD : loaderstate .MainModules .ModContainingCWD (),
631+ allowMissingModuleImports : loaderstate .allowMissingModuleImports ,
626632 }
627633 }
628634
@@ -642,9 +648,10 @@ func queryImport(loaderstate *State, ctx context.Context, path string, rs *Requi
642648 // Return "cannot find module providing package […]" instead of whatever
643649 // low-level error QueryPattern produced.
644650 return module.Version {}, & ImportMissingError {
645- Path : path ,
646- QueryErr : err ,
647- modContainingCWD : loaderstate .MainModules .ModContainingCWD (),
651+ Path : path ,
652+ QueryErr : err ,
653+ modContainingCWD : loaderstate .MainModules .ModContainingCWD (),
654+ allowMissingModuleImports : loaderstate .allowMissingModuleImports ,
648655 }
649656 } else {
650657 return module.Version {}, err
@@ -670,10 +677,11 @@ func queryImport(loaderstate *State, ctx context.Context, path string, rs *Requi
670677 return c .Mod , nil
671678 }
672679 return module.Version {}, & ImportMissingError {
673- Path : path ,
674- Module : candidates [0 ].Mod ,
675- newMissingVersion : candidate0MissingVersion ,
676- modContainingCWD : loaderstate .MainModules .ModContainingCWD (),
680+ Path : path ,
681+ Module : candidates [0 ].Mod ,
682+ newMissingVersion : candidate0MissingVersion ,
683+ modContainingCWD : loaderstate .MainModules .ModContainingCWD (),
684+ allowMissingModuleImports : loaderstate .allowMissingModuleImports ,
677685 }
678686}
679687
0 commit comments