Skip to content
/ exptostd Public

Detects functions from golang.org/x/exp/ that can be replaced by std functions.

License

Notifications You must be signed in to change notification settings

ldez/exptostd

Repository files navigation

ExpToStd

Detects functions from golang.org/x/exp/ that can be replaced by std functions.

Sponsor

Actual detections:

  • golang.org/x/exp/maps:

    • Keys
    • Values
    • Equal
    • EqualFunc
    • Clone
    • Copy
    • DeleteFunc
    • Clear
  • golang.org/x/exp/slices:

    • Equal
    • EqualFunc
    • Compare
    • CompareFunc
    • Index
    • IndexFunc
    • Contains
    • ContainsFunc
    • Insert
    • Delete
    • DeleteFunc
    • Replace
    • Clone
    • Compact
    • CompactFunc
    • Grow
    • Clip
    • Reverse
    • Sort
    • SortFunc
    • SortStableFunc
    • IsSorted
    • IsSortedFunc
    • Min
    • MinFunc
    • Max
    • MaxFunc
    • BinarySearch
    • BinarySearchFunc

Usages

Inside golangci-lint

Recommended.

linters:
  enable:
    - exptostd

As a CLI

go install github.com/ldez/exptostd/cmd/exptostd@latest
./exptostd ./...

Examples

package foo

import (
	"fmt"

	"golang.org/x/exp/maps"
)

func foo(m map[string]string) {
	clone := maps.Clone(m)

	fmt.Println(clone)
}

It can be replaced by:

package foo

import (
	"fmt"
	"maps"
)

func foo(m map[string]string) {
	clone := maps.Clone(m)

	fmt.Println(clone)
}

References