<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/202235>202235</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[libclang] Inherited constructors not reflected on CXType
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
slburson
</td>
</tr>
</table>
<pre>
In this example:
```
class A {
public:
A(int);
A(const char*);
};
class B : public A {
public:
using A::A;
};
```
when I use `clang_visitCXXMethods` on the `CXType` for `B`, I get a default constructor, a copy constructor, and a move constructor — exactly as if the `using` declaration were not present.
I can walk the decl for B and figure out what's going on, but it's a pain. It would be much easier if the `CXType` had the correct constructor set.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx0U7uO4zgQ_BoqaYzBoV5WoECeOQMOLrtgskOLakm8o0mBD3v99wvSnh3vLhYgYKOaXV1VaqL3ajFEPasPrH4vMIbVut7rMTpvTTHa6dafDIRVeaBveN40sXJgPJ-GPw4fpEbvYQDWHhgftjhqJe8XAQAGJvbKBCY6Vh6eMGmNDyBXdEwMP6qsfX_8-eQ9ACsHuLP-cUj0yiwwJKAchl-pnrQyPlxXMnCC6AlYw6VGs_x7UV6Ft4-PvymsdvKs4WCT83zl7eOf20YJm61LwCFxiTc4wUIBECaaMeoA2ZKLMliXygjSbrffUDMBwtle6LkC7C_B9px1VYpaBn0D9KDmTw3ZYJIwkdToMChr4EqOwNgAmyNPJuzuBk8g0cAV9f-5O3Vk5Yc8e1ZLdAQ2BriuGJhoPSw2xWdN0jfGAOoOI2yozA7gFOBqo55gJDhHuQKhV-Se9H1ltOKUQWmdI_lTKOApayymvpy6ssOC-td2z_fNvq7aYu27UtRU72XZ7Me5riretCN2ZSvLWWKHWKhecNHwhrfitRKi3VXdVDWSXqnpqnYcJas4nVHpndaX8866pVDeR0ptoqwLjSNpnzdeCENXyFUmRHoArk9NL2NcPKu4Vj74L5qggs5PRasx7wyr3-FkVnIq0PTs0udP4mjWJFPJGrinU0Sn-zWEzac9FUcmjosKaxx30p6ZOKZZj5-Xzdn_SAYmjlmhZ-L4sHDpxfcAAAD__xZ0KVw">