diff --git a/depinject/check_type.go b/depinject/check_type.go index 41ba36c8ffd2..01bcd07d7f0b 100644 --- a/depinject/check_type.go +++ b/depinject/check_type.go @@ -3,10 +3,9 @@ package depinject import ( "fmt" "reflect" + "slices" "strings" "unicode" - - "golang.org/x/exp/slices" ) // isExportedType checks if the type is exported and not in an internal diff --git a/depinject/go.mod b/depinject/go.mod index 94c995e27711..03b7cb8ed4aa 100644 --- a/depinject/go.mod +++ b/depinject/go.mod @@ -1,12 +1,11 @@ module cosmossdk.io/depinject -go 1.22 +go 1.23 require ( github.com/cosmos/cosmos-proto v1.0.0-beta.5 github.com/cosmos/gogoproto v1.7.0 github.com/stretchr/testify v1.10.0 - golang.org/x/exp v0.0.0-20231006140011-7918f672742d google.golang.org/grpc v1.70.0 google.golang.org/protobuf v1.36.3 gotest.tools/v3 v3.5.1 diff --git a/depinject/go.sum b/depinject/go.sum index c3dd209ecb57..bc0aefda5616 100644 --- a/depinject/go.sum +++ b/depinject/go.sum @@ -34,8 +34,6 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= -golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= -golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= diff --git a/depinject/internal/util/util.go b/depinject/internal/util/util.go index 3a9a95120da0..98be7b869ded 100644 --- a/depinject/internal/util/util.go +++ b/depinject/internal/util/util.go @@ -1,14 +1,14 @@ package util import ( - "golang.org/x/exp/constraints" - "golang.org/x/exp/maps" - "golang.org/x/exp/slices" + "cmp" + "maps" + "slices" ) // IterateMapOrdered iterates over the map with keys sorted in ascending order // calling forEach for each key-value pair as long as forEach does not return an error. -func IterateMapOrdered[K constraints.Ordered, V any](m map[K]V, forEach func(k K, v V) error) error { +func IterateMapOrdered[K cmp.Ordered, V any](m map[K]V, forEach func(k K, v V) error) error { keys := OrderedMapKeys(m) for _, k := range keys { if err := forEach(k, m[k]); err != nil { @@ -19,8 +19,6 @@ func IterateMapOrdered[K constraints.Ordered, V any](m map[K]V, forEach func(k K } // OrderedMapKeys returns the map keys in ascending order. -func OrderedMapKeys[K constraints.Ordered, V any](m map[K]V) []K { - keys := maps.Keys(m) - slices.Sort(keys) - return keys +func OrderedMapKeys[K cmp.Ordered, V any](m map[K]V) []K { + return slices.Sorted(maps.Keys(m)) } diff --git a/depinject/provider_desc.go b/depinject/provider_desc.go index 2e6c612eeffe..fbcfa7756ce1 100644 --- a/depinject/provider_desc.go +++ b/depinject/provider_desc.go @@ -3,10 +3,9 @@ package depinject import ( "fmt" "reflect" + "slices" "strings" "unicode" - - "golang.org/x/exp/slices" ) // providerDescriptor defines a special provider type that is defined by diff --git a/math/go.mod b/math/go.mod index 32dacddf828f..f86a5de3c88e 100644 --- a/math/go.mod +++ b/math/go.mod @@ -5,7 +5,6 @@ go 1.22 require ( github.com/cockroachdb/apd/v3 v3.2.1 github.com/stretchr/testify v1.10.0 - golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0 sigs.k8s.io/yaml v1.4.0 ) diff --git a/math/go.sum b/math/go.sum index 8bbd5349aebe..a9e0d3c21cd6 100644 --- a/math/go.sum +++ b/math/go.sum @@ -26,8 +26,6 @@ github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0 h1:985EYyeCOxTpcgOTJpflJUwOeEz0CQOdPt73OzpE9F8= -golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0/go.mod h1:/lliqkxwWAhPjf5oSOIJup2XcqJaw8RGS6k3TGEc7GI= golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= diff --git a/math/max_min.go b/math/max_min.go index 407dd816ce68..bf381138429e 100644 --- a/math/max_min.go +++ b/math/max_min.go @@ -1,8 +1,8 @@ package math -import "golang.org/x/exp/constraints" +import "cmp" -func Max[T constraints.Ordered](a, b T, rest ...T) T { +func Max[T cmp.Ordered](a, b T, rest ...T) T { max := a if b > a { max = b @@ -15,7 +15,7 @@ func Max[T constraints.Ordered](a, b T, rest ...T) T { return max } -func Min[T constraints.Ordered](a, b T, rest ...T) T { +func Min[T cmp.Ordered](a, b T, rest ...T) T { min := a if b < a { min = b diff --git a/orm/go.mod b/orm/go.mod index bd2437f1b7ba..314c51eba25a 100644 --- a/orm/go.mod +++ b/orm/go.mod @@ -15,7 +15,6 @@ require ( github.com/regen-network/gocuke v1.1.1 github.com/stretchr/testify v1.10.0 go.uber.org/mock v0.5.0 - golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67 google.golang.org/grpc v1.70.0 google.golang.org/protobuf v1.36.3 gotest.tools/v3 v3.5.1 @@ -65,6 +64,7 @@ require ( github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tendermint/go-amino v0.16.0 // indirect github.com/tidwall/btree v1.7.0 // indirect + golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67 // indirect golang.org/x/net v0.34.0 // indirect golang.org/x/sys v0.29.0 // indirect golang.org/x/text v0.21.0 // indirect diff --git a/orm/internal/codegen/query.go b/orm/internal/codegen/query.go index 52551dccaee8..238c047c280c 100644 --- a/orm/internal/codegen/query.go +++ b/orm/internal/codegen/query.go @@ -3,11 +3,11 @@ package codegen import ( "bytes" "fmt" + "maps" "os" + "slices" "github.com/iancoleman/strcase" - "golang.org/x/exp/maps" - "golang.org/x/exp/slices" "google.golang.org/protobuf/compiler/protogen" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" @@ -57,8 +57,7 @@ func (g queryProtoGen) gen() error { outBuf.F("package %s;", g.Desc.Package()) outBuf.F("") - imports := maps.Keys(g.imports) - slices.Sort(imports) + imports := slices.Sorted(maps.Keys(g.imports)) for _, i := range imports { outBuf.F(`import "%s";`, i) } diff --git a/orm/model/ormdb/genesis.go b/orm/model/ormdb/genesis.go index b5e4d34b1de7..686427d3289b 100644 --- a/orm/model/ormdb/genesis.go +++ b/orm/model/ormdb/genesis.go @@ -3,9 +3,10 @@ package ormdb import ( "context" "fmt" + "maps" + "slices" "sort" - "golang.org/x/exp/maps" "google.golang.org/protobuf/reflect/protoreflect" "cosmossdk.io/core/appmodule" @@ -22,7 +23,7 @@ func (m appModuleGenesisWrapper) IsOnePerModuleType() {} func (m appModuleGenesisWrapper) IsAppModule() {} func (m appModuleGenesisWrapper) DefaultGenesis(target appmodule.GenesisTarget) error { - tableNames := maps.Keys(m.tablesByName) + tableNames := slices.Collect(maps.Keys(m.tablesByName)) sort.Slice(tableNames, func(i, j int) bool { ti, tj := tableNames[i], tableNames[j] return ti.Name() < tj.Name() @@ -50,7 +51,7 @@ func (m appModuleGenesisWrapper) DefaultGenesis(target appmodule.GenesisTarget) func (m appModuleGenesisWrapper) ValidateGenesis(source appmodule.GenesisSource) error { errMap := map[protoreflect.FullName]error{} - names := maps.Keys(m.tablesByName) + names := slices.Collect(maps.Keys(m.tablesByName)) sort.Slice(names, func(i, j int) bool { ti, tj := names[i], names[j] return ti.Name() < tj.Name() @@ -124,7 +125,7 @@ func (m appModuleGenesisWrapper) InitGenesis(ctx context.Context, source appmodu func (m appModuleGenesisWrapper) ExportGenesis(ctx context.Context, sink appmodule.GenesisTarget) error { // Ensure that we export the tables in a deterministic order. - tableNames := maps.Keys(m.tablesByName) + tableNames := slices.Collect(maps.Keys(m.tablesByName)) sort.Slice(tableNames, func(i, j int) bool { ti, tj := tableNames[i], tableNames[j] return ti.Name() < tj.Name()