- From: Tab Atkins Jr. <notifications@github.com>
- Date: Fri, 18 Nov 2016 16:35:15 -0800
- To: heycam/webidl <webidl@noreply.github.com>
- Message-ID: <heycam/webidl/issues/240/261677698@github.com>
What I'm saying is just that the word "record" is not one of the IDL definition types. Those are for things defined *with* IDL, not the concepts *of* IDL. In particular, the concept of a "record" is *not* an interface that is defined using WebIDL.
(Technically neither are the primitive types, but I don't think it's sufficiently worthwhile for me to create a "primitive" definition type; we can just lump them in with interfaces because they act basically the same for our purposes.)
(If I could do it over again I wouldn't have created separate types for interface/dictionary/other types that you can use in an arglist, as the point of separate types is to carve out separate namespaces, and those really live in the same namespace; you're not allowed to create a dictionary and an interface with the same name. I might still go ahead and merge them as aliases, but I need to develop some machinery to handle definition aliases first.)
Given the above asides, the fact that "record" isn't an interface is even more obvious - it's 100% okay for me to write `interface record { ... }` in a spec. Nothing breaks at all. Thus, the "record" dfn currently in the WebIDL spec *can't* be `interface` type, by definition - if it was, it would be preventing me from defining my interface. It's just a `dfn` type.
Same with "record type" - it's a `dfn`.
Nobody's trying to write `<dfn>record<Foo></dfn>` yet; if they do we'll address that, but for now it's not a relevant part of the topic.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/heycam/webidl/issues/240#issuecomment-261677698
Received on Saturday, 19 November 2016 00:35:47 UTC