private string GetNodeType()

in dotnet/CSharpSourceGraphExtraction/SourceGraph.cs [249:282]


        private string GetNodeType(SyntaxNodeOrToken node)
        {
            if (!_nodeToTypeStringCache.TryGetValue(node, out var res))
            {
                // Handle some literal types:
                if (node.IsKind(SyntaxKind.StringLiteralToken))
                {
                    res = "string";
                }
                else if (node.IsKind(SyntaxKind.CharacterLiteralToken))
                {
                    res = "char";
                }
                else if (node.IsKind(SyntaxKind.NumericLiteralToken))
                {
                    res = node.AsToken().Value.GetType().Name.ToLower();
                }
                else
                {
                    var syntaxNode = node.IsNode ? node.AsNode() : node.AsToken().Parent;
                    if (syntaxNode != null)
                    {
                        ISymbol symbol = RoslynUtils.GetReferenceSymbol(syntaxNode, this.SemanticModel);
                        res = GetTypeNameOfSymbol(symbol);
                    }
                    else
                    {
                        res = NOTYPE_NAME;
                    }
                }
                _nodeToTypeStringCache[node] = res;
            }
            return res;
        }