-
Notifications
You must be signed in to change notification settings - Fork 5.1k
Expose extension points needed by UnityLinker. #90688
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
Expose extension points needed by UnityLinker. #90688
Conversation
Tagging subscribers to this area: @agocke, @sbomer, @vitek-karas Issue Details
|
e162037
to
68b4b5a
Compare
This is probably going to fail the ref api checks. I forget the command to update the suppressions, but I remember the job that fails tells you the command to run. If I get that failure I'll update the PR. |
I don't know about the api checks, but there's an intentional difference between members marked as public and the surface exposed through the ref assemblies. I would expect this change to NOT modify the ref assemblies. The ref assemblies are solely for custom steps - basically an attempt to minimize the API surface exposed to custom steps (with an eventual goal of removing custom steps altogether). @sbomer might know details about the ref assembly generation - if it does become a problem. |
The api compat validation changed with the move to dotnet/runtime, and it now checks that public APIs in the implementation are also in the ref assembly. As @vitek-karas described, that's not what we want, so we use the suppressions. The build failure is showing:
Last time you updated the suppressions it looked right to me. I assume this is how you did it. |
68b4b5a
to
1b96b9b
Compare
@vitek-karas @sbomer I think this PR is ready. There are failures but I don't think they are related. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good.
* Expose stages of MarkStep for customization * Add back `MethodsWithOverrideInformation` * Expose `TypeMapInfo` and `EnsureProcessed` * Re-expose a way to pass in a different `UnintializedContextFactory` * Move AssemblyResolver creation to `UnintializedContextFactory` so that we can have control over the resolver again. * Make AssemblyResolver more extensible * We need to search winmd files. * We control over setting up the ReaderParameters * Expose some methods we need to override. * Make `KeepMembersForDebugger` a property so we can turn it on or off. * Make MarkAssembly virtual * Re-expose `ShouldMarkInterfaceImplementation`
1b96b9b
to
a432565
Compare
@vitek-karas This PR is ready to be merged. |
Thanks a lot @mrvoorhe |
Expose stages of MarkStep for customization
Add back
MethodsWithOverrideInformation
Expose
TypeMapInfo
andEnsureProcessed
Re-expose a way to pass in a different
UnintializedContextFactory
Move AssemblyResolver creation to
UnintializedContextFactory
so that we can have control over the resolver again.Make AssemblyResolver more extensible
We need to search winmd files.
We control over setting up the ReaderParameters
Expose some methods we need to override.
Make
KeepMembersForDebugger
a property so we can turn it on or off.Make MarkAssembly virtual
Re-expose
ShouldMarkInterfaceImplementation