func unsupported() { … }
func GetIndexExprData(n ast.Node) *IndexExprData { … }
func ForTypeSpec(*ast.TypeSpec) *ast.FieldList { … }
func ForFuncType(*ast.FuncType) *ast.FieldList { … }
type TypeParam …
func (*TypeParam) Constraint() types.Type { … }
func (*TypeParam) Obj() *types.TypeName { … }
type TypeParamList …
func (*TypeParamList) Len() int { … }
func (*TypeParamList) At(int) *TypeParam { … }
type TypeList …
func (*TypeList) Len() int { … }
func (*TypeList) At(int) types.Type { … }
func NewTypeParam(name *types.TypeName, constraint types.Type) *TypeParam { … }
func SetTypeParamConstraint(tparam *TypeParam, constraint types.Type) { … }
func ForSignature(*types.Signature) *TypeParamList { … }
func SetForSignature(_ *types.Signature, tparams []*TypeParam) { … }
func RecvTypeParams(sig *types.Signature) *TypeParamList { … }
func SetRecvTypeParams(sig *types.Signature, rparams []*TypeParam) { … }
func IsComparable(*types.Interface) bool { … }
func IsConstraint(*types.Interface) bool { … }
func ForNamed(*types.Named) *TypeParamList { … }
func SetForNamed(_ *types.Named, tparams []*TypeParam) { … }
func NamedTypeArgs(*types.Named) *TypeList { … }
func NamedTypeOrigin(named *types.Named) types.Type { … }
type Term …
func (*Term) Tilde() bool { … }
func (*Term) Type() types.Type { … }
func (*Term) String() string { … }
func (*Term) Underlying() types.Type { … }
func NewTerm(tilde bool, typ types.Type) *Term { … }
type Union …
func (*Union) Len() int { … }
func (*Union) Term(i int) *Term { … }
func NewUnion(terms []*Term) *Union { … }
func InitInstanceInfo(*types.Info) { … }
func GetInstance(*types.Info, *ast.Ident) (*TypeList, types.Type) { … }
type Environment …
func Instantiate(env *Environment, typ types.Type, targs []types.Type, validate bool) (types.Type, error) { … }