Example #1
0
 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);
 }
Example #2
0
 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);
 }