X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fmcs%2Fdynamic.cs;h=2919672dec13386b572c806202a6c7acd19df915;hb=a9afb00c9342165d0f2a0dbb7bdded18d034cfbf;hp=42e68fa385406bb0245eb77e6700c2ae56e4e721;hpb=ba80f0847931c24bc7f14848a51c276d4c4efb59;p=mono.git diff --git a/mcs/mcs/dynamic.cs b/mcs/mcs/dynamic.cs index 42e68fa3854..2919672dec1 100644 --- a/mcs/mcs/dynamic.cs +++ b/mcs/mcs/dynamic.cs @@ -137,17 +137,22 @@ namespace Mono.CSharp public override SLE.Expression MakeExpression (BuilderContext ctx) { -#if NET_4_0 - if (type.IsStruct && !obj.Expression.Type.IsValueType) - return SLE.Expression.Unbox (obj.Expression, type.GetMetaInfo ()); +#if STATIC + return base.MakeExpression (ctx); +#else - if (obj.Expression.NodeType == SLE.ExpressionType.Parameter) { - if (((SLE.ParameterExpression) obj.Expression).IsByRef) - return obj.Expression; - } -#endif + #if NET_4_0 + if (type.IsStruct && !obj.Expression.Type.IsValueType) + return SLE.Expression.Unbox (obj.Expression, type.GetMetaInfo ()); + + if (obj.Expression.NodeType == SLE.ExpressionType.Parameter) { + if (((SLE.ParameterExpression) obj.Expression).IsByRef) + return obj.Expression; + } + #endif - return SLE.Expression.Convert (obj.Expression, type.GetMetaInfo ()); + return SLE.Expression.Convert (obj.Expression, type.GetMetaInfo ()); +#endif } } @@ -174,7 +179,11 @@ namespace Mono.CSharp #if NET_4_0 public override SLE.Expression MakeExpression (BuilderContext ctx) { +#if STATIC + return base.MakeExpression (ctx); +#else return SLE.Expression.Block (expr.MakeExpression (ctx), SLE.Expression.Default (type.GetMetaInfo ())); +#endif } #endif }