<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">