<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On May 19, 2009, at 12:49 PM, steve naroff wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div><div><br class="webkit-block-placeholder"></div>You are keeping ObjCInterfaceType for stand-alone interface (and presumably a variation for qualified interface type). </div><div>If so, then it is not clear to me how you do a type conversion from <span class="Apple-style-span" style="font-weight: bold; ">ObjCObjectPointerType to </span>ObjCInterfaceType when user asks for it.</div><div>I know that it is rare, but it can happen as in the following test case:</div><div><br class="webkit-block-placeholder"></div><div><div>@interface I @end</div><div>I *pi;</div><div>int main()</div><div>{</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>return sizeof (*pi);</div><div>}</div><div><br class="webkit-block-placeholder"></div><div>I guess a more general question is does a pointer to ObjCInterfaceType conforms to  <b>ObjCObjectPointerType? </b></div></div></div></div></blockquote><div><br></div>Great example. I think ObjCObjectPointerType would implement getPointeeType(), which would return an ObjCInterfaceType. This is what BlockPointerType and MemberPointerType do.</div><div><br></div><div>Sema::CheckIndirectionOperand() will need to allow for this, since the "*" will be implicit.</div><div><br></div><div>Make sense?</div></div></blockquote><div><br class="webkit-block-placeholder"></div>Yes. There is still a question of what to do when 'id'/'Class' 's declaration seen in objc.h. Since you going to</div><div>treat them as first-class types. Then one possible solution is to #ifdef them out for clang as its has outlived its </div><div>usefulness.</div><div><br class="webkit-block-placeholder"></div><div>- Fariborz</div><div><br></div></body></html>