GitHub user rectang opened a pull request:

    https://github.com/apache/lucy-clownfish/pull/22

    CLOWNFISH-47 Fix final methods v2

    This pull request differs from the first version by enabling `final` method 
optimization only within the parcel where the method became final.
    
    Interdiff: https://gist.github.com/rectang/003f7095b0fb3c743c78

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/rectang/lucy-clownfish 
CLOWNFISH-47-fix-final-methods-v2

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/lucy-clownfish/pull/22.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #22
    
----
commit 9cec34f49c237e37438d8d740d63278ce24275d5
Author: Marvin Humphrey <[email protected]>
Date:   2015-05-20T22:35:14Z

    Stop forcing invocant to "self" in codegen.
    
    Use the original invocant name in generated method invocation function
    and method typedef.

commit 5103537d1d16a6408edf5545de0c55623d6de2a7
Author: Marvin Humphrey <[email protected]>
Date:   2015-05-20T23:23:37Z

    Use static inline funcs for final methods.
    
    Instead of a macro which aliases to a specific implementing function,
    wrap a call to the implementing function in a static inline function.
    This encapsulates casting of the invocant, improving type safety.  It is
    also more compatible with CGO, which did not understand the macros.

commit 3c71bc735463cd58a831c515baa7301f5234038d
Author: Marvin Humphrey <[email protected]>
Date:   2015-05-20T23:40:56Z

    Don't over-optimize final methods.
    
    It is only valid to resolve a final method to a specific implementing
    function when that function resides in the same parcel as the invocant.
    A ancestor class in another parcel has the option of adding or removing
    an implementation, so the descendant class cannot know for sure what
    function it should resolve to.

commit 4d54bf6fbd05281de79ecc3e700db417f4133e08
Author: Marvin Humphrey <[email protected]>
Date:   2015-05-21T00:01:15Z

    Fix invalid NULL argument.

commit 82d1467a14ce2634677e1d2e64eefae691e8661e
Author: Marvin Humphrey <[email protected]>
Date:   2015-05-21T00:02:43Z

    Re-enable Go Travis build.

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to