Index: packages/Python/lldbsuite/test/lang/cpp/type_lookup/TestCppTypeLookup.py =================================================================== --- packages/Python/lldbsuite/test/lang/cpp/type_lookup/TestCppTypeLookup.py +++ packages/Python/lldbsuite/test/lang/cpp/type_lookup/TestCppTypeLookup.py @@ -38,6 +38,11 @@ # Get frame for current thread frame = thread.GetSelectedFrame() + # We are testing LLDB's type lookup machinery, but if we inject local + # variables, the types for those will be found because they have been + # imported through the variable, not because the type lookup worked. + self.runCmd("settings set target.experimental.inject-local-vars false") + # Make sure we don't accidentally accept structures that exist only # in namespaces when evaluating expressions with top level types. # Prior to the revision that added this test, we would accidentally Index: source/Core/Module.cpp =================================================================== --- source/Core/Module.cpp +++ source/Core/Module.cpp @@ -997,6 +997,7 @@ const bool append = true; TypeClass type_class = eTypeClassAny; TypeMap typesmap; + if (Type::GetTypeScopeAndBasename(type_name_cstr, type_scope, type_basename, type_class)) { // Check if "name" starts with "::" which means the qualified type starts @@ -1019,12 +1020,12 @@ // The "type_name_cstr" will have been modified if we have a valid type // class prefix (like "struct", "class", "union", "typedef" etc). FindTypes_Impl(sc, ConstString(type_basename), nullptr, append, - max_matches, searched_symbol_files, typesmap); + UINT_MAX, searched_symbol_files, typesmap); typesmap.RemoveMismatchedTypes(type_scope, type_basename, type_class, exact_match); num_matches = typesmap.GetSize(); } else { - num_matches = FindTypes_Impl(sc, name, nullptr, append, max_matches, + num_matches = FindTypes_Impl(sc, name, nullptr, append, UINT_MAX, searched_symbol_files, typesmap); if (exact_match) { std::string name_str(name.AsCString(""));