ICSharpCode.NRefactory.MonoCSharp.Nullable.LiftedUnaryOperator.DoResolve C# (CSharp) Method

DoResolve() protected method

protected DoResolve ( ResolveContext ec ) : Expression
ec ResolveContext
return System.Linq.Expressions.Expression
		protected override Expression DoResolve (ResolveContext ec)
		{
			unwrap = Unwrap.Create (Expr, false);
			if (unwrap == null)
				return null;

			Expression res = base.ResolveOperator (ec, unwrap);
			if (res == null) {
				Error_OperatorCannotBeApplied (ec, loc, OperName (Oper), Expr.Type);
				return null;
			}

			if (res != this) {
				if (user_operator == null)
					return res;
			} else {
				res = Expr = LiftExpression (ec, Expr);
			}

			if (res == null)
				return null;

			eclass = ExprClass.Value;
			type = res.Type;
			return this;
		}