...

Package versions

import "cmd/vendor/golang.org/x/tools/internal/versions"
Overview
Index

Overview ▾

func Compare

func Compare(x, y string) int

Compare returns -1, 0, or +1 depending on whether x < y, x == y, or x > y, interpreted as Go versions. The versions x and y must begin with a "go" prefix: "go1.21" not "1.21". Invalid versions, including the empty string, compare less than valid versions and equal to each other. The language version "go1.21" compares less than the release candidate and eventual releases "go1.21rc1" and "go1.21.0". Custom toolchain suffixes are ignored during comparison: "go1.21.0" and "go1.21.0-bigcorp" are equal.

func FileVersions

func FileVersions(info *types.Info, file *ast.File) string

FileVersions maps a file to the file's semantic Go version. The reported version is the zero version if a version cannot be determined.

func GoVersion

func GoVersion(pkg *types.Package) string

GoVersion returns the Go version of the type package. It returns zero if no version can be determined.

func InitFileVersions

func InitFileVersions(info *types.Info)

InitFileVersions initializes info to record Go versions for Go files.

func IsValid

func IsValid(x string) bool

IsValid reports whether the version x is valid.

func Lang

func Lang(x string) string

Lang returns the Go language version for version x. If x is not a valid version, Lang returns the empty string. For example:

Lang("go1.21rc2") = "go1.21"
Lang("go1.21.2") = "go1.21"
Lang("go1.21") = "go1.21"
Lang("go1") = "go1"
Lang("bad") = ""
Lang("1.21") = ""