On Sunday, June 25, 2017 at 1:24:40 PM UTC+2, Vassilis Virvilis wrote:
>
> Ηι,
>
> thanks for answering
>
> d3.ordinal does not exist as you said. However d3.scale.ordinal exists and 
> that part works great.
>

But it is not a type, so you cannot use 'instanceof' on it.
 

> in d3 ordinal is both a function ordinal() which returns an ordinal 
> instance and an object with more methods such as range() which is the crux 
> of my issue.
>
> The problem there is that 
>
>    - public native <I, O> O range(I[] values);       *// this doesn't 
>    work*
>    - // public native <I> Ordinal range(I[] values); *// this works*
>
> I would like to use the first definition because it allows reusing some 
> code between different scales. Otherwise I have to copy-paste the range() 
> method multiple times instead of put it in a base class.
>

In Java, generics are more or less syntactic sugar for using the erased 
type and casting values. So when using the first one, GWT will, when used 
with O==Ordinal, generate a cast from Object to Ordinal, which IIUC is 
what's causing the error, because your JsType is not a type that can be 
checked (a cast is translated in JS to a type-check using 'instanceof').
 

> The problem is on the exceptions generated by the attempting casting.
>
> As you said this may not be a bug but not for the reason you mentioned.
>
> So the question remains: Should I report it as an issue?
>

I would say no. Your @JsType is wrong. You should either use an interface 
with @JsType(isNative=true, name="?", namespace=JsPackage.GLOBAL), or if 
you want to use fields use a class with @JsType(isNative=true, 
name="Object", namespace=JsPackage.GLOBAL) 

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Contributors" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-web-toolkit-contributors/6206fb29-d3c1-48de-ab04-0610cbb3c2bd%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to