| // Copyright 2014 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| package runtime |
| |
| const ( |
| kindBool = 1 + iota |
| kindInt |
| kindInt8 |
| kindInt16 |
| kindInt32 |
| kindInt64 |
| kindUint |
| kindUint8 |
| kindUint16 |
| kindUint32 |
| kindUint64 |
| kindUintptr |
| kindFloat32 |
| kindFloat64 |
| kindComplex64 |
| kindComplex128 |
| kindArray |
| kindChan |
| kindFunc |
| kindInterface |
| kindMap |
| kindPtr |
| kindSlice |
| kindString |
| kindStruct |
| kindUnsafePointer |
| |
| kindDirectIface = 1 << 5 |
| kindGCProg = 1 << 6 |
| kindNoPointers = 1 << 7 |
| kindMask = (1 << 5) - 1 |
| ) |
| |
| // isDirectIface reports whether t is stored directly in an interface value. |
| func isDirectIface(t *_type) bool { |
| return t.kind&kindDirectIface != 0 |
| } |