aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/mgechev/revive/internal
diff options
context:
space:
mode:
authorTaras Madan <tarasmadan@google.com>2022-09-05 14:27:54 +0200
committerGitHub <noreply@github.com>2022-09-05 12:27:54 +0000
commitb2f2446b46bf02821d90ebedadae2bf7ae0e880e (patch)
tree923cf42842918d6bebca1d6bbdc08abed54d274d /vendor/github.com/mgechev/revive/internal
parente6654faff4bcca4be92e9a8596fd4b77f747c39e (diff)
go.mod, vendor: update (#3358)
* go.mod, vendor: remove unnecessary dependencies Commands: 1. go mod tidy 2. go mod vendor * go.mod, vendor: update cloud.google.com/go Commands: 1. go get -u cloud.google.com/go 2. go mod tidy 3. go mod vendor * go.mod, vendor: update cloud.google.com/* Commands: 1. go get -u cloud.google.com/storage cloud.google.com/logging 2. go mod tidy 3. go mod vendor * go.mod, .golangci.yml, vendor: update *lint* Commands: 1. go get -u golang.org/x/tools github.com/golangci/golangci-lint@v1.47.0 2. go mod tidy 3. go mod vendor 4. edit .golangci.yml to suppress new errors (resolved in the same PR later) * all: fix lint errors hash.go: copy() recommended by gosimple parse.go: ent is never nil verifier.go: signal.Notify() with unbuffered channel is bad. Have no idea why. * .golangci.yml: adjust godot rules check-all is deprecated, but still work if you're hesitating too - I'll remove this commit
Diffstat (limited to 'vendor/github.com/mgechev/revive/internal')
-rw-r--r--vendor/github.com/mgechev/revive/internal/typeparams/typeparams.go29
-rw-r--r--vendor/github.com/mgechev/revive/internal/typeparams/typeparams_go117.go12
-rw-r--r--vendor/github.com/mgechev/revive/internal/typeparams/typeparams_go118.go20
3 files changed, 61 insertions, 0 deletions
diff --git a/vendor/github.com/mgechev/revive/internal/typeparams/typeparams.go b/vendor/github.com/mgechev/revive/internal/typeparams/typeparams.go
new file mode 100644
index 000000000..33c4f203e
--- /dev/null
+++ b/vendor/github.com/mgechev/revive/internal/typeparams/typeparams.go
@@ -0,0 +1,29 @@
+// Package typeparams provides utilities for working with Go ASTs with support
+// for type parameters when built with Go 1.18 and higher.
+package typeparams
+
+import (
+ "go/ast"
+)
+
+// Enabled reports whether type parameters are enabled in the current build
+// environment.
+func Enabled() bool {
+ return enabled
+}
+
+// ReceiverType returns the named type of the method receiver, sans "*" and type
+// parameters, or "invalid-type" if fn.Recv is ill formed.
+func ReceiverType(fn *ast.FuncDecl) string {
+ e := fn.Recv.List[0].Type
+ if s, ok := e.(*ast.StarExpr); ok {
+ e = s.X
+ }
+ if enabled {
+ e = unpackIndexExpr(e)
+ }
+ if id, ok := e.(*ast.Ident); ok {
+ return id.Name
+ }
+ return "invalid-type"
+}
diff --git a/vendor/github.com/mgechev/revive/internal/typeparams/typeparams_go117.go b/vendor/github.com/mgechev/revive/internal/typeparams/typeparams_go117.go
new file mode 100644
index 000000000..913a7316e
--- /dev/null
+++ b/vendor/github.com/mgechev/revive/internal/typeparams/typeparams_go117.go
@@ -0,0 +1,12 @@
+//go:build !go1.18
+// +build !go1.18
+
+package typeparams
+
+import (
+ "go/ast"
+)
+
+const enabled = false
+
+func unpackIndexExpr(e ast.Expr) ast.Expr { return e }
diff --git a/vendor/github.com/mgechev/revive/internal/typeparams/typeparams_go118.go b/vendor/github.com/mgechev/revive/internal/typeparams/typeparams_go118.go
new file mode 100644
index 000000000..0f7fd88d3
--- /dev/null
+++ b/vendor/github.com/mgechev/revive/internal/typeparams/typeparams_go118.go
@@ -0,0 +1,20 @@
+//go:build go1.18
+// +build go1.18
+
+package typeparams
+
+import (
+ "go/ast"
+)
+
+const enabled = true
+
+func unpackIndexExpr(e ast.Expr) ast.Expr {
+ switch e := e.(type) {
+ case *ast.IndexExpr:
+ return e.X
+ case *ast.IndexListExpr:
+ return e.X
+ }
+ return e
+}