code: func NewIssue(ctx *Context, node ast.Node, ruleID, desc string, severity Score, confidence Score) *Issue {
  	var code string
  	fobj := ctx.FileSet.File(node.Pos())
  	name := fobj.Name()
  
  	start, end := fobj.Line(node.Pos()), fobj.Line(node.End())
  	line := strconv.Itoa(start)
  	if start != end {
  		line = fmt.Sprintf("%d-%d", start, end)
  	}
  
  	// #nosec
  	if file, err := os.Open(fobj.Name()); err == nil {
  		defer file.Close()
  		s := (int64)(fobj.Position(node.Pos()).Offset) // Go bug, should be int64
  		e := (int64)(fobj.Position(node.End()).Offset) // Go bug, should be int64
  		code, err = codeSnippet(file, s, e, node)
  		if err != nil {
  			code = err.Error()
  		}
  	}
  
  	return &Issue{
  		File:       name,
  		Line:       line,
  		RuleID:     ruleID,
  		What:       desc,
  		Confidence: confidence,
  		Severity:   severity,
  		Code:       code,
  	}
  }
docs: // NewIssue creates a new Issue