Clang: Make translation unit and code completion options consistent

...otherwise we might run into the following assertion:

Assertion failed: (IncludeBriefComments ==
        this->IncludeBriefCommentsInCodeCompletion), function CodeComplete, file
        ASTUnit.cpp, line 2411.

Change-Id: I4723b600c7ac5aa2b4c1cb1827f51156afb492b8
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
This commit is contained in:
Nikolai Kosjar
2016-03-07 16:20:50 +01:00
parent 768c900990
commit d7b648abdb
3 changed files with 16 additions and 4 deletions

View File

@@ -139,6 +139,8 @@ public:
SkippedSourceRanges skippedSourceRanges() const;
static uint defaultOptions();
private:
void setDirty();
void checkIfNull() const;
@@ -152,7 +154,6 @@ private:
void reparseTranslationUnit() const;
void reparseTranslationUnitIfFilesAreChanged() const;
void updateIncludeFilePaths() const;
static uint defaultOptions();
static void includeCallback(CXFile included_file,
CXSourceLocation * /*inclusion_stack*/,
unsigned /*include_len*/,

View File

@@ -84,15 +84,13 @@ ClangCodeCompleteResults CodeCompleter::complete(uint line,
CXUnsavedFile *unsavedFiles,
unsigned unsavedFileCount)
{
const auto options = CXCodeComplete_IncludeMacros | CXCodeComplete_IncludeCodePatterns;
return clang_codeCompleteAt(translationUnit.cxTranslationUnitWithoutReparsing(),
translationUnit.filePath().constData(),
line,
column,
unsavedFiles,
unsavedFileCount,
options);
defaultOptions());
}
bool CodeCompleter::hasDotAt(uint line, uint column) const
@@ -103,6 +101,17 @@ bool CodeCompleter::hasDotAt(uint line, uint column) const
return unsavedFile.hasCharacterAt(location.offset(), '.');
}
uint CodeCompleter::defaultOptions() const
{
uint options = CXCodeComplete_IncludeMacros
| CXCodeComplete_IncludeCodePatterns;
if (translationUnit.defaultOptions() & CXTranslationUnit_IncludeBriefCommentsInCodeCompletion)
options |= CXCodeComplete_IncludeBriefComments;
return options;
}
ClangCodeCompleteResults CodeCompleter::completeWithArrowInsteadOfDot(uint line, uint column)
{
ClangCodeCompleteResults results;

View File

@@ -50,6 +50,8 @@ public: // for tests
bool hasDotAt(uint line, uint column) const;
private:
uint defaultOptions() const;
ClangCodeCompleteResults complete(uint line,
uint column,
CXUnsavedFile *unsavedFiles,