示例#1
0
        /// <summary>
        /// Returns all statements before the specified statement within the containing method.
        /// This method recursively traverses all parent blocks of the provided statement.
        /// </summary>
        public static IEnumerable <StatementSyntax> GetPreviousStatements(this StatementSyntax statement)
        {
            var previousStatements = statement.GetPreviousStatementsCurrentBlock();

            return(statement.Parent is StatementSyntax parentStatement
                ? previousStatements.Union(GetPreviousStatements(parentStatement))
                : previousStatements);
        }