Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

default interface methods support #1939

Closed
wants to merge 18 commits into from
Closed

Commits on Jul 30, 2018

  1. [msbuild] Add support for C# 8 default interface methods (DIMs) step 1.

    1) You have to manually provide CscToolPath MSBuild property,
       unless you install xamarin.android.csc.dim package.
    2) You have to explicitly specify AndroidEnableDefaultInterfaceMethods
       MSBuild property as True.
    3) You have to explicitly specify LangVersion MSBuild property as "latest".
    
    When C# 8.0 becomes stable, 1) and 3) will become unnecessary.
    Then we should make changes to 2) as default.
    atsushieno committed Jul 30, 2018
    Configuration menu
    Copy the full SHA
    d20453b View commit details
    Browse the repository at this point in the history
  2. Add tests for default interface method bindings.

    They fail so far, because generator is not generating expected code yet.
    atsushieno committed Jul 30, 2018
    Configuration menu
    Copy the full SHA
    c5618e8 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    7918653 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    d688d2b View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    4109ae5 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    4d29c5a View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    31ec999 View commit details
    Browse the repository at this point in the history
  8. [Mono.Android] enable default interface method generation.

    It results in a bunch of build failures due to lack of metadata fixup
    for any API glitch so far.
    atsushieno committed Jul 30, 2018
    Configuration menu
    Copy the full SHA
    5f0ff78 View commit details
    Browse the repository at this point in the history
  9. [Mono.Android] new metadata fixup required for Animator event methods.

    There are DIMs that results in managed events and args types, but those
    names conflict each other (onAnimationStart/onAnimationEnd overloads for
    each). Therefore the new methods had to be renamed.
    atsushieno committed Jul 30, 2018
    Configuration menu
    Copy the full SHA
    0e4a32e View commit details
    Browse the repository at this point in the history
  10. [Mono.Android] disable XYZStream.Spliterator() generation.

    They result in "nonexistent" `Spliterator.OfXyz` return values, and
    somehow `managedReturn` fixup doesn't work for them.
    Disable generating them, removal of them is harmless due to
    `BaseStream#spliterator()`.
    atsushieno committed Jul 30, 2018
    Configuration menu
    Copy the full SHA
    091fb51 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    938c293 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    f4084d1 View commit details
    Browse the repository at this point in the history
  13. bump java.interop.

    atsushieno committed Jul 30, 2018
    Configuration menu
    Copy the full SHA
    f180241 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    6521086 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    01152f6 View commit details
    Browse the repository at this point in the history
  16. [Mono.Android] enable java.time package.

    Now it is practically doable with DIM support.
    atsushieno committed Jul 30, 2018
    Configuration menu
    Copy the full SHA
    14ab4a7 View commit details
    Browse the repository at this point in the history
  17. [Mono.Android] bring back java.nio.NetworkChannel and co.

    Since we already had some method overrides for NetworkChannel methods
    (that could have returned common base types by adjusting managedReturn),
    those return types could not be changed (because of ABI compatibility).
    
    Therefore added manual bindings to those interface members instead.
    atsushieno committed Jul 30, 2018
    Configuration menu
    Copy the full SHA
    6dd52c9 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    e0e42e2 View commit details
    Browse the repository at this point in the history