code: func (l *Linter) LintFiles(files map[string][]byte) ([]Problem, error) {
  	pkg := &pkg{
  		fset:  token.NewFileSet(),
  		files: make(map[string]*file),
  	}
  	var pkgName string
  	for filename, src := range files {
  		if isGenerated(src) {
  			continue // See issue #239
  		}
  		f, err := parser.ParseFile(pkg.fset, filename, src, parser.ParseComments)
  		if err != nil {
  			return nil, err
  		}
  		if pkgName == "" {
  			pkgName = f.Name.Name
  		} else if f.Name.Name != pkgName {
  			return nil, fmt.Errorf("%s is in package %s, not %s", filename, f.Name.Name, pkgName)
  		}
  		pkg.files[filename] = &file{
  			pkg:      pkg,
  			f:        f,
  			fset:     pkg.fset,
  			src:      src,
  			filename: filename,
  		}
  	}
  	if len(pkg.files) == 0 {
  		return nil, nil
  	}
  	return pkg.lint(), nil
  }
docs: // LintFiles lints a set of files of a single package.
  // The argument is a map of filename to source.