...

Package aliases

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

Overview ▾

func Enabled

func Enabled() bool

Enabled reports whether NewAlias should create types.Alias types.

This function is expensive! Call it sparingly.

func NewAlias

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

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 Origin

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

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 Rhs

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

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

func SetTypeParams

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

SetTypeParams sets the type parameters of the alias type.

func TypeArgs

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

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

func TypeParams

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

TypeParams returns the type parameter list of the alias.