aliases

Imports

Imports #

"go/token"
"go/types"
"go/ast"
"go/parser"
"go/token"
"go/types"

Functions

Enabled function #

Enabled reports whether [NewAlias] should create [types.Alias] types. This function is expensive! Call it sparingly.

func Enabled() bool

NewAlias function #

NewAlias creates a new TypeName in Package pkg that is an alias for the type rhs. The enabled parameter determines whether the resulting [TypeName]'s type is an [types.Alias]. Its value must be the result of a call to [Enabled], which computes the effective value of GODEBUG=gotypesalias=... by invoking the type checker. The Enabled function is expensive and should be called once per task (e.g. package import), not once per call to NewAlias. Precondition: enabled || len(tparams)==0. If materialized aliases are disabled, there must not be any type parameters.

func NewAlias(enabled bool, pos token.Pos, pkg *types.Package, name string, rhs types.Type, tparams []*types.TypeParam) *types.TypeName

Origin function #

Origin returns the generic Alias type of which alias is an instance. If alias is not an instance of a generic alias, Origin returns alias.

func Origin(alias *types.Alias) *types.Alias

Rhs function #

Rhs returns the type on the right-hand side of the alias declaration.

func Rhs(alias *types.Alias) types.Type

SetTypeParams function #

SetTypeParams sets the type parameters of the alias type.

func SetTypeParams(alias *types.Alias, tparams []*types.TypeParam)

TypeArgs function #

TypeArgs returns the type arguments used to instantiate the Alias type.

func TypeArgs(alias *types.Alias) *types.TypeList

TypeParams function #

TypeParams returns the type parameter list of the alias.

func TypeParams(alias *types.Alias) *types.TypeParamList

Generated with Arrow