1
0
mirror of https://github.com/mgechev/revive.git synced 2024-11-24 08:32:22 +02:00
revive/defaultrule/utils.go

40 lines
841 B
Go
Raw Normal View History

2017-11-27 04:48:07 +02:00
package defaultrule
import (
2017-11-27 04:58:15 +02:00
"go/ast"
2017-11-27 04:48:07 +02:00
"strings"
"github.com/mgechev/revive/file"
)
2017-11-27 04:58:15 +02:00
const styleGuideBase = "https://golang.org/wiki/CodeReviewComments"
// isBlank returns whether id is the blank identifier "_".
// If id == nil, the answer is false.
func isBlank(id *ast.Ident) bool { return id != nil && id.Name == "_" }
2017-11-27 04:48:07 +02:00
func isTest(f *file.File) bool {
return strings.HasSuffix(f.Name, "_test.go")
}
2017-11-27 05:19:41 +02:00
var commonMethods = map[string]bool{
"Error": true,
"Read": true,
"ServeHTTP": true,
"String": true,
"Write": true,
}
func receiverType(fn *ast.FuncDecl) string {
switch e := fn.Recv.List[0].Type.(type) {
case *ast.Ident:
return e.Name
case *ast.StarExpr:
if id, ok := e.X.(*ast.Ident); ok {
return id.Name
}
}
// The parser accepts much more than just the legal forms.
return "invalid-type"
}