Currently we mark everything. With this change we will not mark assembly and module attributes when their defining module has not been marked after processing all types.
This fixes the test ReferencesAreRemovedWhenAllUsagesAreRemoved when ran against the .NET Framework. When this test was ran against the .NET Framework, System.dll was being kept around because of the assembly attribute BitmapSuffixInSatelliteAssemblyAttribute, which is itself defined in System.dll.
Add a command line option to disable the blacklist step
Fixed bug with ResultChecker treating [RemovedAssembly] the same
as [KeptAssembly]
For the test cases, disable options that tend to pollute the linked output
with a bunch of preservations that are not needed for our very narrow test cases
I did not write a unit test for this case because (a) it would be tricky to do at the moment and (b) we are overly conservative with attributes as a whole and attribute linking need to be reviewed. When that happens, we can pin down the exact behavior we want. The goal of this PR is to get ReferencesAreRemovedWhenAllUsagesAreRemoved passing.
Add Il8n and Blacklist option attributes.
Only disable these things during the test that needs to