// nilLiteral returns a nil literal of the specified type, which may // be any reference type, including interfaces. // func nilLiteral(typ types.Type) *Literal { return newLiteral(exact.MakeNil(), typ) }
// nilConst returns a nil constant of the specified type, which may // be any reference type, including interfaces. // func nilConst(typ types.Type) *Const { return NewConst(exact.MakeNil(), typ) }
sig := &Signature{results: NewTuple(res)} err := NewFunc(token.NoPos, nil, "Error", sig) typ := &Named{underlying: &Interface{methods: []*Func{err}}, complete: true} sig.recv = NewVar(token.NoPos, nil, "", typ) def(NewTypeName(token.NoPos, nil, "error", typ)) } var predeclaredConsts = [...]struct { name string kind BasicKind val exact.Value }{ {"true", UntypedBool, exact.MakeBool(true)}, {"false", UntypedBool, exact.MakeBool(false)}, {"iota", UntypedInt, exact.MakeInt64(0)}, {"nil", UntypedNil, exact.MakeNil()}, } func defPredeclaredConsts() { for _, c := range predeclaredConsts { def(NewConst(token.NoPos, nil, c.name, Typ[c.kind], c.val)) } } // A builtinId is the id of a builtin function. type builtinId int const ( // universe scope _Append builtinId = iota _Cap