Skip to content

Investigate getting rid of reflection blocking #72570

@MichalStrehovsky

Description

@MichalStrehovsky

NativeAOT has a significant amount of the runtime written in C#. Keeping reflection metadata for it results in a lot of garbage being generated by the compiler since nobody is ever going to reflect on these things (and if they do, preventing that sounds like a good thing). We have a concept of reflection blocking for that that we inherited from .NET Native.

But now that IlcTrimMetadata=true is the default, there's little size incentive in keeping this - we should measure the impact. If it's not significant, we should stop doing reflection blocking.

We currently disable reflection blocking in the libs test because they do reflect on CoreLib's implementation details to test them. But it also means we're not running the tests in the configuration that the users will run. It could mask issues such as private reflection being done by the libraries themselves (not just by library tests).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    No status

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions