aboutsummaryrefslogtreecommitdiffstatsci
path: root/src/CompilerServices/CompilerServices.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/CompilerServices/CompilerServices.cs')
-rw-r--r--src/CompilerServices/CompilerServices.cs4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/CompilerServices/CompilerServices.cs b/src/CompilerServices/CompilerServices.cs
index ae4b700a..7bd91805 100644
--- a/src/CompilerServices/CompilerServices.cs
+++ b/src/CompilerServices/CompilerServices.cs
@@ -270,8 +270,10 @@ namespace go
if (!srcValueType.IsValueType)
il.Emit(OpCodes.Castclass, srcValueType);
+ else if (piTarget.PropertyType != srcValueType)
+ il.Emit(OpCodes.Callvirt, GetConvertMethod( piTarget.PropertyType ));
else
- il.Emit( OpCodes.Callvirt, GetConvertMethod( piTarget.PropertyType ));
+ il.Emit(OpCodes.Unbox_Any, piTarget.PropertyType);
// if (piTarget.PropertyType == typeof(string))
// else if ( srcValueType != piTarget.PropertyType)
//