예제 #1
0
        private static ISymbol GetGlobalMember(SemanticModelBase semanticModel, SyntaxNodeBase node)
        {
            switch (node)
            {
            case FunctionSyntax t: return(semanticModel.GetDeclaredSymbol(t));

            case VariableDeclaratorSyntax t: return(semanticModel.GetDeclaredSymbol(t));
            }

            return(null);
        }
예제 #2
0
        private static ISymbol GetType(SemanticModelBase semanticModel, SyntaxNodeBase node)
        {
            switch (node)
            {
            case ConstantBufferSyntax t: return(semanticModel.GetDeclaredSymbol(t));

            case NamespaceSyntax t: return(semanticModel.GetDeclaredSymbol(t));

            case TechniqueSyntax t: return(semanticModel.GetDeclaredSymbol(t));

            case TypeDefinitionSyntax t: return(semanticModel.GetDeclaredSymbol(t));
            }

            return(null);
        }
        public ISymbol GetDeclaredSymbol(SemanticModelBase semanticModel, ISyntaxToken token, CancellationToken cancellationToken)
        {
            var location = token.SourceRange;
            var q        = from node in ((SyntaxToken)token).Ancestors()
                           let symbol = semanticModel.GetDeclaredSymbol(node)
                                        where symbol != null && symbol.Locations.Contains(location)
                                        select symbol;

            return(q.FirstOrDefault());
        }