<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Apr 15, 2008, at 4:47 PM, Chris Lattner 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; "><br><div><div>On Apr 15, 2008, at 4:48 PM, Fariborz Jahanian 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; "><br><div>On Apr 15, 2008, at 4:34 PM, Chris Lattner wrote:<br class="Apple-interchange-newline"><blockquote type="cite">On Apr 14, 2008, at 4:36 PM, Fariborz Jahanian wrote:<br><blockquote type="cite">Author: fjahanian<br></blockquote><blockquote type="cite">Date: Mon Apr 14 18:36:35 2008<br></blockquote><blockquote type="cite">New Revision: 49699<br></blockquote><blockquote type="cite">URL: <a href="http://llvm.org/viewvc/llvm-project?rev=49699&view=rev">http://llvm.org/viewvc/llvm-project?rev=49699&view=rev</a><br></blockquote><blockquote type="cite">Log:<br></blockquote><blockquote type="cite">New AST representation for each objc2's property declaration.<br></blockquote><br>Nice, thanks Fariborz!<br><br>I think that the propertydecl enum in DeclBase.h needs to be moved to reflect its new place in the class hierarchy.</blockquote><div><br></div>I am not sure what you mean. <span class="Apple-style-span" style="font-family: Monaco; font-size: 10px; ">ObjCPropertyDecl is derived from NamedDecl and it seems to be in the correct position.</span></div></div></blockquote><div><br class="webkit-block-placeholder"></div>Oh, right!</div><div><br><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><blockquote type="cite">Also, given the new approach, should ObjCPropertyDecl inherit from FieldDecl, what do you think?</blockquote><div><br></div>Think of a property declaration as macro for declaring setters and getters. It really has nothing to do with fields.</div></div></blockquote><br></div><div>Ok, I guess what I'm getting at is that it would be nice for interfaces to have a single list of "stuff in them", which would include ivars and properties.  Maybe there should be a class below FieldDecl that PropertyDecl and FieldDecl both inherit from?</div><div><br class="webkit-block-placeholder"></div><div>I admit I'm out of my league here, Steve what do you think?</div><div><br class="webkit-block-placeholder"></div></div></blockquote><div><br class="webkit-block-placeholder"></div><div>I don't think it makes sense for ObjCPropertyDecl to inherit from FieldDecl (BitWidth doesn't make sense).</div><div><br class="webkit-block-placeholder"></div>To some degree, I think the AST's reflect ObjC's adhoc syntax. Instance variables are modeled directly after structure fields (which is reflected in the hierarchy). On the other hand, methods are modeled loosely after Smalltalk...no relation to C-style decls (so they inherit from Decl). Properties are somewhere in the middle...they use C-style naming to access setter/getter methods (largely syntactic sugar). The only common super type is Decl, which I don't see a problem with (for the moment, at least).</div><div><br></div><div>snaroff</div><div><br><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>-Chris</div></div></blockquote></div><br></body></html>