clangd icon indicating copy to clipboard operation
clangd copied to clipboard

No implementation found for abstract class

Open ilev4ik opened this issue 2 months ago • 1 comments

For the following sample cpp code, 'Find All Implementations' on A doesn't find class impl only impl2. Btw implementations of A::f are found correctly. The same is observed on Windows.

I also tried to examine index.dex and got it by... (output is attached at index.yaml) ./clangd-indexer --executor=all-TUs --format=yaml compile_commands.json > index.yaml

I suppose it's related to #1325

template <typename... T>
struct Inherit : T...
{

};

struct A
{
    virtual void f() = 0;
};

struct B {};
struct C {};

struct impl: Inherit<A,B,C>
{
    virtual void f() override {};
};

struct impl2 : A
{
    virtual void f() override {};
};

int main()
{
    impl2 i{};
    return 0;
}


System Information:

> clangd --version
Ubuntu clangd version 14.0.0-1ubuntu1.1
Features: linux+grpc
Platform: x86_64-pc-linux-gnu

> ./clangd-indexer --version
LLVM (http://llvm.org/):
  LLVM version 20.1.8
  Optimized build.

Editor/LSP plugin: VSCode/Clangd official plugin Operating system: ubuntu 22.4

ilev4ik avatar Sep 19 '25 17:09 ilev4ik