Beispiel #1
0
        private static bool IsInSubExpression(SyntaxNode node)
        {
            var expression = node.Parent.FirstAncestorOrSelf <ExpressionSyntax>(ancestor => ancestor != null);

            return(expression != null &&
                   !AllowedParentExpressionKinds.Contains(expression.Kind()));
        }
Beispiel #2
0
        private static bool IsCompliantAssignmentInsideExpression(AssignmentExpressionSyntax assignment, ExpressionSyntax topParenthesizedExpression)
        {
            var expressionParent = topParenthesizedExpression.Parent.FirstAncestorOrSelf <ExpressionSyntax>();

            if (expressionParent == null)
            {
                // not inside an expression
                return(true);
            }

            if (IsCompliantCoalesceExpression(expressionParent, assignment))
            {
                return(true);
            }

            if (RelationalExpressionKinds.Contains(expressionParent.Kind()) &&
                IsInStatementCondition(expressionParent))
            {
                return(true);
            }

            return(AllowedParentExpressionKinds.Contains(expressionParent.Kind()));
        }