code: func NewNoErrorCheck(id string, conf gosec.Config) (gosec.Rule, []ast.Node) {
  	// TODO(gm) Come up with sensible defaults here. Or flip it to use a
  	// black list instead.
  	whitelist := gosec.NewCallList()
  	whitelist.AddAll("bytes.Buffer", "Write", "WriteByte", "WriteRune", "WriteString")
  	whitelist.AddAll("fmt", "Print", "Printf", "Println", "Fprint", "Fprintf", "Fprintln")
  	whitelist.AddAll("strings.Builder", "Write", "WriteByte", "WriteRune", "WriteString")
  	whitelist.Add("io.PipeWriter", "CloseWithError")
  
  	if configured, ok := conf["G104"]; ok {
  		if whitelisted, ok := configured.(map[string][]string); ok {
  			for key, val := range whitelisted {
  				whitelist.AddAll(key, val...)
  			}
  		}
  	}
  	return &noErrorCheck{
  		MetaData: gosec.MetaData{
  			ID:         id,
  			Severity:   gosec.Low,
  			Confidence: gosec.High,
  			What:       "Errors unhandled.",
  		},
  		whitelist: whitelist,
  	}, []ast.Node{(*ast.AssignStmt)(nil), (*ast.ExprStmt)(nil)}
  }
docs: // NewNoErrorCheck detects if the returned error is unchecked