For example, in the following code
#include <string> using namespace std::string_literals; int main() { strin^ // Completes `string` instead of `std::string` }
The using declaration would make completion drop the std namespace, even though it shouldn't.
printNamespaceScope() skips inline namespaces, so to fix this use
printQualifiedName() instead
could you actually change the comments above to showcase an inline namespace and keep this as AccessibleScopes.
Then introduce QueryScopes with a comment saying that This is an overestimate of AccessibleScopes, e.g. it ignores inline namespaces, to fetch more relevant symbols from index.