internal override Node Bind(Binder b) { b.Bind(ref Expr, BindAffinity.Assign); Expr.RequireGetSetAccess(); Left = Expr.Cloned(b); Expr = Bound(Expr, UnaryOperatorSymbol.OperatorKind(Kind), b.Options.Binding); b.Convert(ref Expr, Left.Datatype); Symbol = Expr.Symbol; Datatype = Expr.Datatype; return(null); }
internal override Node Bind(Binder b) { b.Bind(ref Expr); Expr.RequireGetAccess(); if (UnaryOperatorSymbol.OperatorIsLogic(Kind)) { Symbol = b.BindUnaryLogicOperation(this, UnaryOperatorSymbol.OperatorKind(Kind)); } else { Symbol = b.BindUnaryOperation(this, UnaryOperatorSymbol.OperatorKind(Kind)); } Datatype = Symbol.Type(); return(null); }