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

Use standard invocation type for abstract methods of class proxies w/o target #626

Conversation

stakx
Copy link
Member

@stakx stakx commented May 20, 2022

This follows in the footsteps of #573, where we introduced a standard IInvocation implementation type and re-used it for all methods of interface proxies without target. This present PR does the same for abstract methods of class proxies without target: those would always get a custom-built invocation type with identical InvokeMethodOnTarget implementations; so they, too, are eligible for invocation type reuse.

The tests cover all combinations of (a) abstract vs. virtual, (b) public vs. protected, and (c) generic vs. non-generic method:

@stakx stakx force-pushed the refactor/inheritance-invocation-without-target branch 2 times, most recently from de7de74 to 7ae2b57 Compare May 20, 2022 18:37
@stakx stakx changed the title Use standard invocation type for class proxy methods w/o target Use standard invocation type for abstract methods of class proxies w/o target May 20, 2022
@stakx stakx force-pushed the refactor/inheritance-invocation-without-target branch from 7ae2b57 to 51894ee Compare July 22, 2022 19:20
@stakx stakx merged commit a133ee3 into castleproject:master Jul 22, 2022
@stakx stakx deleted the refactor/inheritance-invocation-without-target branch July 22, 2022 19:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants