// Copyright 2021 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 noder import ( "cmd/compile/internal/types" "cmd/compile/internal/types2" ) var basics = [...]**types.Type{ types2.Invalid: new(*types.Type), types2.Bool: &types.Types[types.TBOOL], types2.Int: &types.Types[types.TINT], types2.Int8: &types.Types[types.TINT8], types2.Int16: &types.Types[types.TINT16], types2.Int32: &types.Types[types.TINT32], types2.Int64: &types.Types[types.TINT64], types2.Uint: &types.Types[types.TUINT], types2.Uint8: &types.Types[types.TUINT8], types2.Uint16: &types.Types[types.TUINT16], types2.Uint32: &types.Types[types.TUINT32], types2.Uint64: &types.Types[types.TUINT64], types2.Uintptr: &types.Types[types.TUINTPTR], types2.Float32: &types.Types[types.TFLOAT32], types2.Float64: &types.Types[types.TFLOAT64], types2.Complex64: &types.Types[types.TCOMPLEX64], types2.Complex128: &types.Types[types.TCOMPLEX128], types2.String: &types.Types[types.TSTRING], types2.UnsafePointer: &types.Types[types.TUNSAFEPTR], types2.UntypedBool: &types.UntypedBool, types2.UntypedInt: &types.UntypedInt, types2.UntypedRune: &types.UntypedRune, types2.UntypedFloat: &types.UntypedFloat, types2.UntypedComplex: &types.UntypedComplex, types2.UntypedString: &types.UntypedString, types2.UntypedNil: &types.Types[types.TNIL], } var dirs = [...]types.ChanDir{ types2.SendRecv: types.Cboth, types2.SendOnly: types.Csend, types2.RecvOnly: types.Crecv, } // deref2 does a single deref of types2 type t, if it is a pointer type. func deref2(t types2.Type) types2.Type { if ptr := types2.AsPointer(t); ptr != nil { t = ptr.Elem() } return t }