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 Method support #10504

Closed
yizhang82 opened this issue Mar 27, 2017 · 5 comments

Comments

@yizhang82
Copy link
Contributor

commented Mar 27, 2017

C# Language Spec Link
Runtime Spec Link (TBD)

List of work items:

  • Fix up ILDAsm to support default interface methods (non-abstract virtual methods) on interfaces
  • Fix up ILDAsm to allow non-virtual instance methods on interface
  • Allow type loader to ignore not implemented interface methods on classes
  • Allow non-virtual interface instance methods in type loader
  • Support calling protected interface non-virtual instance method from derived class (TBD)
  • Hook up VSD interface dispatch
  • Throw in the case of diamond inheritance case
  • Support Shared generics and variance
  • Support looking up method impls
  • Static constructors with initializers only (no static constructor by itself - needs more investigation)
  • Support constrained interface call on value types
  • Handle interface precodes properly
  • Correct interface lookup algorithm (and validation) once design is finalized
  • Proper typeloader/ILDAsm error checking/validation for interface methods once design is finalized (private/protected/internal, virtual vs non-virtual)
  • Reflection to tell the difference between default interface method and a regular
  • NGEN support
  • R2R support
  • Interaction with COM interop
@gkhanna79

This comment has been minimized.

Copy link
Member

commented Mar 30, 2017

@yizhang82 Is this for .NET Core 2.0?

@yizhang82

This comment has been minimized.

Copy link
Contributor Author

commented Mar 30, 2017

No. It's not part of .NET Core 2.0 work. I don't think we have a shipping date yet. Right now we are in early design/prototype phase.

@yizhang82

This comment has been minimized.

Copy link
Contributor Author

commented May 30, 2017

We also need engineering work to support producing packages for Roslyn CI. Tracked here: https://github.com/dotnet/core-eng/issues/833

@mattwarren

This comment has been minimized.

Copy link
Collaborator

commented May 31, 2017

Tracked here: dotnet/core-eng#833

Just one thing, that 'core-eng' repo doesn't appear to be publicly accessible.

I'm not saying it should be, but I just wanted to let you know that anyone who isn't a M/S employee can't see that link you posted.

@MichalStrehovsky

This comment has been minimized.

Copy link
Member

commented Jan 2, 2018

Broken out the remaining tasks into individual issues and now tracking within the Default interfaces project.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
5 participants
You can’t perform that action at this time.