This is an attempt to specify the behavior of the various Requires* attributes we have today. Unlike https://github.com/dotnet/linker/pull/2177, this is intended to specify the allowed and disallowed semantics for a generalized feature attribute, not the specific formatting of the warnings. I think https://github.com/dotnet/linker/pull/2177 would be helpful in addition to this spec to give more concrete examples, but I want this to be a concise summary of the rules.
This is an attempt to specify the behavior of the various
Requires
* attributes we have today. Unlike https://github.com/dotnet/linker/pull/2177, this is intended to specify the allowed and disallowed semantics for a generalized feature attribute, not the specific formatting of the warnings. I think https://github.com/dotnet/linker/pull/2177 would be helpful in addition to this spec to give more concrete examples, but I want this to be a concise summary of the rules.See the motivation section for details.