1
2
3
4
5 package noder
6
7 import (
8 "cmd/compile/internal/types"
9 "cmd/compile/internal/types2"
10 )
11
12 var basics = [...]**types.Type{
13 types2.Invalid: new(*types.Type),
14 types2.Bool: &types.Types[types.TBOOL],
15 types2.Int: &types.Types[types.TINT],
16 types2.Int8: &types.Types[types.TINT8],
17 types2.Int16: &types.Types[types.TINT16],
18 types2.Int32: &types.Types[types.TINT32],
19 types2.Int64: &types.Types[types.TINT64],
20 types2.Uint: &types.Types[types.TUINT],
21 types2.Uint8: &types.Types[types.TUINT8],
22 types2.Uint16: &types.Types[types.TUINT16],
23 types2.Uint32: &types.Types[types.TUINT32],
24 types2.Uint64: &types.Types[types.TUINT64],
25 types2.Uintptr: &types.Types[types.TUINTPTR],
26 types2.Float32: &types.Types[types.TFLOAT32],
27 types2.Float64: &types.Types[types.TFLOAT64],
28 types2.Complex64: &types.Types[types.TCOMPLEX64],
29 types2.Complex128: &types.Types[types.TCOMPLEX128],
30 types2.String: &types.Types[types.TSTRING],
31 types2.UnsafePointer: &types.Types[types.TUNSAFEPTR],
32 types2.UntypedBool: &types.UntypedBool,
33 types2.UntypedInt: &types.UntypedInt,
34 types2.UntypedRune: &types.UntypedRune,
35 types2.UntypedFloat: &types.UntypedFloat,
36 types2.UntypedComplex: &types.UntypedComplex,
37 types2.UntypedString: &types.UntypedString,
38 types2.UntypedNil: &types.Types[types.TNIL],
39 }
40
41 var dirs = [...]types.ChanDir{
42 types2.SendRecv: types.Cboth,
43 types2.SendOnly: types.Csend,
44 types2.RecvOnly: types.Crecv,
45 }
46
47
48 func deref2(t types2.Type) types2.Type {
49 if ptr := types2.AsPointer(t); ptr != nil {
50 t = ptr.Elem()
51 }
52 return t
53 }
54
View as plain text