Ηι, thanks for answering
d3.ordinal does not exist as you said. However d3.scale.ordinal exists and that part works great. 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. 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? Vassilis On Sun, Jun 25, 2017 at 3:24 AM, 'Roberto Lublinerman' via GWT Contributors <[email protected]> wrote: > 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 <[email protected]> > 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 <[email protected]> >> Date: Fri, Feb 24, 2017 at 2:26 PM >> Subject: jsinterop woes: Part 1: instanceof function in generics casting >> To: [email protected] >> >> >> 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 [email protected]. >> 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 [email protected]. > To view this discussion on the web visit https://groups.google.com/d/ > msgid/google-web-toolkit-contributors/CAC7T7gkBCv_yUPL6- > f0jcZvMGhpyNWZcNidWdmJ9MO4jcuUL8g%40mail.gmail.com > <https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAC7T7gkBCv_yUPL6-f0jcZvMGhpyNWZcNidWdmJ9MO4jcuUL8g%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAKbOjEw42gCKXA440auTuGm%2Bc3xq%3D%2B-%2B7awqYEtaCv8HXxAO6w%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
