protected override void VisitTernaryExpression(TernaryExpressionSyntax pNode) { if (!CanCast(pNode.Condition.Type, SmallTypeCache.Boolean)) { CompilerErrors.TypeCastError(pNode.Condition.Type, SmallTypeCache.Boolean, pNode.Condition.Span); } if (pNode.Left.Type != pNode.Right.Type) { CompilerErrors.TypeCastError(pNode.Left.Type, pNode.Right.Type, pNode.Span); } base.VisitTernaryExpression(pNode); }
protected virtual void VisitTernaryExpression(TernaryExpressionSyntax pNode) { Visit(pNode.Condition); Visit(pNode.Left); Visit(pNode.Right); }
protected override void VisitTernaryExpression(TernaryExpressionSyntax pNode) { base.VisitTernaryExpression(pNode); pNode.SetType(pNode.Left.Type); }
protected virtual SyntaxNode VisitTernaryExpressionSyntax(TernaryExpressionSyntax pNode) { return(SyntaxFactory.TernaryExpression(Visit(pNode.Condition), Visit(pNode.Left), Visit(pNode.Right))); }