ICSharpCode.NRefactory.MonoCSharp.RuntimeValueExpression.MakeExpression C# (CSharp) Method

MakeExpression() public method

public MakeExpression ( ICSharpCode.NRefactory.MonoCSharp.BuilderContext ctx ) : Expression
ctx ICSharpCode.NRefactory.MonoCSharp.BuilderContext
return System.Linq.Expressions.Expression
		public override SLE.Expression MakeExpression (BuilderContext ctx)
		{
#if STATIC
			return base.MakeExpression (ctx);
#else

#if NET_4_0 || MOBILE_DYNAMIC
				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 ());
#endif
		}
	}