W3C home > Mailing lists > Public > public-script-coord@w3.org > April to June 2012

Re: [webidl] Unions involving a primitive and a string don't make any sense

From: Boris Zbarsky <bzbarsky@MIT.EDU>
Date: Mon, 02 Apr 2012 02:41:38 -0400
Message-ID: <4F794A22.8000408@mit.edu>
To: public-script-coord@w3.org
On 3/30/12 8:13 PM, Cameron McCormack wrote:
> Yes, that's wrong. The intention was to allow
>
> void f((float or DOMString) x);
>
> to be written because
>
> void f(float x);
> void f(DOMString x);
>
> was not allowed, since the two types are not distinguishable. DOMString
> would be used as the type of last resort, but if a JS Number were passed
> then it would be converted into the float.

I don't see why the same thing can't be done in overload resolution, if 
it's really desired.

> I wonder now with the changes we've made to simplify overloading if it's
> actually useful to have different behaviour between unions and overloads
> like this. Probably not.

That's my feeling too.

> So we should either make primitives and
> DOMString distinguishable for overloading, defaulting to selecting
> DOMString when there isn't an exact type match like unions were meant to
> do, or unions shouldn't allow both types.
>
> I'm not aware of an API that needs to handle floats and DOMStrings
> separately -- is there one? If not, we should just disallow it.

This I don't know offhand.

-Boris
Received on Monday, 2 April 2012 06:42:14 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 8 May 2013 19:30:06 UTC