diff options
Diffstat (limited to 'src/pkg/runtime/reflect.cgo')
-rw-r--r-- | src/pkg/runtime/reflect.cgo | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/pkg/runtime/reflect.cgo b/src/pkg/runtime/reflect.cgo index 8bef070c5..51222f1c4 100644 --- a/src/pkg/runtime/reflect.cgo +++ b/src/pkg/runtime/reflect.cgo @@ -108,5 +108,11 @@ func setiface(typ *byte, x *byte, ret *byte) { *(Eface*)ret = *(Eface*)x; return; } + if(((Eface*)x)->type == nil) { + // can assign nil to any interface + ((Iface*)ret)->tab = nil; + ((Iface*)ret)->data = nil; + return; + } ifaceE2I((InterfaceType*)gettype(typ), *(Eface*)x, (Iface*)ret); } |