Skip to content

[clang-include-cleaner] suggest to insert header in source file when headers with base/derived class would be enough #122850

Open
@EugeneZelenko

Description

@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 (7d8b4eb).

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*/)
{
}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions