var PtrSize … var RegSize … var SlicePtrOffset … var SliceLenOffset … var SliceCapOffset … var SliceSize … var StringSize … var SkipSizeForTracing … // typePos returns the position associated with t. // This is where t was declared or where it appeared as a type expression. func typePos(t *Type) src.XPos { … } var MaxWidth … var CalcSizeDisabled … var defercalc … // RoundUp rounds o to a multiple of r, r is a power of 2. func RoundUp(o int64, r int64) int64 { … } // expandiface computes the method set for interface type t by // expanding embedded interfaces. func expandiface(t *Type) { … } // calcStructOffset computes the offsets of a sequence of fields, // starting at the given offset. It returns the resulting offset and // maximum field alignment. func calcStructOffset(t *Type, fields []*Field, offset int64) int64 { … } func isAtomicStdPkg(p *Pkg) bool { … } // CalcSize calculates and stores the size, alignment, eq/hash algorithm, // and ptrBytes for t. // If CalcSizeDisabled is set, and the size/alignment // have not already been calculated, it calls Fatal. // This is used to prevent data races in the back end. func CalcSize(t *Type) { … } // CalcStructSize calculates the size of t, // filling in t.width, t.align, t.intRegs, and t.floatRegs, // even if size calculation is otherwise disabled. func CalcStructSize(t *Type) { … } func (t *Type) widthCalculated() bool { … } var deferredTypeStack … func CheckSize(t *Type) { … } func DeferCheckSize() { … } func ResumeCheckSize() { … } // PtrDataSize returns the length in bytes of the prefix of t // containing pointer data. Anything after this offset is scalar data. // // PtrDataSize is only defined for actual Go types. It's an error to // use it on compiler-internal types (e.g., TSSA, TRESULTS). func PtrDataSize(t *Type) int64 { … }