Issue 122850
Summary [clang-include-cleaner] suggest to insert header in source file when headers with base/derived class would be enough
Labels false-positive, clang-include-cleaner
Assignees
Reporter EugeneZelenko
    `clang-include-cleaner` suggest to include header with forward declaration when headers with base/derived classes should be enough.

`clang-tidy misc-include-cleaner` output:

```
clang-tidy -checks="-*,misc-include-cleaner" Forward.cpp 
4 warnings generated.
Forward.cpp:3:39: warning: no header providing "detail::Forward" is directly included [misc-include-cleaner]
    2 | 
 3 | void Test::do_something(const detail::Forward& /*forward*/)
      | ^
```

I tried `clang-include-cleaner` from `main` (7d8b4eb0ead277f41ff69525ed807f9f6e227f37).

Base class header file (`Base.h`):

```
#pragma once

namespace detail
{
    class Forward;
}

class Base
{
public:
    virtual void do_something(const detail::Forward& forward);
};
```

Header file (`Forward.h`):

```
#pragma once

#include "Base.h"

class Test : public Base
{
public:
    void do_something(const detail::Forward& forward) override;
};
```

Source file (`Forward.cpp`):

```
#include "Forward.h"

void Test::do_something(const detail::Forward& /*forward*/)
{
}
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to