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.
For more options, visit https://groups.google.com/d/optout.