private MemberQuery IdentifySymbol(SymbolInfo symbol)
        {
            // Try to get the Symbol successfully resolved to (if any)
            ISymbol resolvedSymbol = symbol.Symbol;

            // If the symbol wasn't uniquely resolved, get the first possible candidate
            if (resolvedSymbol == null && symbol.CandidateSymbols.Length > 0)
            {
                resolvedSymbol = symbol.CandidateSymbols[0];
            }

            // Construct a member query for the full namespace, name, and signature of the member referenced
            if (resolvedSymbol != null)
            {
                StringBuilder symbolName = new StringBuilder();

                symbolName.Append(resolvedSymbol.FullNamespace());

                if (resolvedSymbol.ContainingType != null)
                {
                    if (symbolName.Length > 0)
                    {
                        symbolName.Append(".");
                    }
                    symbolName.Append(resolvedSymbol.ContainingType.AdjustedName());
                }

                if (symbolName.Length > 0)
                {
                    symbolName.Append(".");
                }
                symbolName.Append(resolvedSymbol.AdjustedName());

                MemberQuery query = new MemberQuery(symbolName.ToString(), true, true);
                query.Parameters = resolvedSymbol.MinimalParameters();

                // Make query case sensitive, because we know we got exact casing from Roslyn
                query.IgnoreCase = false;

                return(query);
            }

            return(null);
        }