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

    <tr>
        <th>Summary</th>
        <td>
            Respect the sugar type when handling the class type from a member expr
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang-include-cleaner
      </td>
    </tr>

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

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

<pre>
    Given the following example:

```
// header.h
namespace std { struct string_view { int size(); }; }

// absl_string_view.h
namespace absl {
using string_view = std::string_view;
}

// main.cpp
#include "absl_string_view.h"

void k(absl::string_view foo) {
   foo.size();
}
```

The member call `size()` should imply an usage of the target symbol `absl::string_view`, rather than the underlying (desugared) symbol `std::string_view`. 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxsU0Fv8ygQ_TX4MoqFIbbjgw_tRtn7au8VhrFhi8ECnDb76z_hJGraRooYZYZ5b94bLGI0k0PsSf1K6mMh1qR96LV_R-OKwatL_7c5o4OkEUZvrf8wbgL8FPNikfAXQo-E3s-G3n7Xv-xE2Ak0CoWh1NekEzPGRUiEmBSQ9hViCqtMORg3vZ0Nfmxp4xJE8z8SdiCsI_wVSHu8h0fSK4sYon17wPjNl29k5Gt-jVnHN1J-zDNlTfzloUD4reU58SyMK-Wy3JPcOGlXhUAYezIUY48YZ28UvBN2yDd_McPoPWHd19AAOVV-s-XnbD92sJ3_aoQZ5wEDSGEtkIY-YDQUovarVWDmxV5AOFijmBD8uK09iTBhgniZB7_1Ph02U7K_IIikMUDS4vpmVqcw2Es2m7CDwrhOIqDKsr4An9re0BIK1XPV8U4U2FdNW9GuPtC20H2zHxmtqKg7NjRju2eciUEOSLs9H6WqCtMzyljFqpp2VbNvS0lr1tZcjbQakXFK9hRnYWxp7XkufZgKE-OKfd3VnBdWDGjj9lUwJq1w0-621520KByGvMn6WIQ-9--GdYpkT62JKX4hJpMs9v9gXFCmzY5NPqTLgvCh0YEWTtlsTi5KK2K8FsfgZxD3peHnEoo12F6ntMRs1fb2JpP0OpTSz4SdMukt7Jbg_0OZCDttmiJhp03WnwAAAP__Sao3UQ">