private void ClassifyCommonTableExpressionColumnName(CommonTableExpressionColumnNameSyntax node)
        {
            var symbol = _semanticModel.GetDeclaredSymbol(node);

            if (symbol == null)
            {
                return;
            }

            AddClassification(node, symbol);
        }
示例#2
0
        public ColumnSymbol GetDeclaredSymbol(CommonTableExpressionColumnNameSyntax commonTableExpressionColumnName)
        {
            if (commonTableExpressionColumnName == null)
            {
                throw new ArgumentNullException(nameof(commonTableExpressionColumnName));
            }

            var columnList = commonTableExpressionColumnName.Parent as CommonTableExpressionColumnNameListSyntax;

            if (columnList == null)
            {
                return(null);
            }

            var commonTableExpression = columnList.Parent as CommonTableExpressionSyntax;

            if (commonTableExpression == null)
            {
                return(null);
            }

            var symbol = GetDeclaredSymbol(commonTableExpression);

            if (symbol == null)
            {
                return(null);
            }

            var index = 0;

            foreach (var columnName in columnList.ColumnNames)
            {
                if (columnName == commonTableExpressionColumnName)
                {
                    if (index < symbol.Columns.Length)
                    {
                        return(symbol.Columns[index]);
                    }
                }
                index++;
            }

            return(null);
        }
示例#3
0
 public virtual void VisitCommonTableExpressionColumnName(CommonTableExpressionColumnNameSyntax node)
 {
     DefaultVisit(node);
 }
示例#4
0
 public virtual TResult VisitCommonTableExpressionColumnName(CommonTableExpressionColumnNameSyntax node)
 {
     return(DefaultVisit(node));
 }