The declaration

  package somepackage;

  @JsNative(isTrue, name = "ordinal")
  class Ordinal {
  ....
  }

effectively says that there is a native type "somepackage.ordinal", which
d3.ordinal is not.

You can model it as a native interface for example where there is not such
expectation.

So as I understand your report this is not a bug but just an error in
modellin

On Sat, Jun 24, 2017 at 7:58 AM, Vassilis Virvilis <vasv...@gmail.com>
wrote:

> Originally posted in gwt-users.
>
> Two questions:
>
>    1. Do you want me to report it as a bug somewhere? and where that
>    would be?
>    2. I have two more. Do you want me to post them here or this is not
>    the right place to post at all?
>
>
>
> ---------- Forwarded message ----------
> From: Vassilis Virvilis <vasv...@gmail.com>
> Date: Fri, Feb 24, 2017 at 2:26 PM
> Subject: jsinterop woes: Part 1: instanceof function in generics casting
> To: google-web-tool...@googlegroups.com
>
>
> Hi,
>
> again I don't know if this is a bug but it hurts my style
>
> D3 defines d3.scale.ordinal as both a function and an object.
> $wnd.d3.scale.ordinal returns function() in the browser's console though
>
>
>    @JsType(isNative = true, name = "ordinal")
>>       public static class Ordinal {
>>            /** @todo TODO: this crashes. Why? */
>>            public native <I, O> O range(I[] values);       // this
>> doesn't work
>>            //public native <I> Ordinal range(I[] values); // this works
>>       }
>>
>
> I want the generic type because then I can put it in a base class and
> share some code.
>
> I am using it like this
>
>> D3.Scale.Ordinal color = D3.Scale.ordinal().range(new String[]
>> {"#98abc5", "#8a89a6"});
>>
>
> Here is the javascript exception:
>
> Error: java.lang.ClassCastException
>>     at java_lang_ClassCastException_ClassCastException__V.java_lang
>> _Throwable_createError__Ljava_lang_String_2Ljava_lang_Object_2 [as
>> package_private$java_lang$createError__Ljava_lang_String_2Ljava_lang_Object_2]
>> (dashboard-0.js:7245)
>>     at java_lang_ClassCastException_ClassCastException__V.java_lang
>> _Throwable_initializeBackingError__V [as 
>> private$java_lang_Throwable$initializeBackingError__V]
>> (dashboard-0.js:7300)
>>     at 
>> java_lang_ClassCastException_ClassCastException__V.java_lang_Throwable_Throwable__V
>> (dashboard-0.js:7133)
>>     at 
>> java_lang_ClassCastException_ClassCastException__V.java_lang_Exception_Exception__V
>> (dashboard-0.js:7381)
>>     at java_lang_ClassCastException_ClassCastException__V.java_lang
>> _RuntimeException_RuntimeException__V (dashboard-0.js:29724)
>>     at java_lang_ClassCastException_ClassCastException__V
>> (dashboard-0.js:57274)
>>     at javaemul_internal_InternalPreconditions_checkCriticalType__ZV
>> (dashboard-0.js:72135)
>>     at javaemul_internal_InternalPreconditions_checkType__ZV
>> (dashboard-0.js:72342)
>>     at com_google_gwt_lang_Cast_castToNative__Ljava_lang_Object_2Lc
>> om_google_gwt_core_client_JavaScriptObject_2Ljava_lang_Object_2
>> (dashboard-0.js:707)
>>
>
> In
>
>> function com_google_gwt_lang_Cast_castToNative__Ljava_lang_Object_2Lc
>> om_google_gwt_core_client_JavaScriptObject_2Ljava_lang_Object_2(src_0,
>> jsType){
>>   com_google_gwt_lang_Cast_$clinit__V();
>>   javaemul_internal_InternalPreconditions_checkType__ZV(com_go
>> ogle_gwt_lang_Cast_jsEquals__Ljava_lang_Object_2Ljava_lang_Object_2Z(src_0,
>> null) || com_google_gwt_lang_Cast_jsinstanceOf__Ljava_lang_Object_2Lc
>> om_google_gwt_core_client_JavaScriptObject_2Z(src_0, jsType));
>>   return src_0;
>> }
>>
>
> Arguments:
>
>    - src_0:
>       - passed:
>       - evaluated: function scale(x)
>    - jsType:
>       - passed: $wnd.scale.ordinal
>       - evaluated: function anonymous()
>
> The reason it fails is that
>
>> function com_google_gwt_lang_Cast_jsinstanceOf__Ljava_lang_Object_2Lc
>> om_google_gwt_core_client_JavaScriptObject_2Z(obj, jsType){
>>   com_google_gwt_lang_Cast_$clinit__V();
>>   return obj && (jsType && obj instanceof jsType);
>> }
>>
>
> obj is src_0 != null and jsType = function anonymous() != null but (obj
> instanceof jsType) === false
>
> Any idea about that?
>
> --
> Vassilis Virvilis
>
>
>
> --
> Vassilis Virvilis
>
> --
> 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/ms
> gid/google-web-toolkit-contributors/CAKbOjEx1v%3D-%3DVHd0Z5p
> cgTbKTPzFktR7nxoCx2Sr9yutZHtxiw%40mail.gmail.com
> <https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAKbOjEx1v%3D-%3DVHd0Z5pcgTbKTPzFktR7nxoCx2Sr9yutZHtxiw%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAC7T7gkBCv_yUPL6-f0jcZvMGhpyNWZcNidWdmJ9MO4jcuUL8g%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to