- From: Glenn Adams <glenn@skynav.com>
- Date: Sat, 1 Sep 2012 07:58:06 +0800
- To: Boris Zbarsky <bzbarsky@mit.edu>
- Cc: public-script-coord@w3.org
- Message-ID: <CACQ=j+e6y6Wx9ZZTobYro7-6d4C9DXdb2xrQX==+ok6obCv=3g@mail.gmail.com>
On Sat, Sep 1, 2012 at 5:15 AM, Boris Zbarsky <bzbarsky@mit.edu> wrote: > All the WebIDL spec says right now about these is: > > Extended attributes can be given directly after the typedef keyword, > and any such extended attributes will be taken to apply to constructs > that use the typedef. > > What does "constructs that use the typedef" mean? > > If I have: > > typedef [Foo] Bar Baz; > readonly attribute Baz something; > > Is the [Foo] applied to the "something" or to the attribute? Consider > that, for example, [TreatNullAs] is an annotation on an attribute, and > applies to the attribute, not an annotation on the type. > > Honestly, I'm not sure I see what the use cases are for extended > attributes here. I propose that we just drop them. Mmm I've been using ExtAttrs on typedefs for documentation purposes in the CSSOM spec, e.g., typedef [Documentation= "<p>The {@name} sequence represents an ordered collection of CSS style rules.</p>" ] sequence<CSSRule> CSSRuleList; However, given Extended attributes<http://dev.w3.org/2006/webapi/WebIDL/#dfn-extended-attribute> can be given directly after the typedef keyword, and any such extended attributes will be taken to apply to constructs that use the typedef. I see the problem you question. I had naively presumed that typedef did in fact define a type (golly its name is 'typedef'). Maybe the fix is to really define a type and not treat as mere shorthand?
Received on Friday, 31 August 2012 23:58:53 UTC