1234567891011121314151617181920212223242526 |
- // Copyright 2010 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 reflect
- #include "runtime.h"
- #include "go-type.h"
- #include "interface.h"
- #include "go-panic.h"
- func ifaceE2I(inter *Type, e Eface, ret *Iface) {
- const Type *t;
- Eface err;
- t = e.__type_descriptor;
- if(t == nil) {
- // explicit conversions require non-nil interface value.
- runtime_newTypeAssertionError(
- nil, nil, inter->__reflection,
- nil, &err);
- runtime_panic(err);
- }
- ret->__object = e.__object;
- ret->__methods = __go_convert_interface(inter, t);
- }
|