func (m *TypeMap) descriptorNamed(t *types.Named) TypeDebugDescriptor { placeholder := &PlaceholderTypeDescriptor{} m.m.Set(t, placeholder) underlying := t.Underlying() if old, ok := m.m.At(underlying).(DebugDescriptor); ok { // Recreate the underlying type, in lieu of a method of cloning. m.m.Delete(underlying) defer m.m.Set(underlying, old) } dt := m.typeDebugDescriptor(underlying, t.String()) if file := m.Fset.File(t.Obj().Pos()); file != nil { dt.Common().File = file.Name() } placeholder.TypeDebugDescriptor = dt return dt }
func (tm *llvmTypeMap) nameLLVMType(n *types.Named) llvm.Type { return tm.toLLVM(n.Underlying(), n.String()) }