| // 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 universeAny = types2.Universe.Lookup("any").Type() |
| |
| 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 |
| } |