1 // Copyright 2010 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
11 typedef struct __go_type_descriptor Type;
12 typedef struct __go_interface Iface;
13 typedef struct __go_empty_interface Eface;
15 func ifaceE2I(inter *Type, e Eface, ret *Iface) {
19 if(((uintptr)e.__type_descriptor&reflectFlags) != 0)
20 runtime_throw("invalid interface value");
21 t = e.__type_descriptor;
23 // explicit conversions require non-nil interface value.
24 newTypeAssertionError(nil, nil, inter,
25 nil, nil, inter->__reflection,
29 ret->__object = e.__object;
30 ret->__methods = __go_convert_interface(inter, t);