2018-03-01 Paul Thomas <pault@gcc.gnu.org>
[official-gcc.git] / libgo / go / runtime / typekind.go
blobabb27777fe9a601911c3c8cc3d91720dd0263bc1
1 // Copyright 2014 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
5 package runtime
7 const (
8 kindBool = 1 + iota
9 kindInt
10 kindInt8
11 kindInt16
12 kindInt32
13 kindInt64
14 kindUint
15 kindUint8
16 kindUint16
17 kindUint32
18 kindUint64
19 kindUintptr
20 kindFloat32
21 kindFloat64
22 kindComplex64
23 kindComplex128
24 kindArray
25 kindChan
26 kindFunc
27 kindInterface
28 kindMap
29 kindPtr
30 kindSlice
31 kindString
32 kindStruct
33 kindUnsafePointer
35 kindDirectIface = 1 << 5
36 kindGCProg = 1 << 6
37 kindNoPointers = 1 << 7
38 kindMask = (1 << 5) - 1
41 // isDirectIface reports whether t is stored directly in an interface value.
42 func isDirectIface(t *_type) bool {
43 return t.kind&kindDirectIface != 0