[all-commits] [llvm/llvm-project] 75e16f: [Index] [clangd] Support for concept declarations ...

Ilya Biryukov via All-commits all-commits at lists.llvm.org
Tue Apr 26 06:50:21 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 75e16fd2c656fb7d27e6edc46dc1a63ff8323999
      https://github.com/llvm/llvm-project/commit/75e16fd2c656fb7d27e6edc46dc1a63ff8323999
  Author: Ilya Biryukov <ibiryukov at google.com>
  Date:   2022-04-26 (Tue, 26 Apr 2022)

  Changed paths:
    M clang-tools-extra/clangd/CodeComplete.cpp
    M clang-tools-extra/clangd/Protocol.cpp
    M clang-tools-extra/clangd/Quality.cpp
    M clang-tools-extra/clangd/index/SymbolCollector.cpp
    M clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
    M clang-tools-extra/clangd/unittests/SymbolCollectorTests.cpp
    M clang-tools-extra/clangd/unittests/TestIndex.cpp
    M clang-tools-extra/clangd/unittests/TestIndex.h
    M clang-tools-extra/clangd/unittests/XRefsTests.cpp
    M clang/include/clang/AST/RecursiveASTVisitor.h
    M clang/include/clang/Index/IndexSymbol.h
    M clang/lib/Index/IndexBody.cpp
    M clang/lib/Index/IndexDecl.cpp
    M clang/lib/Index/IndexSymbol.cpp
    M clang/lib/Index/IndexTypeSourceInfo.cpp
    M clang/lib/Index/IndexingContext.cpp
    M clang/lib/Index/USRGeneration.cpp
    M clang/tools/libclang/CXIndexDataConsumer.cpp

  Log Message:
  -----------
  [Index] [clangd] Support for concept declarations and requires expressions

Add support for concepts and requires expression in the clang index.
Genarate USRs for concepts.

Also change how `RecursiveASTVisitor` handles return type requirement in
requires expressions. The new code unpacks the synthetic template parameter
list used for storing the actual expression. This simplifies
implementation of the indexing. No code seems to depend on the original
traversal anyway and the synthesized template parameter list is easily
accessible from inside the requires expression if needed.

Add tests in the clangd codebase.

Fixes https://github.com/clangd/clangd/issues/1103.

Reviewed By: sammccall

Differential Revision: https://reviews.llvm.org/D124441




More information about the All-commits mailing list