<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=http://email.email.llvm.org/c/eJztVVFznCAQ_jX4wtRRjF7vwYfkLjeT5ybPDsLeSYviAOaSf99FveTS2DZt2j7VWRHZ5WP3g2VrIx_L20Y5iuIboMJIIMmWJJekSCYRhF0FmUZZpjqhBwmUZBthOgG9dyS7ntVj67wdhKfzH1md5ibrWbMxbWu6oFhtSXZSn_fPca7ei6M6T1uuOsI-ErZeQuNeiYo7B9ajkfOSZJcojreAwxjp5TQwL8g26NT5AMaPwOcenC3_xOT0e043WGssVZ721shBgAuoS5PM4MFWXfBHWtP3IOMQUSweHnBKmmPD8J0AQ-dFTHTPlQY5QdH5-dNRn3BJfk1fPWR1_VfkzeSkgZTOeAjfGgQfHB5htvq9qFcU7rkeuAdJvUF6tYN_w-7Cg4SfknPXmBbwI6HH9mjsF9dzEUa0vm8_4Cn7DALd2dWD0hK_czJj75TmbHefYlNVT8nNdrPPcROYXAdO19-hs6pm20q1vX4vmbMLdMbEK2dLX61Q3fYBt7rrEQ19KFAWrO4mq9tg9QNW_zGZxalZJPPGfUJj9P6ZvmfeRhoDcfAWCl8SMjH5BP-CwnPgn56-J7rS-S47QAc2-BEv3mM3He25xcwYNMeLrxtvQYc0KgxqacL_bfilbfiGPRVy5zHUGu4pjr45lCJZCgWtj40STShfwlg78r6h9eADb6jDVUwH9GgGLSk89GhA99a04za34Bw_QBzJMpPrbM0jPvjG2NKbtjbQtGCjweqy8b4fCyHboRyUb4Y6Fqadd_z1xivnBgh7mmfZOouaMs34HiBhwOUKCiHTlMO-TvlqzXheFEWkeQ3alSTHs8E6ONIRAvsk30bv90CVLGEsSdkFyxg2cSpykYAsCpGm-UWWk4sEsETpOODExh4iW46Q9XBwqNTKefesxCqiDh3A6DB66JXXUG4VP3TGYTI5Guqeo2MhpEKjPQ3lkO4xIyViYUp4zLbupAVHjxjVeLGOltEYQTm6_xWpW_hJ>53393</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Diagnostics drops outer class name for distinct inner classes with same name
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
tomboehmer
</td>
</tr>
</table>
<pre>
This is the code
```c++
#include <concepts>
struct A
{
struct Common{};
};
struct B
{
struct Common{};
};
int main()
{
static_assert(std::same_as<A::Common, B::Common>);
}
```
This is the error it produces:
```
outer_name_dropped.main.cxx:15:2: error: static_assert failed
static_assert(std::same_as<A::Common, B::Common>);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
outer_name_dropped.main.cxx:15:21: note: because 'std::same_as<A::Common, B::Common>' evaluated to false
static_assert(std::same_as<A::Common, B::Common>);
^
/home/dep/workspace/llvm-project/build/include/c++/v1/__concepts/same_as.h:29:19: note: because '__same_as_impl<A::Common, B::Common>' evaluated to false
concept same_as = __same_as_impl<_Tp, _Up> && __same_as_impl<_Up, _Tp>;
^
/home/dep/workspace/llvm-project/build/include/c++/v1/__concepts/same_as.h:26:26: note: because '_IsSame<Common, Common>::value' evaluated to false
concept __same_as_impl = _IsSame<_Tp, _Up>::value;
^
1 error generated.
```
In particular in the section
```
/home/dep/workspace/llvm-project/build/include/c++/v1/__concepts/same_as.h:26:26: note: because '_IsSame<Common, Common>::value' evaluated to false
concept __same_as_impl = _IsSame<_Tp, _Up>::value;
^
```
it says that `_IsSame<Common, Common>::value` evaluated to false, which is correct, but not what one would expect from the message.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztVcFymzAQ_Rq4aMqAMHY4cEjseCbnJmdGSGujVkiMJOLk77vCOHEa2qZNm1OZRQjt6mn3abVqjHisblvpCIpvgXAjIEo3UXoZLdOj8IheBTmO0lxqrgYBJMrX3GgOvXdRfj2px9Z5O3BPpr9odZqblpNmbbrO6KBYbaL8pD7vn-NcvRdHak86JnVELyJazqExL3nNnAPr0ch5EeWXKI51gMMY6eVxYFqQrtGp8wGMH4HPPThb_onJ4-853WCtsUR60lsjBg4uoM5NMoMHW-vgj7Cm70EkIaKEPzzglKzAhuJ7BAydFzGRHZMKxBGKTM_fjvqEGxXX5NUTra7_ibyZnCyQoo2H8G2As8FhCtPVn0W9InDP1MA8COIN0qscfAy7Mw8Sfjqc29Z0gB8BPbYHY7-6nvEwotR99wmz7AtwdGfbDFIJ_E6HGXunY0639xk2df10uOl28jlpA5Nl4LT8AZ11PdnWsuvVe8mcXCATJpacDXm1Qn3bB9z6rkc09GGJMmN1d7S6DVY_YfWDyVyemlkyb9xnNEbvn-l75m2kMRAHb6HwJSFHJp_gX1B4DvzL7HuiK5tq2R402OBHMlvHbjTpmcWTMSiGhU-PVdAhjRKDmpvwfxt-axu-Y0-Gs_MY7hrmCY6-OZRlOhcKWh9aydtwfXFj7cj7mjSDD7yhDlcxGsjBDEoQeOjRgOys6cZt7sA5tockFlUuyrxksZdeQbWRbK-Nw6RwJNRvR8aCTrjC6klCWSc7zCwh0UQjoNT6pAVHDtK3Y4EYLePBqqr1vh9vUrpF2aPB0CTcdFPKvM4c6dwAISmKPC_zuK2akuUpFU1Gy3QFuzLNMpHmO7HjF4s85yJWrAHlqqjA5KIaDmSEwH5UbGJZ0ZTSNKMLmlNskowXPAWxXPIsKxZ5ES1SwBtKJcGPxNh9bKvRpWbYO1QqDNU9KzFQudcA43KIzwbfGlt50zUG2g5sPK5ejd5_A0O74kA">