<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/80625>80625</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [clangd] Include cleaner doesn't use forward declarations
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          torshepherd
      </td>
    </tr>
</table>

<pre>
    Include cleaner is great, but often in a header file I don't need to include full definitions. Adding a config setting "UseForwardDeclarations" that uses forward declarations instead of includes in header files, for instance, would help cut down transitive includes.

Currently there isn't really a way to do this without scrutinizing the header file to see if the symbol is used as a full definition or just a declaration
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxsUlFu4zoMPI38QzSQ5ThOPvyR1yJAD_AOQFu0zUKRApFqkD39wm53t1vsl2FyOOSMBkV4jkS9af8z7UuFRZeUe01ZFrotlH01JP_oX-MYiicYA2GkDCwwZ0I17hmGopAmpQgcAWEh9JRh4kDwCj5F4zqFSORBE_An0VRCAE8TR1ZOUXZw9p7jDAhjihPPIKS6Foxz_wtdUr5j9i80Bsy4jRjnQBdUKEIC0wcA_BcEcBQl9JCmX4vX2tcTZVUwpbxBMY60_t9TCR4WCjcYi4JP9wiaMQorv9Nvqp2xZ2PPzyVnihoeoAtlApYPyZkwhAcg3PGxSvcJdGGBO-uSioKMuShH_rGq1IX-ck4TCBHwtHXkcR1SWF0vQh5QAL87CCnDWxEF_GpB5fvGn5oTVtTXne3sad_Zulp68qehOfnWDqcD1t10IIcNTZ7G-nhoxrbi3lm3t8621rZHV-9s7XHfNTjU9XTs9tbsLV2Rwy6E9-su5blikUL90R5cWwUcKMgWK-ci3WFrGufWlOV-nXkayixmbwOLyh8WZQ1bHseAcfamfYHv6fOJPj0uQv98-ark0C-qNzHN2biLcZeZdSnDbkxX4y7rts_P0y2nNxrVuMt2oxh32TT8DAAA__-czRIw">