diff options
author | Sam McCall <sam.mccall@gmail.com> | 2018-06-05 16:30:25 +0000 |
---|---|---|
committer | Sam McCall <sam.mccall@gmail.com> | 2018-06-05 16:30:25 +0000 |
commit | 652c6b44bdb3c37b1bc66730f7a2dd4969cc938b (patch) | |
tree | c45ae9ae13fdee9e0a7d462ff27fa734f7870239 /clang-tools-extra/clangd/ClangdUnit.cpp | |
parent | 30e83bd8d550f84f5a4f730440537792192888eb (diff) |
[clangd] Boost code completion results that are narrowly scoped (local, members)
Summary:
This signal is considered a relevance rather than a quality signal because it's
dependent on the query (the fact that it's completion, and implicitly the query
context).
This is part of the effort to reduce reliance on Sema priority, so we can have
consistent ranking between Index and Sema results.
Reviewers: ioeric
Subscribers: klimek, ilya-biryukov, MaskRay, jkorous, cfe-commits
Differential Revision: https://reviews.llvm.org/D47762
Diffstat (limited to 'clang-tools-extra/clangd/ClangdUnit.cpp')
-rw-r--r-- | clang-tools-extra/clangd/ClangdUnit.cpp | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/clang-tools-extra/clangd/ClangdUnit.cpp b/clang-tools-extra/clangd/ClangdUnit.cpp index bf5de6ac34e..cd4104c871f 100644 --- a/clang-tools-extra/clangd/ClangdUnit.cpp +++ b/clang-tools-extra/clangd/ClangdUnit.cpp @@ -51,11 +51,11 @@ template <class T> std::size_t getUsedBytes(const std::vector<T> &Vec) { class DeclTrackingASTConsumer : public ASTConsumer { public: - DeclTrackingASTConsumer(std::vector<const Decl *> &TopLevelDecls) + DeclTrackingASTConsumer(std::vector<Decl *> &TopLevelDecls) : TopLevelDecls(TopLevelDecls) {} bool HandleTopLevelDecl(DeclGroupRef DG) override { - for (const Decl *D : DG) { + for (Decl *D : DG) { // ObjCMethodDecl are not actually top-level decls. if (isa<ObjCMethodDecl>(D)) continue; @@ -66,14 +66,12 @@ public: } private: - std::vector<const Decl *> &TopLevelDecls; + std::vector<Decl *> &TopLevelDecls; }; class ClangdFrontendAction : public SyntaxOnlyAction { public: - std::vector<const Decl *> takeTopLevelDecls() { - return std::move(TopLevelDecls); - } + std::vector<Decl *> takeTopLevelDecls() { return std::move(TopLevelDecls); } protected: std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI, @@ -82,7 +80,7 @@ protected: } private: - std::vector<const Decl *> TopLevelDecls; + std::vector<Decl *> TopLevelDecls; }; class CppFilePreambleCallbacks : public PreambleCallbacks { @@ -174,7 +172,7 @@ ParsedAST::Build(std::unique_ptr<clang::CompilerInvocation> CI, // CompilerInstance won't run this callback, do it directly. ASTDiags.EndSourceFile(); - std::vector<const Decl *> ParsedDecls = Action->takeTopLevelDecls(); + std::vector<Decl *> ParsedDecls = Action->takeTopLevelDecls(); std::vector<Diag> Diags = ASTDiags.take(); // Add diagnostics from the preamble, if any. if (Preamble) @@ -210,7 +208,7 @@ const Preprocessor &ParsedAST::getPreprocessor() const { return Clang->getPreprocessor(); } -ArrayRef<const Decl *> ParsedAST::getLocalTopLevelDecls() { +ArrayRef<Decl *> ParsedAST::getLocalTopLevelDecls() { return LocalTopLevelDecls; } @@ -261,7 +259,7 @@ PreambleData::PreambleData(PrecompiledPreamble Preamble, ParsedAST::ParsedAST(std::shared_ptr<const PreambleData> Preamble, std::unique_ptr<CompilerInstance> Clang, std::unique_ptr<FrontendAction> Action, - std::vector<const Decl *> LocalTopLevelDecls, + std::vector<Decl *> LocalTopLevelDecls, std::vector<Diag> Diags, std::vector<Inclusion> Inclusions) : Preamble(std::move(Preamble)), Clang(std::move(Clang)), Action(std::move(Action)), Diags(std::move(Diags)), |