CodeCompletions CodeCompleter::complete(uint line, uint column, int funcNameStartLine, int funcNameStartColumn) { neededCorrection_ = CompletionCorrection::NoCorrection; // Check if we have a smart pointer completion and get proper constructor signatures in results. // Results are empty when it's not a smart pointer or this completion failed. ClangCodeCompleteResults results = completeSmartPointerCreation(line, column, funcNameStartLine, funcNameStartColumn); if (results.isNull() || results.isEmpty()) results = completeHelper(line, column); filterUnknownContextResults(results, unsavedFile(), line, column); tryDotArrowCorrectionIfNoResults(results, line, column); return toCodeCompletions(results); }