<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJylVE2PmzAQ_TVwGRURCPk4cNh0tVIPvVQr9bgy9gDeGJx6TCL-fWdIusmqt1ayANvjmfeeH9N4M9c_exwhhtmOHUQPrR0NaOUcBgLfggLtR4ph0tEHSIodLmGECLYFG8ESGFQGeHdEFdwM5JNiD9_gYqmXiIufnAHliI_1_gJqnB8rJJucoknKJx6DOuLbNNpfE_IyR5q_t6lXAY1sx15FQI6ZTgzIoY4LCVl9AJ0UX4HsqBFaxkh-QIjzCYkRuXuc9SN0nldjH_zU9fzGIUvy5yR_uj5fe08IXFu2ABUJC5I8jMB4Kf0-UeRdiYsXfyN-Cr5RDeui_RkD7PKkqEStwQcUbM0U7yo1CF1AJnAVV9-lM37BHnspRHawToWFkaC5WINwVsFinG-a4nBySnOFHd-GqCVnvaEMXnucrzyC1UeLkkIoZ_BdzQzgoy5_k3dnNJw_9lfpyIe4-CLyaYaO4OwRpWBSHXhop8budl2tEv3nt1YuYffKogtfFTrKskxQVc8y-Gj5AgeRgZ3kWKkPOShavqSLD8eF6r9bBc_scmHhp7go9oGfmKZWE-HNzNoPA3uBPS5rVzpX_p7PsYGicbYRn6iRuTc6KQ48stTUpdmXe5WqicuE-geaA_8QJq_KVToFV_cxnkjQFS88Ok45NRmX44lz5z-vL-yXd7YyTy3RhMQfVbmtqrSv29yotti2m7zBIl-vS631xiie5W2xKfepUw06quUqimLECywp-Jt1Tv8fga2LvOCxWq2KVb7aZ_kKza5s9mqr16bc7pM1-05Zl0mezIcuDfWSspk64k1nKdJ9UxHZbkRcADPCaKNbJjcXVc_wIv0oYIsB-RfmhjF-akjcUD43F2ks_HvIvbJLH0yyOOTBFbc-IeE2pgvRemH5G_JouvE>53755</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [clangd] Find references on constructor should also show call sites of make_unique and make_shared that call it
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    When trying to find callers of a constructor (eg to see if it is dead or nearly so) I wish it would also show any callers of `std::make_unique` and `std::make_shared` that end up selecting that constructor, since for some types all construction goes through them.

Those are the easy cases and doing just those two would probably cover 80% or more, but it would be great if it could also do something similar for the wide variety of `emplace()` methods. They are trickier though. Maybe it could be solved with some sort of attribute like `[[clangd::factory_for(Type, args...)]]`? But ideally it would still work for `std::make_unique` and `std::make_shared` even without the attributes because it is common to use clangd with other stdlibs than libc++.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJydVMGOmzAQ_Rq4jIoILEk4cNh0tVIPvVQr9bgy9gDeGJx6TCL-vjMk3aTqrdIogGfsee_5TVpvlubngBPEsNiph-ihs5MBrZzDQOA7UKD9RDHMOvoASbHHtYwQwXZgI1gCg8oAZydUwS1APilq-AYXS4NUXPzsDChHvG3wF1DT8tgh2eYUTVI-c4zqiO_zZH_NyMtcaf5N06ACGknHQUVArplPDMihjisJWX0AnRRfgeykETrGSH5EiMsJiRG5e531E_SeV-MQ_NwP_MQxS_KXJH--_r4NnhC4t6QAFQkLknMYgfHS-mOmyFmpixd_I34KvlUt66L9GQPs86SoRK3RBxRs7RzvKrUIfUAmcBVX36UzfsUeB2lEdrROhZWRoLlYg3BWwWJcbprieHJKc4c934aoJXu9oQzeBlyuPILVR4tyhFDO4LtaGMBnX34n785o-Pw4XKUjH-Lqi8i7GTqCs0eUhkl14NBOTf3tujol-i_vnVzC_o1FF74q9JRlmaCqXiR4a_kKB5GBneRYqU85KFq-pIsPx5Xq_1sFz-xyYeHnuCr2iZ-YplYz4c3M2o8je4E9LmtXOlf-nvexgaJxthWfqIm5tzopDhxZaprS1GWt0mijw-auRfUCrzJVATsMyEZk209_jRWPxd8jIuPBlyzoWOsHqivPB243t0u5jekcXDPEeCLRoHjl6Bn43GZMij-cO_95fGFXfvDA8KclmpH4pSp3VZUOTYl13m5VnW_1Ftm6u1pXG9SVwb166rZF6lSLjoRhUhQTXmA9gt-ZamqbIi84NptNsck3dZZv0OzLtlY7_WTKXZ08sTeVdZngyHzo09CskNq5J046S5HuSUVk-wlXQeV8NfMlhuYHmgP_3Zi8Kjfp2r9Z8f8GuF6lkA">