runtime: runtime.Caller should succeed even without debug info.
[gcc.git] / libgo / runtime / reflect.goc
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.
4
5 package reflect
6 #include "go-type.h"
7 #include "interface.h"
8 #include "runtime.h"
9 #include "go-panic.h"
10
11 func ifaceE2I(inter *Type, e Eface, ret *Iface) {
12 const Type *t;
13 Eface err;
14
15 if(((uintptr)e.__type_descriptor&reflectFlags) != 0)
16 runtime_throw("invalid interface value");
17 t = e.__type_descriptor;
18 if(t == nil) {
19 // explicit conversions require non-nil interface value.
20 runtime_newTypeAssertionError(
21 nil, nil, inter->__reflection,
22 nil, &err);
23 runtime_panic(err);
24 }
25 ret->__object = e.__object;
26 ret->__methods = __go_convert_interface(inter, t);
27 }