From 4165372ec8fd142475a4e35fd0cf4f8042132208 Mon Sep 17 00:00:00 2001 From: Taras Madan Date: Wed, 22 Feb 2023 22:16:50 +0100 Subject: dependencies: update set go min requirements to 1.19 update dependencies update vendor --- .../github.com/sylvia7788/contextcheck/.gitignore | 18 - vendor/github.com/sylvia7788/contextcheck/LICENSE | 201 -------- vendor/github.com/sylvia7788/contextcheck/Makefile | 5 - .../github.com/sylvia7788/contextcheck/README.md | 61 --- .../sylvia7788/contextcheck/contextcheck.go | 507 --------------------- vendor/github.com/sylvia7788/contextcheck/go.mod | 8 - vendor/github.com/sylvia7788/contextcheck/go.sum | 62 --- 7 files changed, 862 deletions(-) delete mode 100644 vendor/github.com/sylvia7788/contextcheck/.gitignore delete mode 100644 vendor/github.com/sylvia7788/contextcheck/LICENSE delete mode 100644 vendor/github.com/sylvia7788/contextcheck/Makefile delete mode 100644 vendor/github.com/sylvia7788/contextcheck/README.md delete mode 100644 vendor/github.com/sylvia7788/contextcheck/contextcheck.go delete mode 100644 vendor/github.com/sylvia7788/contextcheck/go.mod delete mode 100644 vendor/github.com/sylvia7788/contextcheck/go.sum (limited to 'vendor/github.com/sylvia7788/contextcheck') diff --git a/vendor/github.com/sylvia7788/contextcheck/.gitignore b/vendor/github.com/sylvia7788/contextcheck/.gitignore deleted file mode 100644 index fc1b400c8..000000000 --- a/vendor/github.com/sylvia7788/contextcheck/.gitignore +++ /dev/null @@ -1,18 +0,0 @@ -# Binaries for programs and plugins -*.exe -*.exe~ -*.dll -*.so -*.dylib - -# Test binary, built with `go test -c` -*.test - -# Output of the go coverage tool, specifically when used with LiteIDE -*.out - -# Dependency directories (remove the comment below to include it) -# vendor/ - -.idea -.DS_Store diff --git a/vendor/github.com/sylvia7788/contextcheck/LICENSE b/vendor/github.com/sylvia7788/contextcheck/LICENSE deleted file mode 100644 index 99e1c482a..000000000 --- a/vendor/github.com/sylvia7788/contextcheck/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2021 sylvia.wang - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/vendor/github.com/sylvia7788/contextcheck/Makefile b/vendor/github.com/sylvia7788/contextcheck/Makefile deleted file mode 100644 index 9321e9de3..000000000 --- a/vendor/github.com/sylvia7788/contextcheck/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -build: - @GO111MODULE=on go build -ldflags '-s -w' -o contextcheck ./cmd/contextcheck/main.go - -install: - @GO111MODULE=on go install -ldflags '-s -w' ./cmd/contextcheck diff --git a/vendor/github.com/sylvia7788/contextcheck/README.md b/vendor/github.com/sylvia7788/contextcheck/README.md deleted file mode 100644 index dc951aca4..000000000 --- a/vendor/github.com/sylvia7788/contextcheck/README.md +++ /dev/null @@ -1,61 +0,0 @@ -[![CircleCI](https://circleci.com/gh/sylvia7788/contextcheck.svg?style=svg)](https://circleci.com/gh/sylvia7788/contextcheck) - - -# contextcheck - -`contextcheck` is a static analysis tool, it is used to check the function whether use a non-inherited context, which will result in a broken call link. - -For example: - -```go -func call1(ctx context.Context) { - ... - - ctx = getNewCtx(ctx) - call2(ctx) // OK - - call2(context.Background()) // Non-inherited new context, use function like `context.WithXXX` instead - - call3() // Function `call3` should pass the context parameter - ... -} - -func call2(ctx context.Context) { - ... -} - -func call3() { - ctx := context.TODO() - call2(ctx) -} - -func getNewCtx(ctx context.Context) (newCtx context.Context) { - ... - return -} -``` - -## Installation - -You can get `contextcheck` by `go get` command. - -```bash -$ go get -u github.com/sylvia7788/contextcheck -``` - -or build yourself. - -```bash -$ make build -$ make install -``` - -## Usage - -Invoke `contextcheck` with your package name - -```bash -$ contextcheck ./... -$ # or -$ go vet -vettool=`which contextcheck` ./... -``` diff --git a/vendor/github.com/sylvia7788/contextcheck/contextcheck.go b/vendor/github.com/sylvia7788/contextcheck/contextcheck.go deleted file mode 100644 index 543a80209..000000000 --- a/vendor/github.com/sylvia7788/contextcheck/contextcheck.go +++ /dev/null @@ -1,507 +0,0 @@ -package contextcheck - -import ( - "go/ast" - "go/token" - "go/types" - "strconv" - "strings" - "sync" - - "github.com/gostaticanalysis/analysisutil" - "golang.org/x/tools/go/analysis" - "golang.org/x/tools/go/analysis/passes/buildssa" - "golang.org/x/tools/go/ssa" -) - -func NewAnalyzer() *analysis.Analyzer { - return &analysis.Analyzer{ - Name: "contextcheck", - Doc: "check the function whether use a non-inherited context", - Run: NewRun(), - Requires: []*analysis.Analyzer{ - buildssa.Analyzer, - }, - } -} - -const ( - ctxPkg = "context" - ctxName = "Context" -) - -const ( - CtxIn int = 1 << iota // ctx in function's param - CtxOut // ctx in function's results - CtxInField // ctx in function's field param - - CtxInOut = CtxIn | CtxOut -) - -var ( - checkedMap = make(map[string]bool) - checkedMapLock sync.RWMutex -) - -type runner struct { - pass *analysis.Pass - ctxTyp *types.Named - ctxPTyp *types.Pointer - cmpPath string - skipFile map[*ast.File]bool -} - -func NewRun() func(pass *analysis.Pass) (interface{}, error) { - return func(pass *analysis.Pass) (interface{}, error) { - r := new(runner) - r.run(pass) - return nil, nil - } -} - -func (r *runner) run(pass *analysis.Pass) { - r.pass = pass - r.cmpPath = strings.Split(pass.Pkg.Path(), "/")[0] - pssa := pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA) - funcs := pssa.SrcFuncs - name := pass.Pkg.Path() - _ = name - - pkg := pssa.Pkg.Prog.ImportedPackage(ctxPkg) - if pkg == nil { - return - } - - ctxType := pkg.Type(ctxName) - if ctxType == nil { - return - } - - if resNamed, ok := ctxType.Object().Type().(*types.Named); !ok { - return - } else { - r.ctxTyp = resNamed - r.ctxPTyp = types.NewPointer(resNamed) - } - - r.skipFile = make(map[*ast.File]bool) - - for _, f := range funcs { - // skip checked function - key := f.RelString(nil) - _, ok := getValue(key) - if ok { - continue - } - - if !r.checkIsEntry(f, f.Pos()) { - continue - } - - r.checkFuncWithCtx(f) - setValue(key, true) - } -} - -func (r *runner) noImportedContext(f *ssa.Function) (ret bool) { - if !f.Pos().IsValid() { - return false - } - - file := analysisutil.File(r.pass, f.Pos()) - if file == nil { - return false - } - - if skip, has := r.skipFile[file]; has { - return skip - } - defer func() { - r.skipFile[file] = ret - }() - - for _, impt := range file.Imports { - path, err := strconv.Unquote(impt.Path.Value) - if err != nil { - continue - } - path = analysisutil.RemoveVendor(path) - if path == ctxPkg { - return false - } - } - - return true -} - -func (r *runner) checkIsEntry(f *ssa.Function, pos token.Pos) (ret bool) { - if r.noImportedContext(f) { - return false - } - - // check params - tuple := f.Signature.Params() - for i := 0; i < tuple.Len(); i++ { - if r.isCtxType(tuple.At(i).Type()) { - ret = true - break - } - } - - // check freevars - for _, param := range f.FreeVars { - if r.isCtxType(param.Type()) { - ret = true - break - } - } - - // check results - tuple = f.Signature.Results() - for i := 0; i < tuple.Len(); i++ { - // skip the function which generate ctx - if r.isCtxType(tuple.At(i).Type()) { - ret = false - break - } - } - - return -} - -func (r *runner) collectCtxRef(f *ssa.Function) (refMap map[ssa.Instruction]bool, ok bool) { - ok = true - refMap = make(map[ssa.Instruction]bool) - checkedRefMap := make(map[ssa.Value]bool) - storeInstrs := make(map[*ssa.Store]bool) - phiInstrs := make(map[*ssa.Phi]bool) - - var checkRefs func(val ssa.Value, fromAddr bool) - var checkInstr func(instr ssa.Instruction, fromAddr bool) - - checkRefs = func(val ssa.Value, fromAddr bool) { - if val == nil || val.Referrers() == nil { - return - } - - if checkedRefMap[val] { - return - } - checkedRefMap[val] = true - - for _, instr := range *val.Referrers() { - checkInstr(instr, fromAddr) - } - } - - checkInstr = func(instr ssa.Instruction, fromAddr bool) { - switch i := instr.(type) { - case ssa.CallInstruction: - refMap[i] = true - tp := r.getCallInstrCtxType(i) - if tp&CtxOut != 0 { - // collect referrers of the results - checkRefs(i.Value(), false) - return - } - case *ssa.Store: - if fromAddr { - // collect all store to judge whether it's right value is valid - storeInstrs[i] = true - } else { - checkRefs(i.Addr, true) - } - case *ssa.UnOp: - checkRefs(i, false) - case *ssa.MakeClosure: - for _, param := range i.Bindings { - if r.isCtxType(param.Type()) { - refMap[i] = true - break - } - } - case *ssa.Extract: - // only care about ctx - if r.isCtxType(i.Type()) { - checkRefs(i, false) - } - case *ssa.Phi: - phiInstrs[i] = true - checkRefs(i, false) - case *ssa.TypeAssert: - // ctx.(*bm.Context) - } - } - - for _, param := range f.Params { - if r.isCtxType(param.Type()) { - checkRefs(param, false) - } - } - - for _, param := range f.FreeVars { - if r.isCtxType(param.Type()) { - checkRefs(param, false) - } - } - - for instr := range storeInstrs { - if !checkedRefMap[instr.Val] { - r.pass.Reportf(instr.Pos(), "Non-inherited new context, use function like `context.WithXXX` instead") - ok = false - } - } - - for instr := range phiInstrs { - for _, v := range instr.Edges { - if !checkedRefMap[v] { - r.pass.Reportf(instr.Pos(), "Non-inherited new context, use function like `context.WithXXX` instead") - ok = false - } - } - } - - return -} - -func (r *runner) buildPkg(f *ssa.Function) { - if f.Blocks != nil { - return - } - - // only build the pkg which is in the same repo - if r.checkIsSameRepo(f.Pkg.Pkg.Path()) { - f.Pkg.Build() - } -} - -func (r *runner) checkIsSameRepo(s string) bool { - return strings.HasPrefix(s, r.cmpPath+"/") -} - -func (r *runner) checkFuncWithCtx(f *ssa.Function) { - refMap, ok := r.collectCtxRef(f) - if !ok { - return - } - - for _, b := range f.Blocks { - for _, instr := range b.Instrs { - tp, ok := r.getCtxType(instr) - if !ok { - continue - } - - // checked in collectCtxRef, skipped - if tp&CtxOut != 0 { - continue - } - - if tp&CtxIn != 0 { - if !refMap[instr] { - r.pass.Reportf(instr.Pos(), "Non-inherited new context, use function like `context.WithXXX` instead") - } - } - - ff := r.getFunction(instr) - if ff == nil { - continue - } - - key := ff.RelString(nil) - valid, ok := getValue(key) - if ok { - if !valid { - r.pass.Reportf(instr.Pos(), "Function `%s` should pass the context parameter", ff.Name()) - } - continue - } - - // check is thunk or bound - if strings.HasSuffix(key, "$thunk") || strings.HasSuffix(key, "$bound") { - continue - } - - // if ff has no ctx, start deep traversal check - if !r.checkIsEntry(ff, instr.Pos()) { - r.buildPkg(ff) - - checkingMap := make(map[string]bool) - checkingMap[key] = true - valid := r.checkFuncWithoutCtx(ff, checkingMap) - setValue(key, valid) - if !valid { - r.pass.Reportf(instr.Pos(), "Function `%s` should pass the context parameter", ff.Name()) - } - } - } - } -} - -func (r *runner) checkFuncWithoutCtx(f *ssa.Function, checkingMap map[string]bool) (ret bool) { - ret = true - for _, b := range f.Blocks { - for _, instr := range b.Instrs { - tp, ok := r.getCtxType(instr) - if !ok { - continue - } - - if tp&CtxOut != 0 { - continue - } - - // it is considered illegal as long as ctx is in the input and not in *struct X - if tp&CtxIn != 0 { - if tp&CtxInField == 0 { - ret = false - } - continue - } - - ff := r.getFunction(instr) - if ff == nil { - continue - } - - key := ff.RelString(nil) - valid, ok := getValue(key) - if ok { - if !valid { - ret = false - r.pass.Reportf(instr.Pos(), "Function `%s` should pass the context parameter", ff.Name()) - } - continue - } - - // check is thunk or bound - if strings.HasSuffix(key, "$thunk") || strings.HasSuffix(key, "$bound") { - continue - } - - if !r.checkIsEntry(ff, instr.Pos()) { - // handler ring call - if checkingMap[key] { - continue - } - checkingMap[key] = true - - r.buildPkg(ff) - - valid := r.checkFuncWithoutCtx(ff, checkingMap) - setValue(key, valid) - if !valid { - ret = false - r.pass.Reportf(instr.Pos(), "Function `%s` should pass the context parameter", ff.Name()) - } - } - } - } - return ret -} - -func (r *runner) getCtxType(instr ssa.Instruction) (tp int, ok bool) { - switch i := instr.(type) { - case ssa.CallInstruction: - tp = r.getCallInstrCtxType(i) - ok = true - case *ssa.MakeClosure: - tp = r.getMakeClosureCtxType(i) - ok = true - } - return -} - -func (r *runner) getCallInstrCtxType(c ssa.CallInstruction) (tp int) { - // check params - for _, v := range c.Common().Args { - if r.isCtxType(v.Type()) { - if vv, ok := v.(*ssa.UnOp); ok { - if _, ok := vv.X.(*ssa.FieldAddr); ok { - tp |= CtxInField - } - } - - tp |= CtxIn - break - } - } - - // check results - if v := c.Value(); v != nil { - if r.isCtxType(v.Type()) { - tp |= CtxOut - } else { - tuple, ok := v.Type().(*types.Tuple) - if !ok { - return - } - for i := 0; i < tuple.Len(); i++ { - if r.isCtxType(tuple.At(i).Type()) { - tp |= CtxOut - break - } - } - } - } - - return -} - -func (r *runner) getMakeClosureCtxType(c *ssa.MakeClosure) (tp int) { - for _, v := range c.Bindings { - if r.isCtxType(v.Type()) { - if vv, ok := v.(*ssa.UnOp); ok { - if _, ok := vv.X.(*ssa.FieldAddr); ok { - tp |= CtxInField - } - } - - tp |= CtxIn - break - } - } - return -} - -func (r *runner) getFunction(instr ssa.Instruction) (f *ssa.Function) { - switch i := instr.(type) { - case ssa.CallInstruction: - if i.Common().IsInvoke() { - return - } - - switch c := i.Common().Value.(type) { - case *ssa.Function: - f = c - case *ssa.MakeClosure: - // captured in the outer layer - case *ssa.Builtin, *ssa.UnOp, *ssa.Lookup, *ssa.Phi: - // skipped - case *ssa.Extract, *ssa.Call: - // function is a result of a call, skipped - case *ssa.Parameter: - // function is a param, skipped - } - case *ssa.MakeClosure: - f = i.Fn.(*ssa.Function) - } - return -} - -func (r *runner) isCtxType(tp types.Type) bool { - return types.Identical(tp, r.ctxTyp) || types.Identical(tp, r.ctxPTyp) -} - -func getValue(key string) (valid, ok bool) { - checkedMapLock.RLock() - valid, ok = checkedMap[key] - checkedMapLock.RUnlock() - return -} - -func setValue(key string, valid bool) { - checkedMapLock.Lock() - checkedMap[key] = valid - checkedMapLock.Unlock() -} diff --git a/vendor/github.com/sylvia7788/contextcheck/go.mod b/vendor/github.com/sylvia7788/contextcheck/go.mod deleted file mode 100644 index 95b9ffaef..000000000 --- a/vendor/github.com/sylvia7788/contextcheck/go.mod +++ /dev/null @@ -1,8 +0,0 @@ -module github.com/sylvia7788/contextcheck - -go 1.15 - -require ( - github.com/gostaticanalysis/analysisutil v0.7.1 - golang.org/x/tools v0.1.5 -) diff --git a/vendor/github.com/sylvia7788/contextcheck/go.sum b/vendor/github.com/sylvia7788/contextcheck/go.sum deleted file mode 100644 index 08eb2c77b..000000000 --- a/vendor/github.com/sylvia7788/contextcheck/go.sum +++ /dev/null @@ -1,62 +0,0 @@ -github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/gostaticanalysis/analysisutil v0.7.1 h1:ZMCjoue3DtDWQ5WyU16YbjbQEQ3VuzwxALrpYd+HeKk= -github.com/gostaticanalysis/analysisutil v0.7.1/go.mod h1:v21E3hY37WKMGSnbsw2S/ojApNWb6C1//mXO48CXbVc= -github.com/gostaticanalysis/comment v1.4.2 h1:hlnx5+S2fY9Zo9ePo4AhgYsYHbM2+eAv8m/s1JiCd6Q= -github.com/gostaticanalysis/comment v1.4.2/go.mod h1:KLUTGDv6HOCotCH8h2erHKmpci2ZoR8VPu34YA2uzdM= -github.com/gostaticanalysis/testutil v0.3.1-0.20210208050101-bfb5c8eec0e4 h1:d2/eIbH9XjD1fFwD5SHv8x168fjbQ9PB8hvs8DSEC08= -github.com/gostaticanalysis/testutil v0.3.1-0.20210208050101-bfb5c8eec0e4/go.mod h1:D+FIZ+7OahH3ePw/izIEeH5I06eKs1IKI4Xr64/Am3M= -github.com/hashicorp/go-version v1.2.1 h1:zEfKbn2+PDgroKdiOzqiE8rsmLqU2uwi5PB5pBJ3TkI= -github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/otiai10/copy v1.2.0 h1:HvG945u96iNadPoG2/Ja2+AUJeW5YuFQMixq9yirC+k= -github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw= -github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE= -github.com/otiai10/curr v1.0.0 h1:TJIWdbX0B+kpNagQrjgq8bCMrbhiuX73M2XwgtDMoOI= -github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6j4vs= -github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo= -github.com/otiai10/mint v1.3.1 h1:BCmzIS3n71sGfHB5NMNDB3lHYPz8fWSkCAErHed//qc= -github.com/otiai10/mint v1.3.1/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc= -github.com/tenntenn/modver v1.0.1 h1:2klLppGhDgzJrScMpkj9Ujy3rXPUspSjAcev9tSEBgA= -github.com/tenntenn/modver v1.0.1/go.mod h1:bePIyQPb7UeioSRkw3Q0XeMhYZSMx9B8ePqg6SAMGH0= -github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3 h1:f+jULpRQGxTSkNYKJ51yaw6ChIqO+Je8UqsTKN/cDag= -github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3/go.mod h1:ON8b8w4BN/kE1EOhwT0o+d62W65a6aPw1nouo9LMgyY= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007 h1:gG67DSER+11cZvqIMb8S8bt0vZtiN6xWYARwirrOSfE= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.1.1-0.20210205202024-ef80cdb6ec6d/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= -golang.org/x/tools v0.1.1-0.20210302220138-2ac05c832e1a/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= -golang.org/x/tools v0.1.5 h1:ouewzE6p+/VEB31YYnTbEJdi8pFqKp4P4n85vwo3DHA= -golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -- cgit mrf-deployment