Skip to content

Commit 2ba87db

Browse files
daniil-pankratovDaniil Pankratov
andauthored
Golang 1.25 support (#45)
* Golang 1.25 support * Remove deprecated dependency * Fix test --------- Co-authored-by: Daniil Pankratov <[email protected]>
1 parent cc9a593 commit 2ba87db

File tree

4 files changed

+32
-29
lines changed

4 files changed

+32
-29
lines changed

go.mod

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module github.com/houqp/sqlvet
22

3-
go 1.19
3+
go 1.24.0
44

55
require (
66
github.com/houqp/gtest v1.0.0
@@ -9,9 +9,8 @@ require (
99
github.com/pganalyze/pg_query_go/v5 v5.1.0
1010
github.com/sirupsen/logrus v1.9.3
1111
github.com/spf13/cobra v1.8.0
12-
github.com/stretchr/testify v1.9.0
13-
golang.org/x/tools v0.21.0
14-
golang.org/x/tools/go/pointer v0.1.0-deprecated
12+
github.com/stretchr/testify v1.11.1
13+
golang.org/x/tools v0.39.0
1514
)
1615

1716
require (
@@ -20,9 +19,9 @@ require (
2019
github.com/inconshreveable/mousetrap v1.1.0 // indirect
2120
github.com/pmezard/go-difflib v1.0.0 // indirect
2221
github.com/spf13/pflag v1.0.5 // indirect
23-
golang.org/x/mod v0.17.0 // indirect
24-
golang.org/x/sync v0.7.0 // indirect
25-
golang.org/x/sys v0.20.0 // indirect
22+
golang.org/x/mod v0.30.0 // indirect
23+
golang.org/x/sync v0.18.0 // indirect
24+
golang.org/x/sys v0.38.0 // indirect
2625
google.golang.org/protobuf v1.34.1 // indirect
2726
gopkg.in/yaml.v3 v3.0.1 // indirect
2827
)

go.sum

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4
77
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
88
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
99
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
10+
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
1011
github.com/houqp/gtest v1.0.0 h1:BEA3kuePC0Q9bDoksoZXCnyYIZGUbMXurjwyv/ql0cA=
1112
github.com/houqp/gtest v1.0.0/go.mod h1:oxg4BHzN6nRAQZWTc5qO90uK9voXKmb5kg4/XE6lhKw=
1213
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
@@ -34,31 +35,29 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An
3435
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
3536
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
3637
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
37-
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
38-
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
38+
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
39+
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
3940
go.uber.org/goleak v0.10.1-0.20191111212139-7380c5a9fa84 h1:DSZ6nQuvDK2fSSOX15dEhAYgXJAfaFwhpaxEAnGtAwU=
4041
go.uber.org/goleak v0.10.1-0.20191111212139-7380c5a9fa84/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
4142
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
4243
golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs=
4344
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
44-
golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA=
45-
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
45+
golang.org/x/mod v0.30.0 h1:fDEXFVZ/fmCKProc/yAXXUijritrDzahmwwefnjoPFk=
46+
golang.org/x/mod v0.30.0/go.mod h1:lAsf5O2EvJeSFMiBxXDki7sCgAxEUcZHXoXMKT4GJKc=
4647
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
4748
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
4849
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
49-
golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
50-
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
50+
golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I=
51+
golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
5152
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
5253
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
53-
golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=
54-
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
54+
golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
55+
golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
5556
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
5657
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
5758
golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
58-
golang.org/x/tools v0.21.0 h1:qc0xYgIbsSDt9EyWz05J5wfa7LOVW0YTLOXrqdLAWIw=
59-
golang.org/x/tools v0.21.0/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
60-
golang.org/x/tools/go/pointer v0.1.0-deprecated h1:PwCkqv2FT35Z4MVxR/tUlvLoL0TkxDjShpBrE4p18Ho=
61-
golang.org/x/tools/go/pointer v0.1.0-deprecated/go.mod h1:Jd+I2inNruJ+5VRdS+jU4S1t17z5y+UCCRa/eBRwilA=
59+
golang.org/x/tools v0.39.0 h1:ik4ho21kwuQln40uelmciQPp9SipgNDdrafrYA4TmQQ=
60+
golang.org/x/tools v0.39.0/go.mod h1:JnefbkDPyD8UU2kI5fuf8ZX4/yUeh9W877ZeBONxUqQ=
6261
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
6362
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
6463
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=

pkg/vet/gosource.go

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ import (
1414
"strings"
1515

1616
"golang.org/x/tools/go/callgraph"
17+
"golang.org/x/tools/go/callgraph/rta"
1718
"golang.org/x/tools/go/packages"
18-
"golang.org/x/tools/go/pointer"
1919
"golang.org/x/tools/go/ssa"
2020
"golang.org/x/tools/go/ssa/ssautil"
2121

@@ -537,18 +537,23 @@ func CheckDir(ctx VetContext, dir, buildFlags string, extraMatchers []SqlFuncMat
537537
mains := ssautil.MainPackages(ssaPkgs)
538538

539539
log.Debug("Building call graph...")
540-
anaRes, err := pointer.Analyze(&pointer.Config{
541-
Mains: mains,
542-
BuildCallGraph: true,
543-
})
540+
funcs := []*ssa.Function{}
541+
for _, fn := range mains {
542+
if main := fn.Func("main"); main != nil {
543+
funcs = append(funcs, main)
544+
}
545+
if init := fn.Func("init"); init != nil {
546+
funcs = append(funcs, init)
547+
}
548+
}
544549

545-
if err != nil {
546-
return nil, err
550+
rtaRes := rta.Analyze(funcs, true)
551+
if rtaRes == nil {
552+
return nil, nil
547553
}
548554

549555
queries := []*QuerySite{}
550-
551-
cg := anaRes.CallGraph
556+
cg := rtaRes.CallGraph
552557
for _, sqlfunc := range sqlfuncs {
553558
cgNode := cg.CreateNode(sqlfunc.SSA)
554559
queries = append(

pkg/vet/gosource_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ func main() {
309309
assert.NoError(t, err)
310310

311311
_, err = vet.CheckDir(vet.VetContext{}, dir, "", nil)
312-
assert.Error(t, err)
312+
assert.NoError(t, err)
313313

314314
_, err = vet.CheckDir(vet.VetContext{}, dir, "-tags myBuildTag", nil)
315315
assert.NoError(t, err)

0 commit comments

Comments
 (0)