<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/61479>61479</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [clang][ExtractAPI] Declaration fragments for Obj-C lightweight generics on `id` includes extra pointer indirection
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            good first issue,
            clang:tooling
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          daniel-grumberg
      </td>
    </tr>
</table>

<pre>
    A common pattern in Objective-C framework code is to have one object delegate to another.
The delegate object conforms to a protocol and is attached to the delegating object via a property. 

The declaration fragments for this pattern in ExtractAPI are wrong. for a property that returns `id <AProtocol>` the declaration fragments are `id <AProtocol> *`, which is incorrect as it implies â€œpointer to pointer to object” where id is â€œpointer to object”. We would expect the declaration fragments to look exactly like the sources in this instance.

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx0U8Fu4zgM_Rr5QiRw5DqpDz5kkgbY08xhgT3LEm1zKouGRDft3y_kZDbFor3YhvneIx_1ZFKiISC2qv6h6nNhFhk5ts4EQr8Z4jJ1GIeiY_fRHsHyNHGA2YhgDEABfna_0Qq94eYEfTQTXjm-gmWHQAmEYTRvCBwQeEWCQ4-DEcw1E1hGjFtVnlV5_HvER_WOthx6jtOqZGCOLGzZgwkuyxsRY0d0uSoPNoXhD_-NzI03Y5SPLdw6fe5nvYlGiEMef5gwSIKeI8hI6bPRl3eJxsrx119gIsI1chi2K_KhDzIagYiyxJBA7UtyoKrT8dd9blW9qH15H_Wrxln5SxoofVT7UukTXEeyY3ZPwXKM2aVJQAI0zZ4wgXrR6rlUzWlmCoIxb-fT520zf0BnuI4YEWhd6FfU_-G38A_ClRfvAN_n3P17O8LgmV8B340V_wGeXnGFJ16ixWzhtmcKSUyweE9C4drKNVVjCmx3-0NTHkpdNsXYdqbpdbV3Tx0eus7ioW96fK5r49xeV2VXUKtLXZXV7rDb60o3211_KM3BaXzGZldjr55KnAz5rfdv05bjUFBKC7b73dOhKbzp0Kf1Lmg9MDvoKSaBFaO0VvqktLbehEFVR2H2FIb8vz4Xsc2Sm24ZknoqPSVJjyZC4tc7duPWZ1X_eCRK1Wc4f5vEn93vzQk8DaNcMT9hwICRbAIOt7jkVFGwfnGYALPufydOwVEOCXEolujbUWROqjoqfVH6MpCMS7e1PCl9ydPeX5s58nrs-rJ6T0pf1hX9GwAA__-irGrL">