summaryrefslogtreecommitdiff
path: root/src/pkg/runtime/reflect.cgo
diff options
context:
space:
mode:
Diffstat (limited to 'src/pkg/runtime/reflect.cgo')
-rw-r--r--src/pkg/runtime/reflect.cgo6
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);
}