...

Package usesgenerics

import "golang.org/x/tools/go/analysis/passes/usesgenerics"
Overview
Index

Overview ▾

Package usesgenerics defines an Analyzer that checks for usage of generic features added in Go 1.18.

Constants

const (
    GenericTypeDecls  = genericfeatures.GenericTypeDecls
    GenericFuncDecls  = genericfeatures.GenericFuncDecls
    EmbeddedTypeSets  = genericfeatures.EmbeddedTypeSets
    TypeInstantiation = genericfeatures.TypeInstantiation
    FuncInstantiation = genericfeatures.FuncInstantiation
)
const Doc = `detect whether a package uses generics features

The usesgenerics analysis reports whether a package directly or transitively
uses certain features associated with generic programming in Go.`

Variables

var Analyzer = &analysis.Analyzer{
    Name:       "usesgenerics",
    Doc:        Doc,
    Requires:   []*analysis.Analyzer{inspect.Analyzer},
    Run:        run,
    ResultType: reflect.TypeOf((*Result)(nil)),
    FactTypes:  []analysis.Fact{new(featuresFact)},
}

type Features

type Features = genericfeatures.Features

type Result

Result is the usesgenerics analyzer result type. The Direct field records features used directly by the package being analyzed (i.e. contained in the package source code). The Transitive field records any features used by the package or any of its transitive imports.

type Result struct {
    Direct, Transitive Features
}