No particular reason, really. Using an opaque type was a nice way to make sure no unexpected uses of the type crept in, and we may want to name them still? If we don't care about names, I'm fine switching this to {}*. <br>
<br> - Daniel<br><br>p.s. What are the TBAA rules for Objective-C? :)<br><br>
<div class="gmail_quote">On Wed, Apr 22, 2009 at 2:31 PM, Chris Lattner <span dir="ltr"><<a href="mailto:clattner@apple.com">clattner@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im"><br>
On Apr 22, 2009, at 3:28 AM, Daniel Dunbar wrote:<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
+  /// The opaque type map for Objective-C interfaces. All direct<br>
+  /// manipulation is done by the runtime interfaces, which are<br>
+  /// responsible for coercing to the appropriate type; these opaque<br>
+  /// types are never refined.<br>
+  llvm::DenseMap<const ObjCInterfaceType*, const llvm::Type *> InterfaceTypes;<br>
+<br>
</blockquote>
<br></div>
This is cool daniel, but why use an opaque type pointer here?  Why not just compile all interface pointer types to i8* or {}* or something?<br><font color="#888888">
<br>
-Chris<br>
</font></blockquote></div><br>