If a candidate keyword contains quotes, it's clearly not a keyword, so bail out early

There are other characters we could optimize for (any non-letter pretty much), but keyword.iskeyword() will handle them, whereas quotes do have the potential to confuse us, so they actually need custom handling

Fixes rdar://problem/21022787

llvm-svn: 239779
This commit is contained in:
Enrico Granata
2015-06-15 23:12:29 +00:00
parent 8e7a58d7cc
commit 3ab6669eeb

View File

@@ -45,6 +45,8 @@
#include "lldb/Host/windows/ConnectionGenericFileWindows.h"
#endif
#include "llvm/ADT/StringRef.h"
using namespace lldb;
using namespace lldb_private;
@@ -2615,6 +2617,16 @@ ScriptInterpreterPython::LoadScriptingModule(const char *pathname, bool can_relo
bool
ScriptInterpreterPython::IsReservedWord (const char* word)
{
if (!word || !word[0])
return false;
llvm::StringRef word_sr(word);
// filter out a few characters that would just confuse us
// and that are clearly not keyword material anyway
if (word_sr.find_first_of("'\"") != llvm::StringRef::npos)
return false;
StreamString command_stream;
command_stream.Printf("keyword.iskeyword('%s')", word);
bool result;