diff options
author | silverwind <me@silverwind.io> | 2021-05-09 13:08:02 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-09 13:08:02 +0200 |
commit | c3802dcc0f54763b27ffb6af5b03289651fda250 (patch) | |
tree | 731a7893554b0a82942426668811c6af4eafccdb /vendor/github.com/mgechev/revive/rule/range.go | |
parent | a69fb523a738315cc089eeae98f265d595bfe7dc (diff) | |
download | gitea-c3802dcc0f54763b27ffb6af5b03289651fda250.tar.gz gitea-c3802dcc0f54763b27ffb6af5b03289651fda250.zip |
Use binary version of revive linter (#15739)
Use the common `go get` method to install and run the revive linter,
removing the useless build/lint.go and related vendor libraries.
Diffstat (limited to 'vendor/github.com/mgechev/revive/rule/range.go')
-rw-r--r-- | vendor/github.com/mgechev/revive/rule/range.go | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/vendor/github.com/mgechev/revive/rule/range.go b/vendor/github.com/mgechev/revive/rule/range.go deleted file mode 100644 index d18492c71a..0000000000 --- a/vendor/github.com/mgechev/revive/rule/range.go +++ /dev/null @@ -1,82 +0,0 @@ -package rule - -import ( - "fmt" - "go/ast" - "strings" - - "github.com/mgechev/revive/lint" -) - -// RangeRule lints given else constructs. -type RangeRule struct{} - -// Apply applies the rule to given file. -func (r *RangeRule) Apply(file *lint.File, _ lint.Arguments) []lint.Failure { - var failures []lint.Failure - - onFailure := func(failure lint.Failure) { - failures = append(failures, failure) - } - - w := &lintRanges{file, onFailure} - ast.Walk(w, file.AST) - return failures -} - -// Name returns the rule name. -func (r *RangeRule) Name() string { - return "range" -} - -type lintRanges struct { - file *lint.File - onFailure func(lint.Failure) -} - -func (w *lintRanges) Visit(node ast.Node) ast.Visitor { - rs, ok := node.(*ast.RangeStmt) - if !ok { - return w - } - if rs.Value == nil { - // for x = range m { ... } - return w // single var form - } - if !isIdent(rs.Value, "_") { - // for ?, y = range m { ... } - return w - } - - newRS := *rs // shallow copy - newRS.Value = nil - - w.onFailure(lint.Failure{ - Failure: fmt.Sprintf("should omit 2nd value from range; this loop is equivalent to `for %s %s range ...`", w.file.Render(rs.Key), rs.Tok), - Confidence: 1, - Node: rs.Value, - ReplacementLine: firstLineOf(w.file, &newRS, rs), - }) - - return w -} - -func firstLineOf(f *lint.File, node, match ast.Node) string { - line := f.Render(node) - if i := strings.Index(line, "\n"); i >= 0 { - line = line[:i] - } - return indentOf(f, match) + line -} - -func indentOf(f *lint.File, node ast.Node) string { - line := srcLine(f.Content(), f.ToPosition(node.Pos())) - for i, r := range line { - switch r { - case ' ', '\t': - default: - return line[:i] - } - } - return line // unusual or empty line -} |