On Thu, Aug 25, 2016 at 9:16 PM, Richard Smith <rich...@metafoo.co.uk> wrote: > On Thu, Aug 25, 2016 at 5:46 PM, Reid Kleckner <r...@google.com> wrote: >> >> rnk added a comment. >> >> I think these are known as "IDL attributes": >> https://msdn.microsoft.com/en-us/library/8tesw2eh.aspx >> >> Let's update the naming to use that terminology, so AS_MS should be >> AS_IDL, and MaybeParseMicrosoftAttributes should be >> MaybeParseMicrosoftIDLAttributes, etc.
I disagree that these are IDL attributes, though they are certainly used in IDL. They're also used for SAL, COM, the compiler, etc. For instance: https://msdn.microsoft.com/en-us/library/3c3t8ddh.aspx We've usually called these "Microsoft" attributes in the past (see Parser::ParseMicrosoftAttributes()), and I think that's reasonable terminology for them (I am comfortable having declspec attributes be different than whatever we wind up calling these because they are distinct syntactic constructs anyway). >> >> Also, doesn't this introduce ambiguities into the grammar? Something like >> this: >> >> void useit(int); >> int main() { >> int uuid = 42; >> [uuid]() { >> useit(uuid); >> }(); >> } >> >> Will we keep parsing that as a lambda after this change or not? > > > I can see why (paraphrasing that MSDN article) parsing these attributes > requires you to be a wizard. We tried implementing this once before and ran into some considerable roadblocks, both with C++ lambdas and with Objective-C message sends (which is somewhat less concerning than lambdas). ~Aaron _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits