That is added relatively recent.
And thanks for pointing the documentation issue; add a issue to review all
before the final release.

On Thu, Sep 1, 2016 at 10:08 PM, Arnaud TOURNIER <[email protected]> wrote:

> Thanks a lot for your answer.
>
> I tried the solution with defender methods earlier but it did not work, as
> far as i remember the compiler refused @JsOverlay defender methods on the
> JsFunction. The @JsFunction documentation says that : "A JsFunction
> interface cannot have defender methods."
> I will try again in this direction and let you know if i find a bug.
>
> Thanks
> Arnaud
>
> Le ven. 2 sept. 2016 à 05:28, 'Goktug Gokdogan' via GWT Contributors <
> [email protected]> a écrit :
>
>> The limitation around @JsFunction is basically driven from the
>> limitations of being a function. I think there was an earlier discussion in
>> the contibutor list where we explained this in more detail.
>>
>> Being said that, you can handle some overloading in JsFunction interfaces
>> via defender methods marked with @JsOverlay that are delegating to a main
>> method. Something like:
>>
>>
>> @JsFunction
>> public interface Resolver<T> {
>>
>> void resolve(Object value);
>>
>>         @JsOverlay
>> default void resolve() { resolve(null); }
>>         @JsOverlay
>> default void resolve(T value) { resolve(value); }
>>         @JsOverlay
>> default void resolve(Promise<T> value) { resolve(value); }
>> }
>>
>> Let's us know before it is too late if you hit any bugs around this :)
>>
>>
>> On Tue, Aug 30, 2016 at 7:13 AM, Arnaud TOURNIER <[email protected]>
>> wrote:
>>
>>> Oh thanks! I'll try that.
>>> Once I think we need to merge our work on those topics...
>>> Thanks!
>>>
>>> Le mar. 30 août 2016 16:06, Paul Stockley <[email protected]> a
>>> écrit :
>>>
>>>> If you are passing  Resolver<T> into some function. You could instead
>>>> create 3 Resolver interfaces and then overload the function so that it took
>>>> each of the resolver interfaces.
>>>>
>>>>
>>>> On Saturday, August 27, 2016 at 9:51:50 AM UTC-4, Arnaud TOURNIER wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> I am playing with js Promises and maybe there's a problem with
>>>>> JsInterop or i don't understand something.
>>>>>
>>>>> When wrapping the promises with JsInterop, i come to define the
>>>>> Resolver interface which represents the resolving callback that is given
>>>>> when constructing a promise. In Javascript it is a function and not an
>>>>> object, so the interface has the @JsFunction annotation.
>>>>>
>>>>> Here is the Resolver interface (inspired from the TypeScript
>>>>> definition of Promises...) :
>>>>>
>>>>> @JsFunction
>>>>> @FunctionalInterface
>>>>> public interface Resolver<T>
>>>>> {
>>>>> void resolve( T value );
>>>>> }
>>>>>
>>>>> Since the Javascript "resolve" function can be called without
>>>>> parameters and also with a Promise instead of a value, i would like to 
>>>>> make
>>>>> those versions available in the interface.
>>>>>
>>>>> But the @JsFunction annotation prevents from having this :
>>>>>
>>>>> @JsFunction
>>>>> public interface Resolver<T>
>>>>> {
>>>>> void resolve();
>>>>>
>>>>> void resolve( T value );
>>>>>
>>>>> void resolve( Promise<T> value );
>>>>> }
>>>>>
>>>>> That's because it allows only one method in the annotated interface.
>>>>>
>>>>> That is what i don't understand : AFAIK, the gwt compiler has to call
>>>>> the same function in the same way for the three declared methods (because
>>>>> of the semantic of the @JsFunction annotation), just changing the calling
>>>>> parameters. So i don't understand why is there the limitation of having
>>>>> only one method allowed in @JsFunction interfaces... If it would it would
>>>>> give even much power to JsInterop !
>>>>>
>>>>> Could you please bring light to my misunderstanding ?
>>>>>
>>>>> Thanks !
>>>>>
>>>>> Arnaud
>>>>>
>>>> --
>>>> You received this message because you are subscribed to a topic in the
>>>> Google Groups "GWT Contributors" group.
>>>> To unsubscribe from this topic, visit https://groups.google.com/d/
>>>> topic/google-web-toolkit-contributors/pNmyrzkfPWo/unsubscribe.
>>>> To unsubscribe from this group and all its topics, send an email to
>>>> [email protected].
>>>> To view this discussion on the web visit https://groups.google.com/d/
>>>> msgid/google-web-toolkit-contributors/a5ebf0e5-2e7f-
>>>> 40b9-ac82-a52c4b9ee5a6%40googlegroups.com
>>>> <https://groups.google.com/d/msgid/google-web-toolkit-contributors/a5ebf0e5-2e7f-40b9-ac82-a52c4b9ee5a6%40googlegroups.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/CANjaDnd6AzYDRpzLdPFkpzw5j6To6
>>> BN-22NqPyQVyaB9ER%2B9hQ%40mail.gmail.com
>>> <https://groups.google.com/d/msgid/google-web-toolkit-contributors/CANjaDnd6AzYDRpzLdPFkpzw5j6To6BN-22NqPyQVyaB9ER%2B9hQ%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 a topic in the
>> Google Groups "GWT Contributors" group.
>> To unsubscribe from this topic, visit https://groups.google.com/d/
>> topic/google-web-toolkit-contributors/pNmyrzkfPWo/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to
>> [email protected].
>> To view this discussion on the web visit https://groups.google.com/d/
>> msgid/google-web-toolkit-contributors/CAN%3DyUA0eP2NCTC6nWX8y4dF6T4X0TdS
>> rJWVuGk_7E1KKoLs_bA%40mail.gmail.com
>> <https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAN%3DyUA0eP2NCTC6nWX8y4dF6T4X0TdSrJWVuGk_7E1KKoLs_bA%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/CANjaDndYyVk4eH%2BCzKkBVpBgtBChX9e-
> sBspVHmmPcgHM1NiLw%40mail.gmail.com
> <https://groups.google.com/d/msgid/google-web-toolkit-contributors/CANjaDndYyVk4eH%2BCzKkBVpBgtBChX9e-sBspVHmmPcgHM1NiLw%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/CAN%3DyUA0591e9P11UhsbzH0WqUR4%2BKn_xe3vWiitim2AQ7z-Vyw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to