public BoundUnaryExpression(UnaryOperatorExpressionSyntax syntax, bool hasValue, bool hasErrors, TokenKind kind, BaseBoundExpression expression) : base(hasValue, hasErrors) { Debug.Assert(!syntax.IsDefault(), "'syntax' must not be null."); Debug.Assert(!kind.IsDefault(), "'kind' must not be null."); Debug.Assert(!expression.IsDefault(), "'expression' must not be null."); this.Syntax = syntax; this.Kind = kind; this.Expression = expression; }
private BoundUnaryExpression BindUnaryOperatorExpression(UnaryOperatorExpressionSyntax syntax) { BaseBoundExpression expression = this.BindExpression(syntax.Expression); switch (syntax.OperatorToken.Kind) { case TokenKind.Minus: return(new BoundUnaryExpression(syntax, hasValue: true, expression.HasErrors, syntax.OperatorToken.Kind, expression)); default: throw ExceptionUtilities.UnexpectedValue(syntax.OperatorToken.Kind); } }