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