Ejemplo n.º 1
0
Archivo: types.go Proyecto: minux/llgo
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
}
Ejemplo n.º 2
0
func (tm *llvmTypeMap) nameLLVMType(n *types.Named) llvm.Type {
	return tm.toLLVM(n.Underlying(), n.String())
}