- From: Tab Atkins Jr. <notifications@github.com>
- Date: Mon, 15 Mar 2021 12:30:37 -0700
- To: heycam/webidl <webidl@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <heycam/webidl/issues/967/799693908@github.com>
As far as I can tell, while `MyDict? foo()` is disallowed by that text, `(DOMString or MyDict?) foo()` is not. There's some strange mixing of abstraction levels here, where it's explicitly talking about syntax ("identifier followed by ?") while also talking about types ("nullable type", slightly later). Due to this, I think it ends up missing the "nullable dict in a union" case.
Looking over the rest of the sections...
* consts are moot, as they're restricted to a small set of types
* attributes explicitly prevent dicts from appearing at all
* operations (including the special operations) have the weird restrictions that I think don't quite work, but clearly *want* to disallow nullable dicts as their return type
* value iterators are implicitly bound by the same restrictions as the indexed property getter, but pair iterators aren't, and can include nullable dicts
* maplikes and setlikes can include nullable dicts in their types
* callback functions can return nullable dicts
So aside from callback functions (which are fairly rare and I doubt use nullable dicts anywhere), only the newest sorts of constructs can return a nullable dict, and it should be safe (not to mention consistent) to ban them there as well.
That leaves us with just arguments that can still potentially take nullable dicts. @saschanaz any reasonable way to search for instances of this?
--
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/967#issuecomment-799693908
Received on Monday, 15 March 2021 19:30:50 UTC