@@ -1456,12 +1456,12 @@ type typeCheckInputs struct {
14561456	id  PackageID 
14571457
14581458	// Used for type checking: 
1459- 	pkgPath                   PackagePath 
1460- 	name                      PackageName 
1461- 	goFiles , compiledGoFiles  []file.Handle 
1462- 	sizes                     types.Sizes 
1463- 	depsByImpPath             map [ImportPath ]PackageID 
1464- 	goVersion                 string  // packages.Module.GoVersion, e.g. "1.18" 
1459+ 	pkgPath                              PackagePath 
1460+ 	name                                 PackageName 
1461+ 	goFiles , compiledGoFiles ,  asmFiles  []file.Handle 
1462+ 	sizes                                types.Sizes 
1463+ 	depsByImpPath                        map [ImportPath ]PackageID 
1464+ 	goVersion                            string  // packages.Module.GoVersion, e.g. "1.18" 
14651465
14661466	// Used for type check diagnostics: 
14671467	// TODO(rfindley): consider storing less data in gobDiagnostics, and 
@@ -1491,6 +1491,10 @@ func (s *Snapshot) typeCheckInputs(ctx context.Context, mp *metadata.Package) (*
14911491	if  err  !=  nil  {
14921492		return  nil , err 
14931493	}
1494+ 	asmFiles , err  :=  readFiles (ctx , s , mp .AsmFiles )
1495+ 	if  err  !=  nil  {
1496+ 		return  nil , err 
1497+ 	}
14941498
14951499	goVersion  :=  "" 
14961500	if  mp .Module  !=  nil  &&  mp .Module .GoVersion  !=  ""  {
@@ -1503,6 +1507,7 @@ func (s *Snapshot) typeCheckInputs(ctx context.Context, mp *metadata.Package) (*
15031507		name :            mp .Name ,
15041508		goFiles :         goFiles ,
15051509		compiledGoFiles : compiledGoFiles ,
1510+ 		asmFiles :        asmFiles ,
15061511		sizes :           mp .TypesSizes ,
15071512		depsByImpPath :   mp .DepsByImpPath ,
15081513		goVersion :       goVersion ,
@@ -1555,6 +1560,10 @@ func localPackageKey(inputs *typeCheckInputs) file.Hash {
15551560	for  _ , fh  :=  range  inputs .goFiles  {
15561561		fmt .Fprintln (hasher , fh .Identity ())
15571562	}
1563+ 	fmt .Fprintf (hasher , "asmFiles:%d\n " , len (inputs .asmFiles ))
1564+ 	for  _ , fh  :=  range  inputs .asmFiles  {
1565+ 		fmt .Fprintln (hasher , fh .Identity ())
1566+ 	}
15581567
15591568	// types sizes 
15601569	wordSize  :=  inputs .sizes .Sizeof (types .Typ [types .Int ])
@@ -1611,6 +1620,10 @@ func (b *typeCheckBatch) checkPackage(ctx context.Context, fset *token.FileSet,
16111620			pkg .parseErrors  =  append (pkg .parseErrors , pgf .ParseErr )
16121621		}
16131622	}
1623+ 	pkg .asmFiles , err  =  parseAsmFiles (ctx , inputs .asmFiles ... )
1624+ 	if  err  !=  nil  {
1625+ 		return  nil , err 
1626+ 	}
16141627
16151628	// Use the default type information for the unsafe package. 
16161629	if  inputs .pkgPath  ==  "unsafe"  {
0 commit comments