internal override Node Bind(Binder b) { b.Bind(ref Left); b.Bind(ref Right); Left.RequireGetAccess(); Right.RequireGetAccess(); Symbol = b.BindBinaryLogicOperation(this, BinaryOperatorSymbol.OperatorKind(Kind)); Datatype = Symbol.Type(); return(null); }
internal override Node Bind(Binder b) { b.Bind(ref Left, BindAffinity.Assign); b.Bind(ref Right); Left.RequireGetSetAccess(); Right.RequireGetAccess(); Right = BinaryExpr.Bound(Left.Cloned(b), Token, Right, BinaryOperatorSymbol.OperatorKind(Kind), false, b.Options.Binding); b.Convert(ref Right, Left.Datatype); Symbol = Left.Symbol; Datatype = Left.Datatype; return(null); }