public override IAssignableExpression VisitNullCoalescingExpression(INullCoalescingExpression expr, IList <IStatement> context) { var lref = ToVariableRef(expr.LeftOperand, context); var v0 = new VariableReference { Identifier = _nameGen.GetNextVariableName() }; context.Add( new VariableDeclaration { Reference = v0, Type = Bool }); context.Add( new Assignment { Reference = v0, Expression = new ComposedExpression { References = { lref } } }); return(new IfElseExpression { Condition = new ReferenceExpression { Reference = v0 }, ThenExpression = new ReferenceExpression { Reference = lref }, ElseExpression = ToSimpleExpression(expr.RightOperand, context) }); }
/// <inheritdoc /> public override Expression VisitNullCoalescingExpression(INullCoalescingExpression operation, LocalBinder argument) { return(Expression.Coalesce( operation.PrimaryOperand.Accept(this, argument), operation.SecondaryOperand.Accept(this, argument) )); }
public override void VisitNullCoalescingExpression(INullCoalescingExpression operation) { LogString(nameof(INullCoalescingExpression)); LogCommonPropertiesAndNewLine(operation); Visit(operation.PrimaryOperand, "Left"); Visit(operation.SecondaryOperand, "Right"); }
private static void WriteBinaryNullCoalescing(LanguageWriter w, INullCoalescingExpression exp) { const int PREC_NULL_COAL = 0; WriteExpression(w, exp.Condition, PREC_NULL_COAL > GetExpressionPrecedence(exp.Condition)); w.Write(" ?? "); WriteExpression(w, exp.Expression, PREC_NULL_COAL >= GetExpressionPrecedence(exp.Expression)); }
public override void VisitNullCoalescingExpression(INullCoalescingExpression value) { VisitExpression(new ConditionExpression { Condition = new BinaryExpression { Left = value.Condition, Operator = BinaryOperator.ValueInequality, Right = new LiteralExpression() }, Then = value.Condition, Else = value.Expression }); }
public virtual IExpression TransformNullCoalescingExpression(INullCoalescingExpression value) { value.Condition = this.TransformExpression(value.Condition); value.Expression = this.TransformExpression(value.Expression); return value; }
public ConvertCoalescingToConditionalQuickFix(UnityObjectNullCoalescingWarning warning) { myExpression = warning.Expression; }
public virtual void VisitNullCoalescingExpression(INullCoalescingExpression operation) { DefaultVisit(operation); }
public override void VisitNullCoalescingExpression(INullCoalescingExpression operation) { Visit(operation.PrimaryOperand); Visit(operation.SecondaryOperand); }
public static INullCoalescingExpression Update(this INullCoalescingExpression self, IOperation @leftOperand, IOperation @rightOperand, Conversion @leftConversion, ITypeSymbol @type) => self;
/// <inheritdoc /> public override IOperation VisitNullCoalescingExpression(INullCoalescingExpression operation, object argument) { return(base.VisitNullCoalescingExpression(operation, argument)); }
public virtual void VisitNullCoalescingExpression(INullCoalescingExpression value) { this.VisitExpression(value.Condition); this.VisitExpression(value.Expression); }
public virtual void VisitNullCoalescingExpression(INullCoalescingExpression value) { VisitExpression(value.Condition); VisitExpression(value.Expression); }
public override void VisitNullCoalescingExpression(INullCoalescingExpression operation) { base.VisitNullCoalescingExpression(operation); }
public UnityNullCoalescingWarning(INullCoalescingExpression expression) { Expression = expression; }
private void WriteNullCoalescingExpression(INullCoalescingExpression value, IFormatter formatter) { formatter.Write("("); this.WriteExpression(value.Condition, formatter); formatter.Write("!!"); formatter.Write(" "); formatter.WriteKeyword("?"); formatter.Write(" "); this.WriteExpression(value.Condition, formatter); formatter.Write(" "); formatter.WriteKeyword(":"); formatter.Write(" "); this.WriteExpression(value.Expression, formatter); formatter.Write(")"); }