50 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package linter
 | |
| 
 | |
| import (
 | |
| 	"go/ast"
 | |
| 
 | |
| 	"golang.org/x/tools/go/packages"
 | |
| 
 | |
| 	"github.com/golangci/golangci-lint/internal/pkgcache"
 | |
| 	"github.com/golangci/golangci-lint/pkg/config"
 | |
| 	"github.com/golangci/golangci-lint/pkg/fsutils"
 | |
| 	"github.com/golangci/golangci-lint/pkg/golinters/goanalysis/load"
 | |
| 	"github.com/golangci/golangci-lint/pkg/logutils"
 | |
| )
 | |
| 
 | |
| type Context struct {
 | |
| 	// Packages are deduplicated (test and normal packages) packages
 | |
| 	Packages []*packages.Package
 | |
| 
 | |
| 	// OriginalPackages aren't deduplicated: they contain both normal and test
 | |
| 	// version for each of packages
 | |
| 	OriginalPackages []*packages.Package
 | |
| 
 | |
| 	Cfg       *config.Config
 | |
| 	FileCache *fsutils.FileCache
 | |
| 	LineCache *fsutils.LineCache
 | |
| 	Log       logutils.Log
 | |
| 
 | |
| 	PkgCache  *pkgcache.Cache
 | |
| 	LoadGuard *load.Guard
 | |
| }
 | |
| 
 | |
| func (c *Context) Settings() *config.LintersSettings {
 | |
| 	return &c.Cfg.LintersSettings
 | |
| }
 | |
| 
 | |
| func (c *Context) ClearTypesInPackages() {
 | |
| 	for _, p := range c.Packages {
 | |
| 		clearTypes(p)
 | |
| 	}
 | |
| 	for _, p := range c.OriginalPackages {
 | |
| 		clearTypes(p)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func clearTypes(p *packages.Package) {
 | |
| 	p.Types = nil
 | |
| 	p.TypesInfo = nil
 | |
| 	p.Syntax = []*ast.File{}
 | |
| }
 | 
